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


8

我们有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设置中吗?

Answers:


13

虽然这两个工具之间的功能有些重叠,但是您只能通过其中一个工具执行许多操作。 iproute2netfilter防火墙规则无法执行任何操作。 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.