计算机从DHCP服务器获取IP,但没有互联网连接

我已经在Ubuntu 12.10上安装了一个isc-dhcp-server,我试图在本地networking中的六台工作计算机的头节点上设置DHCP服务器。 头节点本身是一个DHCP客户端,从networking中的其他计算机接收IP地址192.168.20.1(在eth0上)。

头节点上启用IPv4 IP转发。 在/etc/sysctl.conf中添加了以下行:

net.ipv4.ip_forward = 1 

以下规则在/etc/rc.local中设置:

 /sbin/iptables -P FORWARD ACCEPT /sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE 

此外, INTERFACES="eth0"在/ etc / default / isc-dhcp-server中设置。

dhcpd.conf文件包含(目前只有一个工人计算机在文件中):

 ddns-update-style none; default-lease-time 3600; max-lease-time 7200; authoritative; subnet 192.168.20.0 netmask 255.255.255.0 { range 192.168.20.2 192.168.20.200 host hostName { hardware ethernet macOfHost; fixed-address 192.168.20.20; } option subnet-mask 255.255.255.0; option broadcast-address 192.168.20.255; option routers 192.168.20.1; } 

工作节点有效地获取IP地址192.168.20.20,但它没有互联网连接。 到192.168.20.1的ping成功,以及作为头节点(ping到192.168.1.1)的DHCP服务器的计算机的ping。 这个问题似乎与DNS没有任何关系,因为ping到IP地址(如8.8.4.4)失败。

更新

networking拓扑结构如下。 有一台交换机连接一台电脑(有互联网接入和运行DHCP服务器,IP地址为192.168.1.1)和另外7台电脑。 其中一台电脑从192.168.1.1电脑获取IP。 它得到的IP是192.168.20.1,并在该计算机上的互联网工作正常。 现在我们有一台运行在192.168.20.1的DHCP服务器,以便为其他6台计算机提供互联网访问,但是失败了。 他们获得IP地址,但没有互联网接入。 我们不允许在192.168.1.1节点上修改任何东西,所以使用这个设置可以使networking工作。

有人知道问题可能是什么?

客户端上的/ sbin / route -n的输出:

 Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.20.1 0.0.0.0 UG 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 192.168.20.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1 

输出sudo iptables -L -v -n:链INPUT(策略ACCEPT 2146包,1551K字节)pkts字节目标protselect输出源

 Chain FORWARD (policy ACCEPT 59 packets, 3762 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 1908 packets, 213K bytes) pkts bytes target prot opt in out source destination 

ip ro sh默认通过192.168.1.1 输出 dev eth0 proto static 169.254.0.0/16 dev eth0 scope link metric 1000 192.168.0.0/16 dev eth0 proto kernel scope link src 192.168.20.1 metric 1

你必须启用转发:

 sysctl -w net.ipv4.ip_forward=1 

上述线路将立即工作。 但下次重新启动系统时将会消失。

对于persisten设置,将以下内容放入/etc/sysctl.conf (但重启后才能生效):

 net.ipv4.ip_forward=1 

Ubuntu文档在他们的连接共享指南中非常详细地介绍了这一点:

https://help.ubuntu.com/community/Internet/ConnectionSharing

根据我的意见…

您正尝试在eth0和eth1上使用相同的IP。

把eth1上的子网改为10.10.0.0 /255.255.255.0,你应该全部设置好。

一切正在工作。 原来是DNS问题, 修改option routersoption routers 192.168.1.1修复了这个问题。 ping必须被阻塞在networking的某个地方,因为响应从来没有经过,但是在浏览器上浏览到特定的IP地址是可能的,这使我意识到DNS是问题。 感谢大家的帮助。