我们在远程子网上设置了一个带有 DCHP 助手的两分支 MPLS。DHCP 服务在 CentOS 机器上运行。
所以我有两个子网:
- 主机范围:192.168.0.1 - 192.168.1.254
- 远程范围:192.168.2.1 - 192.168.3.254
有两个问题:
- 当我在主机位置测试此配置时,我测试的计算机从来宾池中提取,而不是接收其分配的 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
部分了。
另外,我是否可以像这样在两个子网上使用该网络广播?
首先,没有必要将所有内容都包含在“共享网络”中。来自 man dhcpd.conf:
在您的设置中并非如此 - 这两个网络在物理上和逻辑上是分开的。
其次,您收到有关两个 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 服务,如果您在本地启用 DHCP,您的网络将更有弹性。如果您必须通过 WAN 链接运行 DHCP,我强烈建议您至少将租用期限设置为较高的值。添加备份链接,如 Internet 上的 VPN 连接(假设每个站点都有单独的 Internet 连接)也有助于确保 DHCP 服务的可用性。