Astratto:
Ho dei problemi (presumo il routing) quando aggiungo un ISP secondario alla mia configurazione di rete esistente: il traffico in entrata Router1
non riceve risposta, ma il traffico locale e quello in entrata Router0
funzionano correttamente.
Come posso mantenere funzionanti le parti che attualmente funzionano bene, facendo funzionare il traffico in entrata Router1
?
Elaborazione:
Di seguito ho tracciato uno schema con gli elementi essenziali essenziali della situazione (in pratica ci sono più dispositivi su ciascuna LAN, ma non contano).
Questa è la situazione:
- Ho due reti interne:
LAN0
è192.168.x.0/24
edLAN1
è192.168.y.0/24
. Entrambi funzionano bene per il traffico interno (ad esempio http utilizzando cURL ). LAN0
è sempre stato collegato attraversoRouter0
eISP0
alInternet
.LAN1
sempre avutoRouter1
, ma ora è collegatoISP1
alInternet
.- Le macchine solo attive
LAN0
e con un percorso predefinitoRouter0
funzionano correttamente per il traffico in uscita e in entrata. - Le macchine solo attive
LAN1
e con un percorso predefinitoRouter1
funzionano correttamente per il traffico in uscita e in entrata. - Il traffico interno è attivo
LAN0
eLAN1
ha sempre funzionato bene. - Il traffico in entrata per
Router1
forWindowsB
arriva correttamente: posso collegarmi tramite RDP daWindowsC
. - Il traffico in entrata per
Router1
forLinuxB
arriva (secondo tcpdump ), ma non risponde come uncurl http://e.f.g.h
froneLinuxC
mostra con un tcpdump negliLinuxB
spettacoli:
Mostra solo i pacchetti che - in base al formato di output di tcpdump - hanno un flag SYN impostato:
LinuxB:/tmp/LinuxB.eth1.80 # tcpdump -i eth1 'port 80'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:35:19.489779 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047182 ecr 0,sackOK,eol], length 0
13:35:19.788841 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047478 ecr 0,sackOK,eol], length 0
13:35:19.888835 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047578 ecr 0,sackOK,eol], length 0
13:35:19.989412 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047678 ecr 0,sackOK,eol], length 0
13:35:20.089685 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047778 ecr 0,sackOK,eol], length 0
13:35:20.190836 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047877 ecr 0,sackOK,eol], length 0
13:35:20.392123 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287048072 ecr 0,sackOK,eol], length 0
13:35:20.693692 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:21.197162 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:22.204134 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:24.115961 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:27.852374 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:31.967049 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
Questa è la LinuxB
tabella dei percorsi:
LinuxB:/tmp/LinuxB.eth1.80 # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.x.1 0.0.0.0 UG 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
link-local * 255.255.0.0 U 0 0 0 eth0
192.168.x.0 * 255.255.255.0 U 0 0 0 eth0
192.168.x.0 * 255.255.255.0 U 0 0 0 eth1
Dal momento che il collegamento su RDP da WindowsC
a WindowsB
funziona benissimo, riprendo che questo è davvero un problema di routing. Questa è la WindowsB
tabella dei percorsi:
C:\temp>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 0c 29 35 77 e1 ...... AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
0x3 ...00 0c 29 35 77 eb ...... VMware Accelerated AMD PCNet Adapter - Packet Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.x.1 192.168.x.4 10
0.0.0.0 0.0.0.0 192.168.y.1 192.168.y.4 5
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.x.0 255.255.255.0 192.168.x.4 192.168.x.4 10
192.168.x.4 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.x.255 255.255.255.255 192.168.x.4 192.168.x.4 10
192.168.y.0 255.255.255.0 192.168.y.4 192.168.y.4 10
192.168.y.4 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.y.255 255.255.255.255 192.168.y.4 192.168.y.4 10
224.0.0.0 240.0.0.0 192.168.x.4 192.168.x.4 10
224.0.0.0 240.0.0.0 192.168.y.4 192.168.y.4 10
255.255.255.255 255.255.255.255 192.168.x.4 192.168.x.4 1
255.255.255.255 255.255.255.255 192.168.y.4 192.168.y.4 1
Default Gateway: 192.168.y.1
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
0.0.0.0 0.0.0.0 192.168.y.1 5
0.0.0.0 0.0.0.0 192.168.x.1 10
Quindi, come posso ottenere il routing LinuxB
per essere così:
- mantenere percorso di default su
LinuxB
per192.168.x.1
così il traffico in uscita mantiene utilizzandoRouter0
/ISP0
- continua a rispondere alle richieste in arrivo provenienti da
LAN0
onLAN0
- continua a rispondere alle richieste in arrivo provenienti da
LAN1
onLAN1
- continuare a rispondere alle richieste in arrivo tramite
Router0
(a.b.c.d
/192.168.x.1
) tramite192.168.x.1
- iniziare a rispondere alle richieste in arrivo tramite
Router1
(e.f.g.h
/192.168.y.1
) tramite192.168.y.1
- bonus: avere il
Router1
failover o il bilanciamento del carico conRouter0
poscritto:
L' immagine PNG seguente è generata sul testo UML attraverso il motore PlantUML online gratuito . Se vuoi vedere il testo UML originale, incolla il link immagine PNG in questo modulo PlantUML , quindi premi Submit
.
Yast
sembra fuori per fare il routing complesso e route
sembra essere deprecato a favore di ip
. Vedi opensuse.14.x6.nabble.com/yast2-advanced-routing-td3083578.html e suse.com/documentation/sles11/book_sle_admin/data/…
yast
.