Как настроить шлюз Linux для нескольких сетей WAN?
У меня есть сеть со следующими адресами IPv4 и IPv6:
eth0 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:109.2xx.239.145 Bcast:109.2xx.239.255 Maske:255.255.255.0
inet6-Adresse: 2a02:d40:xx:xx::6/64 Gültigkeitsbereich:Global
inet6-Adresse: 2a02:d40:xx:xx::5/64 Gültigkeitsbereich:Global
inet6-Adresse: 2a02:d40:xx:xx::4/64 Gültigkeitsbereich:Global
inet6-Adresse: 2a02:d40:xx:xx::f/64 Gültigkeitsbereich:Global
inet6-Adresse: 2a02:d40:xx:xx::3/64 Gültigkeitsbereich:Global
inet6-Adresse: 2a02:d40:xx:xx::2/64 Gültigkeitsbereich:Global
inet6-Adresse: fc00::1/7 Gültigkeitsbereich:Global
inet6-Adresse: fe80::3285:a9ff:fe42:3e60/64
Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:531421155 errors:0 dropped:19 overruns:0 frame:0
TX packets:35535228 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:61800515345 (57.5 GiB) TX bytes:9958352527 (9.2 GiB)
eth0:0 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:192.168.1.10 Bcast:192.168.1.255 Maske:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
eth0:1 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:109.2xx.253.68 Bcast:109.2xx.253.79 Maske:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
eth0:5 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:109.2xx.253.66 Bcast:109.2xx.253.79 Maske:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
eth0:6 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:109.2xx.253.67 Bcast:109.2xx.253.79 Maske:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
eth0:8 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:109.2xx.253.69 Bcast:109.2xx.253.79 Maske:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
eth0:17 Link encap:Ethernet Hardware Adresse 30:85:a9:42:3e:60
inet Adresse:109.2xx.253.78 Bcast:109.2xx.253.79 Maske:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
Если я вывожу с сервера мой клиент DSL:
ping -I 109.2xx.253.78 85.212.79.23:
PING 85.212.79.23 (85.212.79.23) from 109.2xx.253.78 : 56(84) bytes of data.
64 bytes from 85.212.79.23: icmp_seq=1 ttl=59 time=13.4 ms
64 bytes from 85.212.79.23: icmp_seq=2 ttl=59 time=14.9 ms
Я получу на стороне клиента:
109.2xx.239.145 > 85.212.79.23: ICMP echo request, id 27761, seq 1, length 64
85.212.79.23 > 109.2xx.239.145: ICMP echo reply, id 27761, seq 1, length 64
а не IP-адрес, с которого я пинговал с сервера клиента.
Моя таблица маршрутизации:
Kernel-IP-Routing table:
Target Router Genmask Flags Metric Ref Use Iface
default 109.2xx.2xx.65 0.0.0.0 UG 0 0 0 eth0
109.2xx.253.0 * 255.255.255.0 U 0 0 0 eth0
109.2xx.253.64 * 255.255.255.240 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
Я хочу, чтобы, если программа (например, postfix) установила исходящий IP-адрес, этот использовался. Как мне сделать правильную таблицу маршрутизации, чтобы она работала, как я и ожидал?
Даже если на postfix я устанавливаю разные исходящие IP-адреса, используется только основной, который вообще не нужен. Та же проблема существует и для ipv6.