Аннотация:
У меня есть (я предполагаю, что маршрутизация) проблемы при добавлении вторичного интернет-провайдера в мою существующую настройку сети: входящий трафик через Router1
не отвечает, но локальный трафик и входящий через Router0
работает нормально.
Как я могу сохранить работающие детали, в то же время заставляя входящий трафик Router1
работать?
Разработка:
Я набросал нижеприведенную схему, демонстрирующую основные моменты ситуации (на практике в каждой локальной сети больше устройств, но они не имеют значения).
Это ситуация:
- У меня две внутренние сети:
LAN0
есть192.168.x.0/24
иLAN1
есть192.168.y.0/24
. Оба прекрасно работают для внутреннего трафика (например, http с использованием cURL ). LAN0
всегда был связан черезRouter0
иISP0
кInternet
.LAN1
всегда былоRouter1
, но теперь связаноISP1
сInternet
.- Машины только на
LAN0
и имеющие маршрут по умолчаниюRouter0
работают нормально для исходящего и входящего трафика. - Машины только на
LAN1
и имеющие маршрут по умолчаниюRouter1
работают нормально для исходящего и входящего трафика. - Внутренний трафик включен
LAN0
иLAN1
всегда работал нормально. - Входящий трафик через
Router1
forWindowsB
поступает корректно: я могу подключиться к нему через RDP изWindowsC
. - Поступает входящий трафик
Router1
для forLinuxB
(в соответствии с tcpdump ), но не отвечает обратно, как показываетcurl http://e.f.g.h
fronLinuxC
с включенным tcpdumpLinuxB
:
Он показывает только пакеты, которые - в соответствии с форматом вывода tcpdump - имеют установленный флаг SYN :
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
Это LinuxB
таблица маршрутов:
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
Так как подключение по RDP от WindowsC
к WindowsB
работает нормально, я возобновляю это действительно проблема маршрутизации. Это WindowsB
таблица маршрутов:
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
Итак, как мне сделать так, чтобы маршрутизация LinuxB
была такой:
- оставить маршрут по умолчанию
LinuxB
для192.168.x.1
так, чтобы исходящий трафик продолжал использоватьRouter0
/ISP0
- продолжать отвечать на входящие запросы , поступающие от
LAN0
наLAN0
- продолжать отвечать на входящие запросы , поступающие от
LAN1
наLAN1
- продолжайте отвечать на входящие запросы через
Router0
(a.b.c.d
/192.168.x.1
) через192.168.x.1
- начать отвечать на входящие запросы через
Router1
(e.f.g.h
/192.168.y.1
) через192.168.y.1
- бонус: есть при
Router1
сбое или балансировки нагрузки сRouter0
Постскриптум:
Изображение PNG ниже генерируется в тексте UML с помощью бесплатного онлайн- движка PlantUML . Если вы хотите увидеть исходный текст UML, вставьте ссылку на изображение PNG в эту форму PlantUML , затем нажмите Submit
.
Yast
кажется, для выполнения сложной маршрутизации и route
кажется устаревшим в пользу ip
. См. Opensuse.14.x6.nabble.com/yast2-advanced-routing-td3083578.html и suse.com/documentation/sles11/book_sle_admin/data/…
yast
.