GNU/Linux >> Linux Esercitazione >  >> Linux

Rispondi sulla stessa interfaccia della ricezione?

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

Quanto sopra non richiede alcuna marcatura dei pacchetti con ipfilter. Funziona perché i pacchetti in uscita (di risposta) avranno l'indirizzo IP originariamente utilizzato per connettersi alla seconda interfaccia come indirizzo di origine (da) sul pacchetto in uscita.


I seguenti comandi creano una tabella di instradamento alternativa tramite eth1 per i pacchetti che hanno il contrassegno 1 (eccetto i pacchetti per localhost). Il ip il comando proviene dalla suite iproute2 (Ubuntu:iproute Installa iproute http://bit.ly/software-small, iproute-doc Installa 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'altra metà del lavoro consiste nel riconoscere i pacchetti che devono ottenere il contrassegno 1; quindi usa iptables -t mangle -A OUTPUT … -j MARK --set-mark 1 su questi pacchetti per farli instradare attraverso la tabella di instradamento 1. Penso che dovrebbe farlo quanto segue (sostituire 1.2.3.4 con l'indirizzo dell'interfaccia non-default-route):

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

Non sono sicuro che sia sufficiente, forse è necessaria un'altra regola sui pacchetti in arrivo per dire al modulo conntrack di tracciarli.


Ho avuto problemi con i pacchetti generati localmente con la soluzione suggerita da Peter, ho scoperto che quanto segue lo corregge:

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

NOTA: Potresti incorrere in problemi di sintassi con la quarta riga sopra. In questi casi la sintassi per il 4° comando potrebbe essere questa:

ip rule add iif <interface> table isp2 priority 1000

Linux
  1. Interfaccia Sftp a Scp?

  2. Elimina tabelle in MySQL

  3. Esiste un'interfaccia Python per iptables?

  4. Determinare se un'interfaccia di rete è wireless o cablata

  5. Interfaccia a riga di comando C++

Come ottimizzare le tabelle MySQL

Come creare una tabella DynamoDB in AWS

3 modi per configurare un'interfaccia di rete in Linux

comando ip in Linux con esempi

Estrazione dei dati dalla tabella HTML

Nome interfaccia VLAN arbitrario