什么是内核IP转发?相关问题

什么是内核IP转发?相关问题

这个问题与答案和评论相关什么是内核IP转发?

来自@LawrenceC

帖子1:

因此,在上面的示例中,如果您在 NIC 2 上有互联网连接,则可以将 NIC 2 设置为默认路由,然后从 NIC 1 传入但不属于 192.168.2.0/24 的任何流量都会通过通过网卡 2。

还有post2:

面向互联网的接口(上面的 NIC 1)需要在链上 iptables 的 POSTROUTING 中使用 MASQUERADE 规则来执行此操作。看 revsys.com/writings/quicktips/nat.html

http://www.revsys.com/writings/quicktips/nat.html它说:

然后,您需要配置 iptables 将数据包从 /dev/eth1 上的内部网络转发到 /dev/eth0 上的外部网络。

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

为什么我会使用FORWARD(根据帖子2)如果转发已经通过仅设置完成ip_forward(根据帖子1):

echo 1 > /proc/sys/net/ipv4/ip_forward

答案1

设置ip_forward允许数据包转发一般来说iptables出于安全原因,某些 Linux 发行版可能不允许转发数据包,例如,如果ip_forward设置错误。

/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

设置规则以允许来自 的数据包eth0eth1已建立的连接进行响应或类似相关的数据包。

/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

设置显式规则以允许来自eth1到 的数据包eth0

这允许客户端eth1访问后面的服务器,eth0无论默认iptables配置如何。

相关内容