我用谷歌搜索了很多.它只记录了如何在
Linux内核中启用IP转发,但没有记录何时以及为什么我必须启用它.我会感谢你的建议.
何时以及为何必须启用它? (例如,当我安装网桥?,或者使用iptables?或使用路由添加时?)
(很好的链接值得赞赏,但我找不到.)
非常感谢你!
一月
解决方法
当您希望系统充当路由器时,应启用IP转发,即将IP数据包从一个网络传输到另一个网络.
在最简单的情况下,请考虑具有两个物理以太网端口的服务器,该端口旨在连接到两个不同的网络(比如您的内部网络和DSL调制解调器提供的外部世界).如果您只是连接并配置这两个接口,则系统可以在任一网络上进行通信.但是,来自一个网络的数据包无法传输到另一个网络,因为未启用转发.
考虑’route add’的具体示例.如果您有两个网络接口,则将至少添加两个路由,每个路由一个.当内核考虑在何处发送网络数据包时,它将选择最具体的适用路由,然后将其发送到该接口.
但是,如果关闭转发,内核将首先检查数据包来自哪个接口.如果它不是来自同一个接口,内核将丢弃它.
编辑:首先请注意,您可以使用没有两个物理网络接口的路由器.例如,如果您使用的是VLANs,则您的服务器可以在vlan之间传输IP数据包,但只有一个物理网络接口.这称为one-armed router.但是对于最简单的情况,您可以说如果您只有一个物理网络接口,则不需要启用IP转发.
IP转发涉及在网络接口(真实或虚拟)之间传输数据包,因此我认为如果在同一网络上有两个接口,则必须启用IP转发以允许数据包在接口之间移动.但是,由于接口已经在同一网络上,因此在它们之间传输数据包似乎没有多大意义.