GNU/Linux >> Tutoriels Linux >  >> Linux

Répondre sur la même interface que la réception ?

echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> table isp2 prio 1
ip route add default via <gateway_IP> dev <interface> table isp2

Ce qui précède ne nécessite aucun marquage de paquet avec ipfilter. Cela fonctionne parce que les paquets sortants (réponse) auront l'adresse IP qui a été utilisée à l'origine pour se connecter à la 2ème interface comme adresse source (de) sur le paquet sortant.


Les commandes suivantes créent une table de routage alternative via eth1 pour les paquets portant la marque 1 (sauf les paquets vers localhost). Le ip La commande provient de la suite iproute2 (Ubuntu :iproute Install iproute http://bit.ly/software-small, iproute-doc Install iproute-doc http://bit.ly/software-small).

ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
ip route add 0.0.0.0/0 table 1 dev eth1

L'autre moitié du travail consiste à reconnaître les paquets qui doivent obtenir la note 1 ; puis utilisez iptables -t mangle -A OUTPUT … -j MARK --set-mark 1 sur ces paquets pour les faire acheminer via la table de routage 1. Je pense que ce qui suit devrait le faire (remplacez 1.2.3.4 par l'adresse de l'interface non-default-route):

iptables -t mangle -A OUTPUT -m conntrack --ctorigdst 1.2.3.4 -j MARK --set-mark 1

Je ne sais pas si cela suffit, peut-être qu'une autre règle est nécessaire sur les paquets entrants pour indiquer au module conntrack de les suivre.


J'ai eu des problèmes avec les paquets générés localement avec la solution suggérée par Peter, j'ai trouvé que ce qui suit corrige cela :

echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> table isp2 priority 900
ip rule add from dev <interface> table isp2 priority 1000
ip route add default via <gateway_IP> dev <interface> table isp2
ip route add <interface_prefix> dev <interface> proto static scope link src <interface_IP> table isp2

REMARQUE : Vous pouvez rencontrer des problèmes de syntaxe avec la 4ème ligne ci-dessus. Dans de tels cas, la syntaxe de la 4ème commande peut être celle-ci :

ip rule add iif <interface> table isp2 priority 1000

Linux
  1. Linux - Répondre sur la même interface que celle entrante ?

  2. Interface Sftp vers Scp ?

  3. Ajouter une interface réseau cloud à un serveur cloud

  4. Supprimer des tables dans MySQL

  5. Ifconfig :7 exemples pour configurer l'interface réseau

Comment optimiser les tables MySQL

Comment créer une table DynamoDB dans AWS

3 façons de configurer une interface réseau sous Linux

commande ip sous Linux avec des exemples

Interface de ligne de commande C++

Nom d'interface VLAN arbitraire