不同子网之间的路由

不同子网之间的路由

我有两个子网S1 (10.3.0.0/24)S2 (10.3.120.0/24)两台 CentOS 7.6 机器AB.机器有两个ANIC,每个子网一个,其 IP地址10.3.0.4分别eth0S1和。机器只有一个 NIC 用于具有 IP 的子网。当我从 Machine ping Machine的 IP 地址时,我得到响应(因为它们位于同一子网中)。但是当我从机器上ping机器的IP时,没有任何反应。10.3.120.254eth1S2BS210.3.120.4A10.3.120.254BA10.3.0.4B

这些是机器上的路线A

[me@MachineA ~]$ ip route show
default via 10.3.0.1 dev eth0 proto dhcp metric 100 
10.3.0.0/24 dev eth0 proto kernel scope link src 10.3.0.4 metric 100 
10.3.120.0/24 dev eth1 proto kernel scope link src 10.3.120.254 metric 101

这些是 Machine 上的路线B

[me@MachineB ~]$ ip route show
default via 10.3.120.254 dev eth0 
10.3.120.0/24 dev eth0 proto kernel scope link src 10.3.120.4 metric 100 

更多信息,firewalld 正在 Machine 上运行A,但不在 Machine 上运行B。这是 Machine 上的防火墙配置A

[me@MachineA ~]$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth1 eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: yes
  forward-ports:
  source-ports: 
  icmp-blocks: echo-reply
  rich rules:

我想知道我在这里错过了什么?为什么我 ping 时有响应,10.3.120.254但当我 ping 时没有响应10.3.0.4,尽管它们是同一台机器的两个不同 IP 地址,并且 Machine 上的默认路由B应该将数据包转发到 Machine A

编辑:这是机器上的IP设置A

[me@MachineA ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:a3:6f:74 brd ff:ff:ff:ff:ff:ff
    inet 10.3.0.4/24 brd 10.3.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fea3:6f74/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:09:0a:13 brd ff:ff:ff:ff:ff:ff
    inet 10.3.120.254/24 brd 10.3.120.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::8fd2:7210:82b3:d056/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

这是机器上的 IP 配置B

[me@MachineB ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:09:38:1f brd ff:ff:ff:ff:ff:ff
    inet 10.3.120.4/24 brd 10.3.120.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe09:381f/64 scope link 
       valid_lft forever preferred_lft forever

编辑2:我尝试添加路线

ip route add 10.3.0.0/24 via 10.3.120.254 dev eth0

但还是没用

编辑3:我可以B从 Machine ping 机器A,并且机器上启用了数据包转发A

[me@MachineA ~]$ cat /proc/sys/net/ipv4/ip_forward
1

答案1

你可以尝试添加一条到B的路由,它告诉B:

通过 10.3.120.254 转到子网 10.3.0.0/24

相关内容