linux 使用 iptables 配置网关

linux config gateway using iptables

我正在构建一个本地服务器集群。

 server2 eth0 IP:168.168.1.2 
              Gateway: 168.168.1.1
              NETMASK: 255.255.0.0 
 server3: eth0 IP:    168.168.1.3
               Gateway: 168.168.1.1
               NETMASK: 255.255.0.0
 server1: eth0 IP:  168.168.1.1
          eth0:1 IP x.x.x.x(provided by ISP)
                 GATWWAY x.x.x.x(provided by ISP)

我想建立server1作为子网的网关。 我可以成功访问 server1 上的 public 网络。但是,它在 server2 上失败。我 运行 服务器 1

上的以下命令
 #iptables -t nat -F
 #iptables -t nat -A POSTROUTING -s 168.168.0.0/16  -o eth0:1 -j MASQUERADE
 #iptables -t nat -A POSTROUTING -o eth0:1 -j MASQUERADE

 #iptables -t nat -L

  Chain PREROUTING (policy ACCEPT)
  target     prot opt source               destination

  Chain POSTROUTING (policy ACCEPT)
  target     prot opt source               destination
  MASQUERADE  all  --  anywhere             anywhere

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination


  #iptables -L
  Chain INPUT (policy ACCEPT)
  target     prot opt source               destination

  Chain FORWARD (policy ACCEPT)
  target     prot opt source               destination
  ACCEPT     all  --  anywhere             anywhere

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination

  Chain LOGGING (0 references)
  target     prot opt source               destination

在服务器 2 上

   #ping 173.194.127.240
   PING 173.194.127.240 (173.194.127.240) 56(84) bytes of data.
   From 168.168.1.1: icmp_seq=2 Redirect Host(New nexthop: x.x.x.x(ISP gateway))
   From 168.168.1.1: icmp_seq=3 Redirect Host(New nexthop: x.x.x.x(ISP gateway))
   From 168.168.1.1: icmp_seq=4 Redirect Host(New nexthop: x.x.x.x(ISP gateway))

    --- 173.194.127.240 ping statistics ---
   6 packets transmitted, 0 received, 100% packet loss, time 5950ms

我在 server1 上的配置有什么问题。我应该如何使用 iptables 配置网关?非常感谢

在同一接口上同时使用 LAN 和 WAN IP 地址不是最佳做法。我建议为您的 WAN 连接安装一个新的 NIC(例如 eth1)。您的配置看起来不错,只需在安装新 NIC 后使用 eth1 代替 eth0:1。