【问题标题】:Configure iptables to route to local network and to the internet配置 iptables 以路由到本地网络和互联网
【发布时间】:2020-06-19 13:45:37
【问题描述】:

我有一台 linux 机器,它充当路由器 R、子网 B 和主机 a。 我想创建以下转发规则:

  1. 将来自 B 的所有内容路由到某台机器 a
  2. a,通过 NAT 将流量返回到在 B 上发起的所有内容。
  3. 将所有其他流量从 a 路由到互联网。
         Internet
            |
 ---       ---       ---
|   |<----|-/ |     |   |
| a |     | R |     | B |
|   |<----|---|---->|   |
 ---       ---       ---

R上的iptables配置:

iptables -t nat -A POSTROUTING -o eth_to_a -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth_to_B -j SNAT --to IP_eth_B_R
iptables -t nat -A PREROUTING -i eth_to_B -j DNAT --to IP_a
iptables -A FORWARD -i eth_to_a -o eth_to_B -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth_to_B -o eth_to_a -j ACCEPT

使用此配置,从 Ba 的流量可以正常工作,但我无法将来自 a 的流量转发到互联网(并返回)。

【问题讨论】:

    标签: routes iptables


    【解决方案1】:

    您能否检查第三种情况(将流量转发到 Internet)符合哪个规则?还要检查丢包。追踪会提供一些线索。 我猜这个规则可能会命中(iptables -A FORWARD -i eth_to_a -o eth_to_B)

    我看到一个视频,有人解释了如何调试与 iptable 规则相关的问题。可能对你有用。

    https://www.youtube.com/watch?v=uA9ik52N6AA

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2017-11-14
      • 2021-01-16
      相关资源
      最近更新 更多