iproute2 规则和 iptables NAT...有什么区别?

Jak*_*son 9 firewall iptables iproute2

我们有 2 个不同的 ISP 连接。我们以前的“IT 人员”像这样设置我们的防火墙:

/etc/rc.local被启动时执行的,但它确实一堆ip rule addip route add命令以路线某些内部主机使用某些ISP的连接。

然后在最后/etc/rc.local,他执行了我们iptables生成的防火墙规则Firewall Builder。这些iptables规则中设置了策略和 NAT 规则。

我不明白的是,为什么他iproute2用来指定规则和路由,但也指定 NAT 规则iptables?他为什么不把这一切都放在一个或另一个中,而不是同时使用它们?他能否摆脱iproute2规则和路由,并将所有这些相同的规则放入iptablesNAT 设置中?

Zor*_*che 14

虽然这两种工具之间的功能存在一些重叠,但您只能通过其中一种工具完成很多事情。 iproute2不能对 netfilter 防火墙规则做任何事情。 iptables不能做分配IP地址之类的事情。

即使在功能似乎重叠的地方,它也不会真正重叠。例如,您可以同时使用iproute2和进行地址转换iptables。但是您可以使用 iproute 进行的地址转换不考虑任何状态,并且绝对不重写数据包。有几种网络协议,如 FTP、SIP、H.323 等,其中 IP 地址包含在数据包中,而不仅仅是在报头中。如果您使用 iproute 方法进行地址转换,这些类型的协议将被破坏。Netfilter 在地址转换方面做得更好。

在功能重叠的大多数情况下,它以不同的方式处理。模块可以使用 进行路由iptables,但上次我检查该模块不在大多数发行版中,没有iptablesROUTE目标修补netfilter/ 。如果该目标不可用,则不能使用 netfilter 进行路由,除非您有心情编译自己的内核。您决定使用哪个工具只是因为该功能在您运行的工具版本中不可用。即使您有 ROUTE 目标,据我所知,使用 netfilter 进行路由决策的效率也不如使用带有iproute2操作的标准路由表进行路由那样有效。

其中很多还使用正确的工具来完成正确的工作。 iproute2主要用于管理计算机上的路由和地址。 iptables/Netfilter 是为防火墙而构建的。

我认为在一个人可以使用任何一种工具的地方,他们通常会使用他们最熟悉的工具。我知道我使用 MARK 目标iptables为一个路由或另一个路由标记一些数据包,即使我可以用iproute2.