我正在进行有关IP数据包转发的网络实验,但是我不知道为什么它能工作。
我有一台具有两个网络接口eth0和eth1的Linux机器,它们都具有静态IP地址(eth0:192.168.100.1,eth1:192.168.101.2)。
我的目标很简单,我只想将192.168.10.0/24子网中的eth1的IP数据包转发到eth0,并将目的192.168.101.0/24子网中的eth0的IP数据包转发到eth1。
我通过以下方式打开了IP转发:
sysctl -w net.ipv4.ip_forward=1
我的路由表是这样的:
# route -n
Kernel IP routing table
Destination     Gateway     Genmask        Flags Metric Ref   Use  Iface
192.168.100.0   0.0.0.0     255.255.255.0  U     0      0       0  eth0
192.168.101.0   0.0.0.0     255.255.255.0  U     0      0       0  eth1
但是,当我尝试从192.168.100.25 ping到192.168.101.47时,它不起作用。
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT和都添加iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT到了表中。而我的INPUT,OUTPUT和FORWARD策略都是ACCEPT。