DHCP 侦听
DHCP 侦听是一项网络安全功能,可防止未经授权的 DHCP 服务器分配 IP 地址,防止 DHCP 欺骗和 IP 地址冲突,并增强整体网络安全性。通过确保只有受信任的 DHCP 服务器可以分配 IP 地址并维护 IP 地址到 MAC 地址映射的绑定表,DHCP 侦听有助于保护网络完整性和可靠性。
Cumulus Linux 充当 DHCP 基础设施和 DHCP 客户端之间的中间层,通过扫描 DHCP 控制数据包并构建 IP-MAC 数据库。Cumulus Linux 仅接受来自受信任接口的 DHCP Offer。
- Cumulus Linux 不支持 DHCP 选项 82 处理。
- 您必须将 DHCP 侦听 VLAN 添加到网桥。
- DHCP 侦听仅支持单网桥模式。
配置 DHCP 侦听
要配置 DHCP 侦听
- 将 DHCP 侦听 VLAN 添加到网桥。
- 在网桥下的 VLAN 上启用 DHCP 侦听。
- 添加受信任的接口。Cumulus Linux 仅允许来自受信任接口的 DHCP Offer,以防止恶意 DHCP 服务器在网络内部署 IP 地址。该接口必须是您指定的网桥的成员。
以下示例在 VLAN 10 上启用 DHCP 侦听,并将受信任接口设置为 swp3。swp3 是网桥 br_default
的成员
cumulus@switch:~$ nv set bridge domain br_default vlan 10
cumulus@switch:~$ nv set bridge domain br_default dhcp-snoop vlan 10
cumulus@switch:~$ nv set bridge domain br_default dhcp-snoop vlan 10 trust swp3
cumulus@switch:~$ nv config apply
对于 IPv6,运行 nv set bridge domain <bridge> dhcp-snoop6 vlan <vlan>
命令。
要禁用网桥下 VLAN 上的 DHCP 侦听,请为 IPv4 运行 nv unset bridge domain <bridge> dhcp-snoop vlan <vlan>
命令,或为 IPv6 运行 nv unset bridge domain <bridge> dhcp-snoop6 vlan <vlan>
命令。
创建 /etc/dhcpsnoop/dhcp_snoop.json
文件,然后在网桥下添加 DHCP 侦听配置。
以下示例在 VLAN 10 上为 IPv4 启用 DHCP 侦听,并将受信任接口设置为 swp3。swp3 是网桥 br_default
的成员
cumulus@switch:~$ sudo nano /etc/dhcpsnoop/dhcp_snoop.json
{
"bridge": [
{
"bridge_id": "br_default",
"vlan": [
{
"vlan_id": 10,
"snooping": 1,
"ip_version": 4,
"trusted_interface": [
"swp3"
],
}
]
}
]
}
以下示例在 VLAN 10 上为 IPv6 启用 DHCP 侦听,并将受信任接口设置为 swp6。swp6 是网桥 br_default
的成员
cumulus@switch:~$ sudo nano /etc/dhcpsnoop/dhcp_snoop.json
{
"bridge": [
{
"bridge_id": "br_default",
"vlan": [
{
"vlan_id": 10,
"snooping": 1,
"ip_version": 6,
"trusted_interface": [
"swp6"
],
}
]
}
]
}
显示 DHCP 侦听表
要显示 DHCP 侦听表,请为 IPv4 运行 nv show bridge domain <bridge> dhcp-snoop
命令,或为 IPv6 运行 nv show bridge domain <bridge> dhcp-snoop6
命令。
以下示例显示 IPv4 的 DHCP 侦听表
cumulus@switch:~$ nv show bridge domain br_default dhcp-snoop
DHCP Snooping Table
======================
Vlan Port IP MAC State Lease Bridge
---- ---- ----------- ----------------- ----- ----- ----------
10 swp1 10.1.10.100 48:b0:2d:fa:6b:a1 ACK 3600 br_default
要显示特定 VLAN 的 DHCP 侦听表,请为 IPv4 运行 nv show bridge domain <bridge> dhcp-snoop vlan <vlan-ID>
命令,或为 IPv6 运行 nv show bridge domain <bridge> dhcp-snoop6 vlan <vlan-id>
命令。
以下示例显示 VLAN 10 的 IPv4 DHCP 侦听表
cumulus@switch:~$ nv show bridge domain br_default dhcp-snoop vlan 10
DHCP Snooping Vlan Trust Ports Table
=======================================
Port
-----
swp51
DHCP Snooping Vlan Bind Table
================================
Port IP MAC State Lease Bridge
---- ----------- ----------------- ----- ----- ----------
swp1 10.1.10.100 48:b0:2d:fa:6b:a1 ACK 3300 br_default
要显示 DHCP 侦听表中的受信任端口信息,请为 IPv4 运行 nv show bridge domain <bridge-id> dhcp-snoop trust-ports
命令,或为 IPv6 运行 nv show bridge domain <bridge> dhcp-snoop6 trust-ports
命令。
以下示例显示 IPv4 DHCP 侦听表中的受信任端口信息
cumulus@switch:~$ show bridge domain br_default dhcp-snoop trust-ports
Vlan Ports
---------- --------------------
100 swp1, swp2
200 swp3, swp4