我正在进行有关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
。