网关机器有2个网卡,一个连接公用networking,另一个连接专用networking。
网关:
eth0 4.xx3
ETH1:10.10.11.3
有5台机器,这个网关都是ip 10.10.11.5 — 9,网关是10.10.11.3
DNAT:
Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT all -- anywhere 4.xx5 to:10.10.11.5 DNAT all -- anywhere 4.xx6 to:10.10.11.6 DNAT all -- anywhere 4.xx7 to:10.10.11.7
网关上的SNAT
Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 10.10.11.5 anywhere to:4.xx5 SNAT all -- 10.10.11.6 anywhere to:4.xx6 SNAT all -- 10.10.11.7 anywhere to:4.xx7
这个规则是不工作,直到我分配公网IP在接口上的网关,似乎问题与ARP。
Question1有没有办法避免在接口上分配公网IP来解决ARP问题
问题2:有人可以解释一下,除ARP之外的ARP失败的原因是第一层,NAT是第三层
它都在你的上行路由器中。 4.xxxnetworkingN直接连接到您的路由器和您的提供商的路由器R.每当R想要达到networkingN中的任何东西,它知道它是本地连接,并将发送它的ARP请求。
您可以在路由器R上设置更具体的路由(4.xx5 / 32 – > 4.xx3)(如果您的提供商允许您…)。 或者把你的路由器4.xx3回答ARP请求。 如果您的Linux机器不拥有IP,它将不会回应电线上的本地ARP请求。 configurationIP将回答ARP请求,并让上游路由器R将数据包转发到您的盒子。 最后有你的路由器可以转发的数据包和NAT。 直到数据包没有到达你的盒子,它们不能被转发。
与图层无关 – 这个问题只在layer3上运行。