Impossible de vérifier avec une machine Linux multi-pistes sur une interface non standard

J'ai un serveur multisser Ubuntu Avec un ensemble d'interfaces qui comprend:

eth2: 10.10.0.131/24
eth3: 10.20.0.2/24

L'interface par défaut - eth2, passerelle - 10.10.0.1. Voici à quoi ressemble la table de routage:

root@c220-1:~# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.10.0.1 0.0.0.0 UG 0 0 0 eth2
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
10.30.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.40.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1

D'un réseau séparé (

192.168.3.5/24

) Je peux me connecter à cette machine à travers l'interface eth2 (la passerelle par défaut), mais pas à travers l'interface eth3. Je peux propager l'interface sans aucun problème eth3 du routeur sur le même réseau (10.20.0.1).

Si je ping 10.10.0.131 de 192.168.3.5, Les paquets atteignent des voitures, mais cela n'envoie aucune réponse:

c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 0, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 1, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 2, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 3, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 4, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 5, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 6, length 64
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request, id 5451, seq 7, length 64

Si je ping du routeur (10.20.0.1) Sur le même réseau, le serveur répond correctement:

c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 114: 10.20.0.1 > 10.20.0.2: ICMP echo request, id 28899, seq 2932, length 80
73:10:73:e4:10:06 > c4:c8:80:90:22:eb, IPv4, length 114: 10.20.0.2 > 10.20.0.1: ICMP echo reply, id 28899, seq 2932, length 80
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 114: 10.20.0.1 > 10.20.0.2: ICMP echo request, id 28899, seq 2932, length 80
73:10:73:e4:10:06 > c4:c8:80:90:22:eb, IPv4, length 114: 10.20.0.2 > 10.20.0.1: ICMP echo reply, id 28899, seq 2932, length 80
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 114: 10.20.0.1 > 10.20.0.2: ICMP echo request, id 28899, seq 2932, length 80
73:10:73:e4:10:06 > c4:c8:80:90:22:eb, IPv4, length 114: 10.20.0.2 > 10.20.0.1: ICMP echo reply, id 28899, seq 2932, length 80
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 114: 10.20.0.1 > 10.20.0.2: ICMP echo request, id 28899, seq 2932, length 80
73:10:73:e4:10:06 > c4:c8:80:90:22:eb, IPv4, length 114: 10.20.0.2 > 10.20.0.1: ICMP echo reply, id 28899, seq 2932, length 80
c4:c8:80:90:22:eb > 73:10:73:e4:10:06, IPv4, length 114: 10.20.0.1 > 10.20.0.2: ICMP echo request, id 28899, seq 2932, length 80
73:10:73:e4:10:06 > c4:c8:80:90:22:eb, IPv4, length 114: 10.20.0.2 > 10.20.0.1: ICMP echo reply, id 28899, seq 2932, length 80

Notez que selon la réponse dans cette
https://serverfault.com/questions/77541
, J'ai été handicapé rp_filter Sur toutes les interfaces, mais cela ne résout pas le problème:

$ for i in eth0 eth1 eth2 eth3 all default
> do
> cat /proc/sys/net/ipv4/conf/$i/rp_filter
> done
0
0
0
0
0
0
Invité:

Giselle

Confirmation de:

Le problème est que parce que la route par défaut passe à travers eth2, Réponses ping Traverser eth2, Même si des demandes ont été obtenues à travers eth3. (Si vous courez tcpdump eth2, Vous devez voir les réponses envoyées.) Ensuite, probablement, certains packages écartés du périphérique, car ils ont une adresse IP source incorrecte pour le réseau dans lequel ils se trouvent. Vous avez besoin d'un peu
http://lartc.org/howto/lartc.r ... IMPLE
Obtenir des réponses qui seront expédiées via l'interface sur laquelle elles ont été obtenues.

Créer une nouvelle table de routage (besoin de faire une seule fois):

echo 13 eth3 >> /etc/iproute2/rt_tables

Ajoutez la route par défaut à cette nouvelle table Sortie de eth3:

ip route add default via 10.20.0.1 table eth3

Ajoutez une règle de stratégie pour utiliser cette nouvelle table pour les packages avec l'adresse source. IP eth3:

ip rule add from 10.20.0.2 lookup eth3

Hannah

Confirmation de:

D'un réseau séparé (192.168.3.5/24) Je peux me connecter à cette machine à travers l'interface eth2 (celui dont la passerelle par défaut), mais pas à travers l'interface eth3. Je peux propager l'interface sans aucun problème eth3 du routeur sur le même réseau (10.20.0.1).

On dirait que vous n'avez pas de route pour 192.168.3.5/24 Du sous-réseau 10.30.0 / 24. Vous devez ajouter un schéma réseau et un traçage pour chaque réseau de chaque périphérique.

Pour répondre aux questions, connectez-vous ou registre