web-dev-qa-db-fra.com

Deux passerelles sur le même réseau

Ma machine exécute Ubuntu Server 16.04 et possède deux cartes réseau, eth0 et eth1, comme indiqué dans le diagramme de réseau. Son rôle était initialement de router le trafic du sous-réseau 192.168.50.0/24 vers le sous-réseau 192.168.1.0/24, où se trouve le routeur DSL qui se connecte à Internet. Donc, ma configuration réseau est

Sortie de (eth0) cat /etc/network/interfaces.d/eth0

#auto eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.1.7
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

Sortie de (eth1) cat /etc/network/interfaces.d/eth1

#auto eth0
#iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.50.7
netmask 255.255.255.0

Maintenant, j'ai ajouté un autre routeur cellulaire qui se connecte également à Internet, qui est également connecté au sous-réseau 192.168.50.0/24. Je dois acheminer une partie du trafic Internet via ce routeur cellulaire, mais pas la totalité (connexions ssh, par exemple). Des idées sur la manière de procéder?

Network diagram

3
bomberb17

Ici, nous prendrons ssh comme service de routage. Utilisez la table mangle de iptable pour modifier les paquets ssh.

Sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0x1

Nous marquons tous les paquets avec le port de destination 22 comme 0x1.

Maintenant, enregistrez et redémarrez iptables.

Sudo service iptables save
Sudo service iptables restart

Ensuite, créez une nouvelle table de routage IP dans /etc/iproute2/rt_tables en donnant simplement une entrée.

100 sshtable

Règle d'écriture pour les paquets ssh.

ip rule add fwmark 0x1 lookup sshtable

Ajouter une route à la nouvelle table sshtable. Tout le reste du trafic passera par la passerelle par défaut, visible par la commande ip route show.

Nous copions toutes les entrées à l'exception de l'entrée de passerelle par défaut de la table principale.

Sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done

Ajouter une entrée de passerelle par défaut pour les paquets ssh à la table sshtable

Sudo ip route add default gw 192.168.50.254 table sshtable

Utilisez ip route show table sshtable pour afficher tous les itinéraires en sshtable.

Essayer.

3
2707974