我目前使用 Cisco SG-350 系列交换机作为网络上的 DHCP 服务器。我有 16 个 VLAN,我的 SG350-28 交换机充当所有 VLAN 的 DHCP 服务器。在我添加更多 VLAN 和相应的 DHCP 服务器池之前,一切都运行良好。问题是,它最多只支持 16 个 DHCP 池。而我需要更多的 DHCP 池。
是否可以将 Ubuntu 服务器作为网络上所有 VLAN 的集中 DHCP 服务器,我可以让我的 SG350-28 交换机为每个 VLAN 使用 DHCP 中继吗?
我目前使用 Cisco SG-350 系列交换机作为网络上的 DHCP 服务器。我有 16 个 VLAN,我的 SG350-28 交换机充当所有 VLAN 的 DHCP 服务器。在我添加更多 VLAN 和相应的 DHCP 服务器池之前,一切都运行良好。问题是,它最多只支持 16 个 DHCP 池。而我需要更多的 DHCP 池。
是否可以将 Ubuntu 服务器作为网络上所有 VLAN 的集中 DHCP 服务器,我可以让我的 SG350-28 交换机为每个 VLAN 使用 DHCP 中继吗?
根据您的描述,您使用 SG350 交换机作为核心交换机。因此,在此交换机中配置 DHCP 池不是一个好主意,因为它会在您的交换机上产生额外的开销。此外,SG350 交换机的冗余功能有限,因此如果出现故障,您将失去一切。
您可以使用单独的 DHCP 池,例如 ubuntu、windows 或单独的路由器,例如 netgear....等。但我不建议在不同的位置使用 DHCP 池。您可以移动到所有 DHCP 池以分离 DHCP 池。否则它将在您的网络上产生额外的复杂性。
我的问题的解决方案非常简单,我通过更多的思考进一步复杂化了它。
在 Linux 上配置 ISC DHCP 服务器时,您可以为 DHCP 池中的每个子网创建类。每个类都将匹配 DHCP 请求中的“giaddr”字段,这将是 DHCP 中继代理的 IP 地址。在子网定义中,匹配适当的类。
下面是示例配置。
subnet 10.0.0.0 netmask 255.255.255.0 { }
class "VLAN1" {
match if (binary-to-ascii(10,8, ".", packet(24,4)) ="10.0.1.1");
}
class "VLAN2" {
match if (binary-to-ascii(10,8, ".", packet(24,4)) ="10.0.2.1");
}
class "VLAN3" {
match if (binary-to-ascii(10,8, ".", packet(24,4)) ="10.0.3.1");
}
subnet 10.0.1.0 netmask 255.255.255.0 {
pool {
allow members of "VLAN1";
default-lease-time 86400;
max-lease-time 7200;
range 10.0.1.10 10.0.1.254;
option routers 10.0.1.1;
option broadcast-address 10.0.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 4.2.2.2;
}
}
subnet 10.0.2.0 netmask 255.255.255.0 {
pool {
allow members of "VLAN2";
default-lease-time 86400;
max-lease-time 7200;
range 10.0.2.10 10.0.2.254;
option routers 10.0.2.1;
option broadcast-address 10.0.2.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 4.2.2.2;
}
}
subnet 10.0.3.0 netmask 255.255.255.0 {
pool {
allow members of "VLAN3";
default-lease-time 86400;
max-lease-time 7200;
range 10.0.3.10 10.0.3.254;
option routers 10.0.3.1;
option broadcast-address 10.0.3.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 4.2.2.2;
}
}