大型网络内的小型网络上的 NAT

大型网络内的小型网络上的 NAT

在我们的实验室中,我们有一个由 4 台 Debian 机器组成的小型网络,通过 LAN 中的路由器连接。其中一台机器(服务器)由大楼的大型网络提供互联网连接。我想使用 NAT 为 LAN 上的内部机器提供互联网。我遵循了此指导但我无法从客户端获得有效的连接。

服务器在 eth0 的 IP 是 192.168.2.248(连接到互联网);eth1 是 192.168.200.1(连接到 LAN)。我设置了 bind9(使用标准配置,但将正确的 DNS 地址添加到 /etc/bind/named.conf.options)来转发 DNS,但我不确定这是否绝对必要。

$ iptables-save 
# Generated by iptables-save v1.4.21 on Mon Aug 22 16:06:21 2016
*nat
:PREROUTING ACCEPT [46792:8129746]
:INPUT ACCEPT [46302:8099043]
:OUTPUT ACCEPT [2752:190850]
:POSTROUTING ACCEPT [1472:88500]
-A POSTROUTING -o eth0 -j SNAT --to-source 192.168.2.248
COMMIT
# Completed on Mon Aug 22 16:06:21 2016
# Generated by iptables-save v1.4.21 on Mon Aug 22 16:06:21 2016
*filter
:INPUT ACCEPT [61997:8558568]
:FORWARD ACCEPT [11:836]
:OUTPUT ACCEPT [9258:2611777]
-A FORWARD -i eth1 -j ACCEPT
COMMIT
# Completed on Mon Aug 22 16:06:21 2016

我可以使用 ssh 连接机器或在它们之间进行 ping,但我仍然无法从客户端机器(eth0 IP 192.168.200.2)连接或 ping 互联网。这是此机器上的网关:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.200.1   0.0.0.0         UG    0      0        0 eth0
192.168.200.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

/proc/sys/net/ipv4/ip_forward 为 1

欢迎任何帮助

答案1

您不需要使用绑定,您可以在网络之外设置 DNS 服务器(如 Google DNS 8.8.8.8 / 8.8.4.4)但您的第一个问题是在 IP 层。

如果您使用 192.168.2.248 进行 SNAT,则应在网关上设置默认路由以此方式(例如 192.168.2.254)为目标。

当您从网关 ping 8.8.8.8 时,有任何响应吗?

  1. 验证您的网关是否有互联网(ping 8.8.8.8)
  2. 你应该从你的客户端 ping 你的网关
  3. 尝试使用 -j MASQUERADE 而不是 -j SNAT

相关内容