Il ping tra due sistemi Linux tramite un Linux intermedio fallisce


0

Ho una rete semplice con tre sistemi Linux con CentOS 2.6.

       Linux 1
(eth1: 192.138.14.1/24)
          |
          |
(eth4: 192.138.14.4/24)
       Linux 2
(eth2: 192.138.4.3/24)
          |
          |
(eth3: 192.138.4.2/24)
       Linux 3

Non riesco a eseguire il ping di Linux 3 da Linux 1. Quello che riesco a fare ping è da Linux 1 a Linux 2 (eth2) e da Linux 3 a Linux 2 (eth4). Ciò significa che da Linux 1, sono in grado di eseguire il ping 192.138.4.3 ma non 192.138.4.2.

Di seguito è riportato l'output del comando route -n in Linux1

Linux1# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.138.14.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.138.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.135.18.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1005   0        0 eth3
0.0.0.0         10.135.18.1     0.0.0.0         UG    0      0        0 eth0

In Linux 2:

Linux2# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.138.15.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.138.14.0    192.138.14.4    255.255.255.0   UG    0      0        0 eth4
192.138.14.0    0.0.0.0         255.255.255.0   U     0      0        0 eth4
192.138.4.0     192.138.4.3     255.255.255.0   UG    0      0        0 eth2
192.138.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
10.135.18.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.138.16.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1004   0        0 eth2 
169.254.0.0     0.0.0.0         255.255.0.0     U     1005   0        0 eth3
169.254.0.0     0.0.0.0         255.255.0.0     U     1006   0        0 eth4
0.0.0.0         10.135.18.1     0.0.0.0         UG    0      0        0 eth0

In Linux 3:

Linux3# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.138.14.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
192.138.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3
10.135.18.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1005   0        0 eth3
0.0.0.0         10.135.18.1     0.0.0.0         UG    0      0        0 eth0

Ho abilitato l'IP forwarding in Linux 2

Linux2# vi /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Linux2#: sysctl -p 
sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_sack = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

Il risultato di iptables -L in Linux 2:

Linux2# iptables -L  
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere       

Per eseguire il ping di Linux3 da Linux 1, dovrei aggiungere regole specifiche per icmp in iptables? In caso contrario, cosa mi manca?


& Lt; stackoverflow.com/questions/35314404/... & Gt; risponde alla domanda
Prithvi Raj

Risposte:


2

Ci sono alcuni problemi con la tua configurazione.

Innanzitutto, stai utilizzando indirizzi pubblici e instradabili come se fossero indirizzi privati. Ad esempio, 192.138.14.1 è Chapters Capital Management, LLC in NJ, mentre 192.138.4.1 è il Centro di calcolo della University of London (UK). E così via. Si prega di tornare a utilizzare gli indirizzi nell'intervallo 192.168.0.0/16.

In secondo luogo, le tabelle di routing contengono molti errori. Faresti meglio a ricominciare, cancellando le tabelle di routing completamente attuali e configurandole come segue tramite l'attuale utility ip dal iprouter2 pacchetto invece di utility obsolete come itinerario .

Su Linux1, consentire al gestore di rete o al dhcp di negoziare la tabella di routing locale, quindi aggiungere:

  ip route add default via 192.168.14.4

Lo stesso su Linux3, tranne per il fatto che il comando è:

  ip route add default via 192.168.4.3

Lo stesso su Linux2, tranne:

  ip route add default via 10.135.18.1
  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

In questo modo Linux2 funge da router / gateway per Linux1 e Linux3, ha un gateway Internet adatto a se stesso e avvolge il traffico legato a Internet da Linux1 e Linux3 come se fosse il suo (questo è il significato del iptables comando).

Si noti che in precedenza ho già convertito gli indirizzi nell'intervallo 192.138.0.0/16 nell'intervallo 192.168.0.0/16.


-1

Entrambi i server linux1 e linux3 hanno 192.138.4.0 e 192.168.14.0 instradati localmente. Quindi nulla viene inviato a linux2 per il routing

Linux 1

Linux1# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.138.14.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1 
192.138.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

Linux3

Linux3# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.138.14.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
192.138.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3

Puoi dare il risultato di quei comandi su linux1 e linux3?

# ip -4 addr list
# ip route list

Questa non è una risposta, potrebbe essere un commento. Dovresti evitare di postare come risposte i tuoi commenti, finché non ti sei guadagnato il privilegio di pubblicare commenti. Grazie.
MariusMatutiae

Sfortunatamente, non posso aggiungere commenti alla domanda principale.
François

C'è una risposta: i percorsi non sono corretti perché è il gateway del lago (che dovrebbe essere linux2)
François
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.