我们在远程子网上设置了双分支 MPLS 和 DCHP Helper。DHCP 服务在 CentOS 机器上运行。
所以我有两个子网:
- 主机范围:192.168.0.1 - 192.168.1.254
- 远程范围:192.168.2.1 - 192.168.3.254
存在两个问题:
- 当我在主机位置测试此配置时,我测试的计算机从客户池中拉取 IP 地址,而不是接收其分配的 IP 地址。
- DHCP 服务器不喜欢在两个子网中看到同一个设备,因此会抛出一个错误,提示该设备被列出了两次。
现在,如何在配置文件中指定这两个网络?这是我想到的办法,但不起作用:
shared-network CompleteNetwork {
subnet 192.168.2.0 netmask 255.255.254.0 {
option subnet-mask 255.255.254.0;
option broadcast-address 192.168.3.255;
option routers 192.168.2.1;
#reserved pool for Guests (freely distributed)
pool {
range 192.168.3.101 192.168.3.150;
}
# ----A Laptop Computer for testing sake
host TestSubject {
hardware ethernet AA:BB:00:11:22:33;
fixed-address 192.168.2.205;
}
#...
}
subnet 192.168.0.0 netmask 255.255.254.0 {
option subnet-mask 255.255.254.0;
option broadcast-address 192.168.3.255;
option routers 192.168.1.1;
#reserved pool for Guests <------ ONLY RANGE DISTRIBUTED FREELY
pool {
range 192.168.0.101 192.168.0.150;
}
# ----A Laptop Computer for testing sake
host TestSubject {
hardware ethernet AA:BB:00:11:22:33;
fixed-address 192.168.1.205;
}
#...
}
}
[编辑]
所以我现在明白了,要在两个网络上拥有相同的设备,我必须指定不同的主机名。我现在也明白我不需要这个shared-network
部件。
另外,我这样在两个子网上使用网络广播是否正确?
答案1
首先,没有必要将所有内容都包含在“共享网络”中。从 man dhcpd.conf 中:
共享网络语句用于通知 DHCP 服务器,某些 IP 子网实际上共享同一物理网络。共享网络中的任何子网都应在共享网络语句中声明。... 如果共享网络中的任何子网有可用于动态分配的地址,则这些地址将被收集到该共享网络的公共池中,并根据需要分配给客户端。无法区分客户端应在共享网络的哪个子网上启动。
您的设置中情况并非如此 - 这两个网络在物理和逻辑上是分开的。
其次,您收到有关两个 TestSubject 的错误,因为 dhcpd 不允许有两个同名的主机。更改其中一个主机的名称,即使 MAC 地址相同,我也很确定错误会消失,您的主机预留将按预期工作。
主机声明中的名称不必与客户端认为其主机名应该匹配的任何内容 - 在这种情况下,它更像是一个任意标识符。服务器根据接收请求的子网和硬件地址将客户端与主机声明进行匹配。
最后,第二个子网的广播地址应该是 192.168.1.255(抱歉我之前错过了!)您实际上在这里设置了两个独立的第 3 层网络(假设这是一个第 3 层 MPLS VPN)。
ISC dhcpd 的手册页中有很多很好的参考信息 - 我强烈建议阅读 man dhcpd 和 man dhcpd.conf。
关于以这种方式设置网络的明智性 - 我同意这可能不是理想的配置,特别是如果两个站点之间的唯一链接是单个 MPLS VPN。我在一家为客户提供 MPLS 服务的小型电信公司工作。我知道我们有一些客户在他们的主要位置运行单个 DHCP 服务器。我知道这一点,因为当他们的 WAN 链接断开时,他们会惊慌失措地打电话给我们的 NOC,要求我们在我们的 CPE 路由器上启用 DHCP 服务器。如果你有一些如果您在本地启用 DHCP,您的网络将更具弹性。如果您必须通过 WAN 链接运行 DHCP,我强烈建议至少将租约有效期设置为较高的值。添加备用链接(例如 Internet 上的 VPN 连接)(假设每个站点都有单独的 Internet 连接)也有助于确保 DHCP 服务的可用性。