示例:防范地址欺骗和第 2 层 DoS 攻击
您可以在交换机的接入接口上配置 DHCP 侦听、动态 ARP 检查 (DAI) 和 MAC 限制,以保护交换机和以太网 LAN 免受地址欺骗和第 2 层拒绝服务 (DoS) 攻击。要获取这些功能的基本设置,您可以使用交换机的默认端口安全配置,配置 MAC 限制,并在 VLAN 上启用 DHCP 侦听和 DAI。当 DHCP 服务器连接到的交换机不同于 DHCP 客户端(网络设备)所连接的交换机时,可以配置这些功能。
此示例介绍如何在其主机从连接到第二台交换机的 DHCP 服务器获取 IP 地址和租用时间的交换机上配置端口安全功能:
要求
此示例使用以下硬件和软件组件:
一台 EX 系列交换机或 QFX3500 台交换机 — 本例中为交换机 1 。
附加的 EX 系列交换机或 QFX3500 交换机 — 此示例中的交换机 2 。请勿在第二台交换机上配置端口安全。
对于 EX 系列交换机,Junos OS 9.0 或更高版本,或者对于 QFX 系列,Junos OS 12.1 或更高版本。
连接到交换机 2 的 DHCP 服务器。您可以使用服务器向连接到交换机 1 的网络设备提供 IP 地址。
至少两个网络设备(主机)连接到交换机 1 上的接入接口。这些设备是 DHCP 客户端。
在配置 DHCP 侦听、DAI 和 MAC 限制端口安全功能之前,请确保您已:
已将DHCP服务器连接到交换机2。
已在交换机 1 上配置 VLAN。查看适用于您平台的任务:
示例:为 QFX 系列设置与多个 VLAN 的桥接
概述和拓扑
以太网 LAN 容易受到网络设备上的地址欺骗和 DoS 攻击。要保护设备免受此类攻击,您可以配置:
DHCP 侦听以验证 DHCP 服务器消息
DAI 可防止 ARP 欺骗
MAC 限制,用于限制交换机添加到其 MAC 地址缓存的 MAC 地址数量
此示例说明如何在交换机 1 上配置这些端口安全功能。交换机 1 连接到另一台未配置端口安全功能的交换机(交换机 2)。交换机 2 连接到 DHCP 服务器(请参阅 图 1)。连接到交换机 1 的网络设备(主机)发送 IP 地址请求(这些网络设备是 DHCP 客户端)。这些请求从交换机 1 传输到交换机 2,然后再传输到连接到交换机 2 的 DHCP 服务器。对请求的响应沿请求后跟的路径相反的路径传输。
此示例的设置包括两台交换机上的 VLAN employee-vlan
。
图 1 显示了该示例的网络拓扑。
拓扑学
此示例的拓扑组件如 表 1 所示。
属性 | 设置 |
---|---|
交换机硬件 |
一台 EX 系列交换机或一台 QFX3500 交换机(交换机 1),以及另一台 EX 系列交换机或 QFX3500 交换机(交换机 2) |
VLAN 名称和 ID |
|
VLAN 子网 |
|
两台交换机上的中继接口 |
ge-0/0/11 |
交换机 1 上的接入接口 |
ge-0/0/1、ge-0/0/2 和 ge-0/0/3 |
交换机 2 上的接入接口 |
ge-0/0/1 |
DHCP 服务器接口 |
交换机 2 上的 ge-0/0/1 |
交换机 1 最初配置了默认端口安全设置。在交换机的默认配置中:
交换机上的安全端口访问已激活。
交换机不会丢弃任何数据包,这是默认设置。
DHCP 侦听和 DAI 在所有 VLAN 上均处于禁用状态。
所有接入接口均不受信任,中继接口受信任;这些是默认设置。
在本示例的配置任务中,您将在两台交换机上配置 VLAN。
除了配置 VLAN 之外,您还可以在交换机 1 上启用 DHCP 侦听。在此示例中,您还可以在交换机 1 上启用 DAI 和 MAC 限制 5
。
由于将交换机 2 连接到交换机 1 的接口是中继接口,因此您无需将此接口配置为可信接口。如上所述,中继接口是自动受信任的,因此从 DHCP 服务器发送到交换机 2 然后到交换机 1 的 DHCP 消息是受信任的。
在交换机 1 上配置 VLAN、接口和端口安全功能
程序
CLI 快速配置
要快速配置 VLAN、接口和端口安全功能,请复制以下命令并将其粘贴到交换机终端窗口中:
[edit] set vlans employee-vlan vlan-id 20 set interfaces ge-0/0/11 unit 0 family ethernet-switching port-mode trunk set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members 20 set interfaces ge-0/0/2 unit 0 family ethernet-switching vlan members 20 set interfaces ge-0/0/3 unit 0 family ethernet-switching vlan members 20 set interfaces ge-0/0/11 unit 0 family ethernet-switching vlan members 20 set ethernet-switching-options secure-access-port interface ge-0/0/1 mac-limit 5 action drop set ethernet-switching-options secure-access-port vlan employee-vlan arp-inspection set ethernet-switching-options secure-access-port vlan employee-vlan examine-dhcp clear ethernet-switching table interface ge-0/0/1
分步过程
要在交换机 1 上配置 MAC 限制、VLAN 和接口,并在 VLAN 上启用 DAI 和 DHCP:
使用 VLAN ID
20
配置 VLANemployee-vlan
:[edit vlans] user@switch1# set employee-vlan vlan-id 20
将交换机 1 上的接口配置为中继接口:
[edit interfaces] user@switch1# set ge-0/0/11 unit 0 family ethernet-switching port-mode trunk
将 VLAN 与接口 ge-0/0/1、ge-0/0/2、ge-0/0/3 和 ge-0/0/11 关联:
[edit interfaces] user@switch1# set ge-0/0/1 unit 0 family ethernet-switching vlan members 20 user@switch1# set ge-0/0/2 unit 0 family ethernet-switching vlan members 20 user@switch1# set ge-0/0/3 unit 0 family ethernet-switching vlan members 20 user@switch1# set ge-0/0/11 unit 0 family ethernet-switching vlan members 20
在 VLAN 上启用 DHCP 侦听:
[edit ethernet-switching-options secure-access-port] user@switch1# set vlan employee-vlan examine-dhcp
在 VLAN 上启用 DAI:
[edit ethernet-switching-options secure-access-port] user@switch1# set vlan employee-vlan arp-inspection
在 ge-0/0/1 上配置 MAC 限制
5
并使用默认操作(drop
如果超出限制,将丢弃具有新地址的数据包):[edit ethernet-switching-options secure-access-port] user@switch1# set interface ge-0/0/1 mac-limit 5 drop
清除接口 ge-0/0/1 中的现有 MAC 地址表条目:
user@switch1# clear ethernet-switching table interface ge-0/0/1
结果
显示配置结果:
[edit] user@switch1# show ethernet-switching-options { secure-access-port { interface ge-0/0/1.0{ mac-limit 5 action drop; } vlan employee-vlan { arp-inspection; examine-dhcp; } } } interfaces { ge-0/0/1 { unit 0 { family ethernet-switching { vlan { members 20; } } } } ge-0/0/2 { unit 0 { family ethernet-switching { vlan { members 20; } } } } ge-0/0/3 { unit 0 { family ethernet-switching { vlan { port-mode trunk; members 20; } } } } ge-0/0/11 { unit 0 { family ethernet-switching { port-mode trunk; vlan { members 20; } } } } } vlans { employee-vlan { vlan-id 20; } }
在交换机 2 上配置 VLAN 和接口
要在交换机 2 上配置 VLAN 和接口:
程序
CLI 快速配置
要在交换机 2 上快速配置 VLAN 和接口,请复制以下命令并将其粘贴到交换机终端窗口中:
[edit] set vlans employee-vlan vlan-id 20 set interfaces ge-0/0/11 unit 0 family ethernet-switching port-mode trunk set interfaces ge-0/0/11 unit 0 family ethernet-switching vlan members 20 set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members 20
分步过程
要在交换机 2 上配置 VLAN 和接口:
使用 VLAN ID
20
配置 VLANemployee-vlan
:[edit vlans] user@switch1# set employee-vlan vlan-id 20
将交换机 2 上的接口配置为中继接口:
[edit interfaces] user@switch2# set ge-0/0/11 unit 0 ethernet-switching port-mode trunk
将 VLAN 与接口 ge-0/0/1 和 ge-0/0/11 关联:
[edit interfaces] user@switch2# set ge-0/0/1 unit 0 family ethernet-switching vlan members 20 user@switch2# set ge-0/0/11 unit 0 family ethernet-switching vlan members 20
结果
显示配置结果:
[edit] user@switch2# show interfaces { ge-0/0/1 { unit 0 { family ethernet-switching { vlan { members 20; } } } } ge-0/0/11 { unit 0 { family ethernet-switching { port-mode trunk; vlan { members 20; } } } } } vlans { employee-vlan { vlan-id 20; } }
验证
确认配置工作正常。
验证交换机 1 上的 DHCP 侦听是否正常工作
目的
验证 DHCP 侦听是否在交换机 1 上工作。
行动
从连接到交换机的网络设备(此处为 DHCP 客户端)发送一些 DHCP 请求。
当交换机 2 向连接到交换机 1 的客户端发送 DHCP 服务器回复的接口受信任时,发出操作模式命令 show dhcp snooping binding 以显示 DHCP 侦听信息。服务器已提供 IP 地址和租约:
user@switch1> show dhcp snooping binding DHCP Snooping Information: MAC Address IP Address Lease Type VLAN Interface ----------------- ---------- ----- ---- ---- --------- 00:05:85:3A:82:77 192.0.2.17 600 dynamic employee—vlan ge-0/0/1.0 00:05:85:3A:82:79 192.0.2.18 653 dynamic employee—vlan ge-0/0/1.0 00:05:85:3A:82:80 192.0.2.19 720 dynamic employee—vlan ge-0/0/1.0 00:05:85:3A:82:81 192.0.2.20 932 dynamic employee—vlan ge-0/0/1.0 00:05:85:3A:82:83 192.0.2.21 1230 dynamic employee—vlan ge-0/0/1.0 00:05:85:3A:82:90 192.0.2.20 932 dynamic employee—vlan ge-0/0/2.0 00:05:85:3A:82:91 192.0.2.21 1230 dynamic employee—vlan ge-0/0/3.0
意义
对于每个 MAC 地址,输出显示分配的 IP 地址和租用时间,即租约到期前剩余的时间(以秒为单位)。
验证交换机 1 上的 DAI 是否正常工作
目的
验证 DAI 是否在交换机 1 上工作。
行动
从连接到交换机的网络设备发送一些 ARP 请求。
发出操作模式命令 show arp inspection statistics 以显示 DAI 信息:
user@switch1> show arp inspection statistics ARP inspection statistics: Interface Packets received ARP inspection pass ARP inspection failed ---------- –-------------–- ------------------- --------------------- ge-0/0/1.0 7 5 2 ge-0/0/2.0 10 10 0 ge-0/0/3.0 18 15 3
意义
输出显示每个接口接收和检查的 ARP 数据包数,并列出每个接口上通过检查的数据包数和未通过检测的数据包数。交换机会将 ARP 请求和回复与 DHCP 侦听数据库中的条目进行比较。如果 ARP 数据包中的 MAC 地址或 IP 地址与数据库中的有效条目不匹配,则会丢弃该数据包。
验证交换机 1 上的 MAC 限制是否正常工作
目的
验证交换机 1 上的 MAC 限制是否有效。
行动
发出操作模式命令 show ethernet-switching table 以显示从 ge-0/0/1 上的主机发送 DHCP 请求时获知的 MAC 地址:
user@switch1> show ethernet-switching table
Ethernet-switching table: 6 entries, 5 learned VLAN MAC address Type Age Interfaces employee-vlan 00:05:85:3A:82:77 Learn 0 ge-0/0/1.0 employee-vlan 00:05:85:3A:82:79 Learn 0 ge-0/0/1.0 employee-vlan 00:05:85:3A:82:80 Learn 0 ge-0/0/1.0 employee-vlan 00:05:85:3A:82:81 Learn 0 ge-0/0/1.0 employee-vlan 00:05:85:3A:82:83 Learn 0 ge-0/0/1.0 employee-vlan * Flood - ge-0/0/1.0
意义
输出显示已经为接口 ge-0/0/1
学习了五个MAC地址,这对应于配置中设置的 5
MAC限制。输出的最后一行显示丢弃了第六个 MAC 地址请求,如列 MAC address
中的星号 (*) 所示。