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?
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.