我有两个子网S1 (10.3.0.0/24)
和S2 (10.3.120.0/24)
两台 CentOS 7.6 机器A
和B
.机器有两个A
NIC,每个子网一个,其 IP地址10.3.0.4
分别eth0
为S1
和。机器只有一个 NIC 用于具有 IP 的子网。当我从 Machine ping Machine的 IP 地址时,我得到响应(因为它们位于同一子网中)。但是当我从机器上ping机器的IP时,没有任何反应。10.3.120.254
eth1
S2
B
S2
10.3.120.4
A
10.3.120.254
B
A
10.3.0.4
B
这些是机器上的路线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