基于这个问题可以做以下事情:
- 带有 DHCP 的路由器连接到 Box 1 上的 NIC A - 机器 B 连接到 Box 1 上的 NIC B
我需要机器 B 从 NIC A 上的路由器获取 DHCP IP 地址。目前设置和配置如下:
- NIC A DHCP 分配的 IP:10.0.xx (255.255.255.224) - 网卡 B 静态 IP:10.1.xx (255.255.255.252)
我有 ipv4_forwarding 但是我无法为机器 B 分配静态 IP。我需要做什么才能让来自 NIC A 的所有流量流过 NIC B。或者更具体地说,我怎样才能让机器 B 获得 IP地址来自路由器上的 DHCP。
- 我需要设置 IPTables 吗?如果是这样,我从哪里开始?
- 我需要在 linux 机器上设置路由吗?如何?
- 做不到吗?
澄清
这个盒子不是路由器。已经有路由器了。这是一个用于 Samba 共享和虚拟机的 linux 机器。然而,有些机器无法连接到主交换机,但是它们可以通过另一个集线器连接到这台机器。
简而言之,这台机器坐在中间。
你有三个主机:
除非
Machine "R"
(您的路由器)知道10.1.0.0/16
通过10.0.0.2
它的路由根本不起作用。你有三个选择:
搭建一座桥梁,真的很简单。在机器“A”上:
然后配置
br0
为拥有您想要的 IP 地址(例如通过运行dhclient br0
)。然后,机器“B”应该能够使用
dhclient eth0
并从机器“R”获取 IP 地址网桥带来了一大堆问题,其中最重要的是很多设备都支持错误的 STP。
如果你让机器“R”来创建你的路由表,你需要机器“A”来启用代理 arp:
您网络上的其他机器将需要接受 ICMP 重定向。我见过至少有两台默认情况下没有的打印机。你的旅费可能会改变。
最后,启用网络地址转换实际上很简单:
$IP
供使用的地址在哪里Machine "R"
。有许多工具可以自动执行此操作。您应该桥接两个网络接口;这样,中间计算机就像一个网络集线器一样,以完全透明的方式在两个端口之间传递流量。没有路由,没有配置要做,另一台计算机和路由器将“只是”能够相互交谈(当然还有桥接计算机)。
为什么不在两个接口上绑定 dhcp 服务器呢?
默认情况下,dhcpd 应该已经在每个接口上侦听(如果没有为守护进程提供参数)...所以我想您只需更改 dhcpd.conf 即可管理 eth1 上的网络掩码...守护进程将也在这个界面上服务。
迪亚戈回复后编辑对不起,我误解了你的问题。如果有用,我不会删除其他人参考的答案。
您需要在您的 linux 机器中配置 DHCP 中继代理。DHCP 中继代理允许您将 DHCP 请求从一个子网中继到不同子网中的其他 DHCP 服务器。做DHCP中继的linux命令是dhcrelay
您还需要检查您是否可以从机器 B 访问 DHCP 服务器(检查我对您的其他问题的回答以配置路由和默认网关),并且您的服务器中没有防火墙规则阻止从机器 B 到 DHCP 服务器的数据包。
如果您按照链接到的问题的说明进行操作,则该框是路由器。ip_forward = 1 设置启用路由。如果这不是您想要的,那么您需要将其设置为桥梁。
通过将盒子设置为路由器,您使事情变得更加复杂,听起来像是您想要/需要的。将具有两个接口的系统配置为网桥可能是最简单的选择。如果您需要该盒子实际上是路由器,那么您将不得不考虑其他选项。
您可以在计算机上设置 dhcp 中继代理,但您还需要向路由器添加路由,以便它可以访问内部地址空间,并且您需要为路由器添加额外的范围以用于内部地址空间。
您可以简单地在具有两个接口的盒子上设置一个 DHCP 服务器,并将地址提供给您的内部网络。如果简单地用两个接口制作一个桥接器不是一个选项,这可能是最简单的设置。
Box 1 需要设置为 dhcp 中继代理。