基于这个问题可以做到以下几点:
- 带有DHCP的路由器连接到方框1上的NIC A. - 机器B连接到机箱1上的网卡B.
我需要计算机B从网卡A上的路由器获取DHCP IP地址。目前的设置和configuration如下:
- 网卡DHCP分配的IP:10.0.xx(255.255.255.224) - 网卡B静态IP:10.1.xx(255.255.255.252)
我有ipv4_forwarding但是我不能分配一个静态IP到机器B.我需要做什么来获取从网卡A的所有stream量通过网卡Bstream动。或者更具体地说,如何让机器B获得IP路由器上的DHCP地址。
澄清
这个盒子不是路由器。 已经有一个路由器。 这是一个用于Samba共享和虚拟机的Linux机器。 然而,有些机器不能连接到主开关,但是可以通过另一个集线器连接到这台机器。
总之这台机器坐在中间。
你有三个主机:
Machine "B" ====== Machine "A" ====== Machine "R" 10.1.0.1 10.0.0.2 10.0.0.1
除非Machine "R" (你的路由器)知道10.1.0.0/16路由通过10.0.0.2它根本不会工作。
你有三个select:
创造一座桥梁,是非常简单的。 在机器“A”上:
brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 brctl stp br0 on
然后configurationbr0有你想要的IP地址(比如说运行dhclient br0 )。
然后,机器“B”应该能够使用dhclient eth0并从机器“R”获得一个IP地址
桥梁带来了很多问题,其中最重要的是很多设备都支持STP。
如果你得到机器“R”来创build你的路由表,你需要机器“A”来启用代理ARP:
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
networking上的其他机器将需要接受ICMPredirect。 我已经看到至less有两台打印机不是默认的。 你的旅费可能会改变。
最后,启用networking地址翻译实际上是一个简单的问题:
iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source $IP
其中$IP是由Machine "R"给予使用的地址。 有很多工具可以自动执行此操作。
您应该桥接两个networking接口; 这样,中间的群体就像networking中心一样,以完全透明的方式在两个端口之间传递stream量。 没有路由,没有configuration要做,另一台计算机和路由器将“只”能够相互交谈(当然还有桥接计算机)。
您需要在您的Linux机器中configurationDHCP中继代理。 DHCP中继代理允许您将DHCP请求从一个子网中继到不同子网中的其他DHCP服务器。 执行DHCP中继的linux命令是dhcrelay
此外,您还需要检查是否可以从计算机B访问DHCP服务器(请查看您的其他问题的答案以configuration路由和默认网关),并且服务器中没有防火墙规则阻止计算机B向DHCP服务器发送数据包。
为什么不在两个接口上绑定DHCP服务器呢?
默认情况下,dhcpd应该已经监听每个接口(如果没有参数给守护进程)…所以我想你只需要改变你的dhcpd.conf为了pipe理eth1上的networking掩码…守护进程将也在这个界面上服务。
Diago回复后编辑对不起,我误解了你的问题。 如果有用,我不会删除其他人参考的答案。
如果你按照你所链接的问题的指示,那么该框是一个路由器。 ip_forward = 1设置启用路由。 如果这不是你想要的,那么你需要把它设置为一个桥梁。
通过将路由器设置为路由器,可以让事情变得更加复杂,这听起来像是你想要的。 将两个接口configuration为网桥可能是最简单的select。 如果你需要的盒子实际上是一个路由器,那么你将不得不考虑其他选项。
您可以在电脑上设置一个DHCP中继代理,但您还需要添加一个路由到您的路由器,以便它可以访问内部地址空间,您将需要添加一个额外的范围内部地址空间的路由器。
您可以简单地在两个接口的盒子上设置DHCP服务器,并将地址提供给您的内部networking。 这可能是最简单的设置,如果简单地使两个接口框不桥梁是一个选项。
方框1需要设置为一个DHCP中继代理。