Abstrakt:
Ich habe (ich nehme an, Routing) Probleme beim Hinzufügen eines sekundären ISP zu meinem vorhandenen Netzwerk-Setup: Eingehender Datenverkehr Router1
wird nicht beantwortet, aber lokaler Datenverkehr und eingehender Datenverkehr Router0
funktionieren einwandfrei.
Wie kann ich dafür sorgen, dass die Teile, die derzeit gut funktionieren, funktionieren, während der eingehende Datenverkehr durch die Router1
Arbeit geleitet wird?
Ausarbeitung:
Ich habe unten ein Diagramm mit den wichtigsten Aspekten der Situation skizziert (in der Praxis gibt es in jedem LAN mehr Geräte, aber diese spielen keine Rolle).
Dies ist die Situation:
- Ich habe zwei interne Netzwerke:
LAN0
ist192.168.x.0/24
undLAN1
ist192.168.y.0/24
. Beide funktionieren gut für den internen Datenverkehr (z. B. http mit cURL ). LAN0
wurde immer durchRouter0
undISP0
mit dem verbundenInternet
.LAN1
hatte schon immerRouter1
, ist aber jetzt mitISP1
dem verbundenInternet
.- Maschinen, die nur eingeschaltet sind
LAN0
und eine Standardroute haben,Router0
funktionieren einwandfrei für ausgehenden und eingehenden Verkehr. - Maschinen, die nur eingeschaltet sind
LAN1
und eine Standardroute haben,Router1
funktionieren einwandfrei für ausgehenden und eingehenden Verkehr. - Interner Verkehr weiter
LAN0
undLAN1
hat immer gut funktioniert. - Eingehender Verkehr durch
Router1
fürWindowsB
kommt korrekt an: Ich kann eine Verbindung über RDP von herstellenWindowsC
. - Eingehender Verkehr durch
Router1
fürLinuxB
Ankunft (laut tcpdump ), aber nicht zurück beantwortet, wie eincurl http://e.f.g.h
FronLinuxC
mit einem tcpdump aufLinuxB
Shows zeigt:
Es werden nur Pakete angezeigt, für die gemäß dem Ausgabeformat tcpdump ein SYN- Flag gesetzt ist:
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
Dies ist die LinuxB
Routentabelle:
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
Da das Herstellen einer Verbindung über RDP von WindowsC
zu einwandfrei WindowsB
funktioniert, ist dies in der Tat ein Routing-Problem. Dies ist die WindowsB
Routentabelle:
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
Wie kann ich das Routing LinuxB
so gestalten:
- Behalten Sie die Standardroute bei
LinuxB
,192.168.x.1
damit ausgehender Datenverkehr weiterhinRouter0
/ verwendetISP0
- halten die Beantwortung eingehender Anfragen kommen von
LAN0
aufLAN0
- halten die Beantwortung eingehender Anfragen kommen von
LAN1
aufLAN1
- Beantworten Sie eingehende Anfragen weiterhin über
Router0
(a.b.c.d
/192.168.x.1
) über192.168.x.1
- Beantworten Sie eingehende Anfragen über
Router1
(e.f.g.h
/192.168.y.1
) über192.168.y.1
- Bonus:
Router1
Failover oder Lastausgleich mitRouter0
Nachsatz:
Das folgende PNG-Bild wird über die kostenlose Online- PlantUML- Engine in UML- Text generiert . Wenn Sie den ursprünglichen UML-Text anzeigen möchten, fügen Sie den PNG- Bildlink in dieses PlantUML-Formular ein und drücken Sie Submit
.
quelle
yast
.Yast
scheint auf komplexes Routing aus zu sein undroute
scheint zugunsten von veraltet zu seinip
. Siehe opensuse.14.x6.nabble.com/yast2-advanced-routing-td3083578.html und suse.com/documentation/sles11/book_sle_admin/data/…Antworten:
Ich hatte vor langer Zeit ein Shell-Skript dafür, aber leider konnte ich es finden. Daher kann ich Ihnen nur die Hinweise auf die Lösungen geben, die ich damals implementiert habe. Ich schreibe hauptsächlich aus dem Gedächtnis, daher fehlen einige Beispiele:
Ich hatte eine Routing-Tabelle pro Uplink (IP-Route ... Tabelle 101, IP-Route ... Tabelle 102). Das geht in / etc / iproute2 / rt_tables.
101 isp1 102 isp2
Sie müssen diese Tabellen auch einrichten:
IP-Route Standard hinzufügen über $ Gateway1 dev $ Interface1-Tabelle isp1 IP-Route Standard hinzufügen über $ Gateway2 dev $ Interface2-Tabelle isp2
# Vergessen Sie nicht die Standardtabelle:
IP-Route Standard hinzufügen über $ DefaultGateway dev $ DefaultInterface
Aktivieren Sie die iptables-Verbindungsverfolgung (modprobe nf_conntrack)
Legen Sie eine IP-Regel fest, die sicherstellt, dass der Datenverkehr über eine Schnittstelle die richtige Routing-Tabelle verwendet
IP-Regel aus $ Ip1-Tabelle hinzufügen isp1 IP-Regel aus $ Ip2-Tabelle hinzufügen isp2
Legen Sie eine IP-Regel fest (IP-Regel hinzufügen ...), die besagt, dass "mit 0x201 gekennzeichnete Pakete die Routing-Tabelle 201 nachschlagen sollen", eine Regel für jede Aufwärtsverbindung.
Wenn alles vorhanden ist, sollten Sie in der Lage sein, Verbindungen mit jedem Wan-Uplink zu empfangen und zu initiieren und sogar ausgehende Verbindungen auszugleichen.
Das wären die Grundlagen. Iptables + "IP-Route" + "IP-Regel" und Sie können loslegen.
quelle