带有 DHCP 中继的 Ubuntu 服务器中的多个 DHCP 池

网络工程 思科 dhcp linux
2022-02-09 18:11:30

我目前使用 Cisco SG-350 系列交换机作为网络上的 DHCP 服务器。我有 16 个 VLAN,我的 SG350-28 交换机充当所有 VLAN 的 DHCP 服务器。在我添加更多 VLAN 和相应的 DHCP 服务器池之前,一切都运行良好。问题是,它最多只支持 16 个 DHCP 池。而我需要更多的 DHCP 池。

是否可以将 Ubuntu 服务器作为网络上所有 VLAN 的集中 DHCP 服务器,我可以让我的 SG350-28 交换机为每个 VLAN 使用 DHCP 中继吗?

2个回答

根据您的描述,您使用 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;
  }
  }