如何在三个接口之间指定静态路由

如何在三个接口之间指定静态路由

我有这样的设置:

                                       10.5.128.150
Ubuntu                              Ubuntu eth2 <------>   server (10.5.128.154)
client  eth1     <---->    eth1     Router eth3 <------>
    10.5.129.179       10.5.129.39       10.5.130.201

因此,Ubuntu 路由器管理三个域:

  • 10.5.129.0/24 :这是客户端所在的位置
  • 10.5.128.0/24 :由 eth2 控制并连接到服务器。
  • 10.5.130.0/24 :由 eth3 管理

按照这里的答案:https://askubuntu.com/a/168037/347674,我已将客户端配置为使用路由器作为 10.5.128.0/24 流量的网关。

这是路由器上的路由表:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
....
10.5.128.0      *               255.255.255.0   U     0      0        0 eth2
10.5.129.0      *               255.255.255.0   U     0      0        0 eth1
10.5.130.0      *               255.255.255.0   U     0      0        0 eth3

这一切对我来说看起来都很好,但是当我尝试从客户端 ping 该服务器时,没有收到回复:

# ping -n -I eth1 10.5.128.154                                                                                                                                  
PING 10.5.128.154 (10.5.128.154) from 10.5.129.179 eth1: 56(84) bytes of data.

路由器显示 ping 流量正确进入路由器的 eth1:

# tcpdump -n -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
15:20:17.428153 IP 10.5.129.179 > 10.5.128.154: ICMP echo request, id 909, seq 170, length 64
15:20:17.618104 IP 10.5.129.179 > 10.5.128.154: ICMP echo request, id 874, seq 2534, length 64
15:20:18.427959 IP 10.5.129.179 > 10.5.128.154: ICMP echo request, id 909, seq 171, length 64

但路由器上的 ping 出现黑洞。它从未像我预期的那样通过 eth2 接口出去:

# tcpdump -n -i eth2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes

(它是空的。)

事实上它哪儿也不会去:

# tcpdump -n -i any icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
15:31:53.138046 IP 10.5.129.179 > 10.5.128.154: ICMP echo request, id 874, seq 3224, length 64
15:31:54.145980 IP 10.5.129.179 > 10.5.128.154: ICMP echo request, id 874, seq 3225, length 64
15:31:55.154033 IP 10.5.129.179 > 10.5.128.154: ICMP echo request, id 874, seq 3226, length 64

ping 请求是否应该按照其路由表从 eth2 发出?或者我需要在 Ubuntu 路由器上进行其他配置才能让数据包从 eth2 发出?

相关内容