我用谷歌搜索了很多。只有文档记录了如何在 Linux 内核中启用 IP 转发,但没有说明WHEN
我WHY
必须启用它。如果能提供建议,我将不胜感激。
我什么时候以及为什么必须启用它?(例如当我安装网桥时?或者当使用 iptables 时?或者当使用时route add
?)
(如果有好的链接就更好了,但我没能找到。)
非常感谢!
简
答案1
当您希望系统充当路由器(将 IP 数据包从一个网络传输到另一个网络)时,应该启用 IP 转发。
最简单的情况是,假设一台服务器有两个物理以太网端口,用于连接两个不同的网络(例如您的内部网络和由 DSL 调制解调器提供的外部网络)。如果您只连接并配置这两个接口,系统就可以在任一网络上通信。但是,来自一个网络的数据包无法传输到另一个网络,因为未启用转发。
考虑“添加路由”的具体示例。如果您有两个网络接口,则至少需要添加两条路由,每个接口一条。当内核考虑将网络数据包发送到何处时,它将选择最具体的适用路由,然后将其发送到该接口。
但是,如果关闭了转发,内核会先检查数据包来自哪个接口。如果不是来自同一个接口,内核就会丢弃它。
编辑:首先请注意,您可以在没有两个物理网络接口的情况下使用路由器。例如,如果您使用VLAN,您的服务器可以在 VLAN 之间传输 IP 数据包,但只有一个物理网络接口。这称为单臂路由器。但是对于最简单的情况,您可以说如果您只有一个物理网络接口,那么您不需要启用 IP 转发。
IP 转发涉及在网络接口(真实或虚拟)之间传输数据包,因此我思考如果您在同一网络上有两个接口,则必须启用 IP 转发才能允许数据包在接口之间移动。但是,由于接口已经在同一网络上,因此在它们之间传输数据包似乎没有多大意义。
答案2
根据维基百科...
IP 转发(也称为 Internet 路由)是用于确定数据包或数据报可以发送哪条路径的过程。该过程使用路由信息进行决策,旨在通过多个网络发送数据包。通常,网络之间通过路由器隔开。
当您想将系统用作路由器时,它是必需的。请查看以下链接以了解 IP 转发的具体用途。 http://www.linuxjournal.com/content/linux-advanced-routing-tutorial?