如何为多个 WAN 网络设置 Linux 网关?

如何为多个 WAN 网络设置 Linux 网关?

我有一个具有以下 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

如果我从服务器 ping 出我的 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

而不是我从服务器 ping 客户端的 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 地址,则使用该 IP 地址。如何制作正确的路由表,使其按预期工作?

即使我在 postfix 中设置了不同的传出 IP 地址,也只会使用主 IP 地址,这完全不是我想要的。ipv6 也存在同样的问题。

相关内容