it-swarm.cn

什么是内核ip转发?

我在很多博客上都看到过,使用此命令启用IP转发,同时在Linux上使用许多网络安全/嗅探工具

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

谁能用通俗易懂的方式向我解释,此命令的主要作用是什么?它会将您的系统变成路由器吗?

76
Madhur Ahuja

“ IP转发”是“路由”的同义词。它被称为“内核IP转发”,因为它是Linux内核的功能。

路由器具有多个网络接口。如果流量在与另一个网络接口的子网匹配的一个接口上传入,则路由器会将流量转发到另一个网络接口。

因此,假设您有两个NIC,一个(NIC 1)在地址192.168.2.1/24,另一个(NIC 2)在192.168.3.1/24。如果启用了转发,并且“ [目标地址]”为192.168.3.8的数据包从NIC 1传入,则路由器将从NIC 2中重新发送该数据包。

用作Internet网关的路由器通常具有默认路由,即与任何NIC不匹配的任何流量都将通过默认路由的NIC。因此,在上面的示例中,如果您在NIC 2上建立了互联网连接,则将NIC 2设置为默认路由,然后来自NIC 1的任何流量都不是“ t目的地为192.168.2.0/24的东西将通过NIC2。希望通过NIC 2的其他路由器可以对其进行进一步路由(对于Internet,下一跳将是您的ISP的路由器,然后是其提供商的上游路由器等)

启用ip_forward会告诉您的Linux系统执行此操作。为了使它有意义,您需要两个网络接口(任意2个或更多有线NIC卡,Wifi卡或芯片组,通过56k调制解调器或串行端口的PPP链接等)。

在进行路由时,安全性很重要,这就是Linux的数据包过滤器iptables参与其中的地方。因此,您将需要一个符合您需求的iptables配置。

请注意,如果其中一个NIC面对Internet或您无法控制的子网,则在禁用iptables和/或不考虑防火墙和安全性的情况下启用转发可能会使您容易受到漏洞攻击。

89
LawrenceC

启用后,“ IP转发”允许Linux计算机接收传入的数据包并转发它们。充当普通主机的Linux机器不需要启用IP转发,因为它只是出于自己的目的(即,其用户的目的)生成和接收IP流量。

但是,在某些情况下IP转发很有用:1.我们希望我们的机器充当路由器,从其他主机接收数据包并将其路由到目的地。 2.我们是坏人,我们想用所谓的“ man-in-the-middle-attack ”来模仿另一台机器。在这种情况下,我们要拦截并查看所有定向到受害者的流量,但是我们也希望将此流量转发给她,这样她就不会“感觉到”我们的存在。

4
Andrea Araldo