端口隔离技术
通过端口隔离技术可以实现同vlan内设备不能通信,跨vlan设备可以通信。 设置端口隔离组,把想要隔离的端口加入到端口隔离组中,在隔离组内的设备不能相互通信,不在隔离组中的设备端口可以互相通信。
端口隔离技术原理:
如上拓扑中,三台PC可以自由通信。
双向隔离:
[SW1-GigabitEthernet0/0/1]port-isolate enable group 12 默认为组1,12表示PC1、2做隔离
[SW1-GigabitEthernet0/0/2]port-isolate enable group 12
端口1、2都加入隔离组12,同一隔离组内设备不能相互通信:
单项隔离:
[SW1-GigabitEthernet0/0/1]am isolate GigabitEthernet 0/0/3 GE0/0/1不会把数据包发给GE0/0/3
全局视图设置隔离模式:
[SW1]port-isolate mode ?
all All
l2 L2 only 默认是L2
::: warning 如果默认使用L2隔离,SW1上配置ARP代理和网关,仍可以通过三层进行访问:
[SW1-Vlanif1]ip ad 192.168.1.254 24
[SW1-Vlanif1]arp-proxy inner-sub-vlan-proxy enable
三层通信时,PC1访问PC2时,先访问SW1的vlanif 1接口,再访问SW2的GE0/0/2接口,再访问PC2。 :::
MAC地址表安全
起始时SW2的MAC地址表项为空,PC4访问PC5后出现表项:
配置静态MAC地址:
[SW2]mac-address static 5489-9866-6666 GigabitEthernet 0/0/3 vlan 1
配置静态MAC地址表项后,MAC地址表中出现该表项: ::: tip 静态MAC地址匹配的是源MAC,和静态表项的接口、VLAN是对应的。 :::
配置黑洞MAC地址:
[SW2]mac-address blackhole 5489-9811-1111
黑洞MAC不需要匹配接口和vlan,无论收到的数据包的源目MAC与黑洞MAC一致,该数据包都会被丢弃。 配置黑洞MAC地址表项后,MAC地址表中出现该表项: ::: warning 黑洞MAC配置时,最后可以选择是否指定vlan内生效,如果不指定vlan,即为全局黑洞MAC,指定vlan后,即为该vlan内的黑洞MAC。 (不加vlan时ENSP无法实现数据包丢弃,针对单独vlan的黑洞路由配置可以生效。) :::
[SW2]mac-address aging-time 10 将动态MAC地址表项老化时间设置为10s
限制动态MAC地址学习数量
[SW2]mac-address aging-time 300 将动态MAC地址表项老化时间恢复默认300s
[SW2-GigabitEthernet0/0/1]mac-limit maximum 3
接口下做动态MAC学习的数量限制(不包括静态MAC学习),超出的MAC地址默认情况下按照未知单播帧进行转发
上述拓扑中将PC4的MAC地址修改为44、45、46、47后,分别使用4个MAC地址ping 192.168.1.1,在SW2上学习动态MAC表项如下: 即做了MAC学习的数量限制后,超出的MAC地址不会记录在MAC地址表项中。
[Huawei-GigabitEthernet0/0/1] mac-limit action { discard | forward }
MAC地址数达到限制后,对报文应采取的动作,默认丢弃(ENSP中没有该命令)
禁止MAC地址学习
[SW2-GigabitEthernet0/0/2]mac-address learning disable 设置该接口不学习动态MAC地址
::: tip 交换机不学习动态MAC仍可以通过未知单播帧进行泛洪转发数据包。 服务器多bound时可以设置禁止MAC地址学习,使得可以数据包只根据静态MAC地址转发。 :::
禁止MAC地址学习分为基于接口和基于vlan:
[SW2-GigabitEthernet0/0/2]mac-address learning disable action ?
discard Discard packets
forward Forward packets
[SW2-vlan2] mac-address learning disable
action参数针对指定二层接口不需要学习MAC地址情况下,配置报文是否需要转发。 默认禁止MAC地址学习功能后,接口采取的动作是forward转发。 当动作配置为forward时,若MAC地址表中有匹配表项,即按照MAC表进行转发;若无匹配表项,即广播报文。 当动作配置为discard时,若MAC地址表中有匹配表项,即按照MAC表进行转发;若无匹配表项,则丢弃该报文。
配置静态MAC,禁止MAC地址学习和丢弃动作可以增强网络的稳定性和安全性。 VLAN视图和网桥组视图下不支持丢弃或转发动作的配置。
端口安全
背景是企业需要限制交换机接入的设备数量,如一个交换机端口只允许一个MAC地址接入,为防止MAC地址漂移,还需要对接口和MAC地址进行绑定。 端口安全通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC,安全静态MAC和Sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。 安全MAC地址: 安全动态MAC地址和Sticky(粘性) MAC地址可以与配置接口下maximum limit 1配合使用,即防止使用hub分时间将多台设备接入交换机。
[SW3-GigabitEthernet0/0/1]port-security enable 使能端口安全功能
[SW3-GigabitEthernet0/0/1]port-security mac-address sticky 使能端口Sticky MAC功能
PC7访问PC8产生动态MAC地址表项后,将PC7的MAC地址做更改再次访问PC8,会提示接口上MAC地址数达到限制:
[SW3-GigabitEthernet0/0/1]port-security enable
[SW3-GigabitEthernet0/0/1]port-security mac-address sticky
[SW3-GigabitEthernet0/0/2]port-security enable
[SW3-GigabitEthernet0/0/3]port-security enable
[SW3-GigabitEthernet0/0/3]port-security mac-address sticky
[SW3-GigabitEthernet0/0/3]port-security mac-address sticky 5489-9899-9999 vlan 1 手动配置sticky-mac表项
SW3上做如上配置后,GE0/0/1、2通过PC7和PC8通过相互访问将MAC写入地址表,GE0/0/3通过端口直接配置将PC9的MAC写入地址表:
端口上学习MAC的数量限制可以通过如下命令更改:
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num ? 配置端口安全动态MAC学习限制数量(范围1-4096,默认为1)
[Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number 配置Sticky后端口Sticky MAC学习限制数量(默认为1)
如果将限制数量改成多个,就允许多个MAC地址表项接入同一个端口
配置接口学习到的安全动态MAC地址的老化时间:
[Huawei-GigabitEthernet0/0/1] port-security aging-time time (可选,单位为分钟,默认不老化)
[Huawei-GigabitEthernet0/0/1] port-security protect-action { protect | restrict | shutdown } 配置端口安全保护动作(可选)
收到没有表项对应的MAC地址即进行如下操作:
Restrict:丢弃源MAC地址不存在的报文并上报告警。
Protect:只丢弃源MAC地址不存在的报文,不上报告警。
Shutdown:接口状态被置为error-down,并上报告警。
MAC地址漂移
防止MAC地址漂移的两种做法:
[Huawei-GigabitEthernet0/0/1]mac-learning priority 1 设置接口学习MAC地址的优先级(默认为0越大越优)
[Huawei-GigabitEthernet0/0/1]undo mac-learning priority 0 allow-flapping 优先级相同时后学到的不覆盖原有表项
默认允许相同优先级的接口发生MAC地址漂移
MAC地址漂移检测可以在VLAN和全局下做。
[Huawei-vlan2] mac-address flapping detection 配置MAC地址漂移检测
默认已经对交换机上所有VLAN配置了MAC地址漂移检测
配置发生漂移后接口的处理动作:
[Huawei-GigabitEthernet0/0/1] mac-address flapping
quit-vlan 接口退出valn
error-down 接口shutdown
端口shutdown后在设置时间(500s)内恢复up:
[Huawei]error-down auto-recovery cause mac-address-flapping interval 500
接口GE0/0/1收到的广播报文进行风暴控制:
[Huawei-GigabitEthernet0/0/1] storm-control broadcast min-rate 1024 nax-rate 2048
上述命令表示当报文平均速率大于1024pps时进行风暴控制,当报文平均速率小于2048pps时恢复正常转发。
报文平均速率超出最大值时阻塞接口:
[Huawei-GigabitEthernet0/0/1] storm-control action block
使能接口状态自动恢复为UP的功能,并设置接口自动恢复为UP的延时时间:
[Huawei-GigabitEthernet0/0/1] error-down auto-recovery cause storm-control interval interval-value
DHCP Snooping
DHCP Snooping是DHCP用于保证客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。
DHCP Snooping信任功能
DHCP Snooping信任功能将接口分为信任接口和非信任接口:
- 信任接口正常接收DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文。
- 非信任接口在接收到DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文后,丢弃该报文。 一般将与合法DHCP服务器直接或间接连接的接口设置为信任接口(if1接口),其他接口设置为非信任接口(if2接口),DHCP客户端的DHCP请求报文仅能从信任接口转发出去,防止有DHCP Server仿冒者。
DHCP Snooping绑定表
在二层接入设备使能DHCP Snooping功能后通过信任接口将终端和DHCP服务器报文交互的过程中,二层接入设备可以获取PC的MAC地址以及获取到的IP地址、地址租期,获取与PC连接的使能了DHCP Snooping功能的接口信息(接口编号和该接口所属VLAN),根据这些信息生成DHCP Snooping绑定表。 ::: tip DHCP Snooping功能需应用于二层网络中的接入设备或第一个DHCP Relay上。 在DHCP中继使能DHCP Snooping场景中,DHCP Relay设备不需要设置信任接口。 (因为DHCP Relay收到DHCP请求报文后进行源目的IP、MAC转换处理,然后以单播形式发送给指定的合法DHCP服务器) :::
[AR1]dhcp enable
[AR1-GigabitEthernet0/0/0]ip address 10.1.12.1 255.255.255.0
[AR1-GigabitEthernet0/0/0]dhcp select interface
上述配置PC获取到DHCP服务器下发的网络配置: AR2也做类似配置后,PC>ipconfig /release、PC>ipconfig /renew,PC有一半的概率获取到AR2下发的网关为10.1.12.2的网络信息。但是AR2下发的网络信息无法上网。需要在交换机上做DHCP snooping功能:
[SW4]dhcp enable
[SW4]dhcp snooping enable ipv4 全局开启dhcp snooping(不加vlan),ipv4表示针对IP v4
[SW4-GigabitEthernet0/0/1]dhcp enable 接口开启dhcp snooping
[SW4-GigabitEthernet0/0/1]dhcp snooping trusted 设置信任接口
[SW4-GigabitEthernet0/0/2]dhcp enable
设置信任接口后,即使SW4-GE0/0/1接口的线缆断开连接,PC也不会从GE0/0/2口连接的AR2获取网络信息。 ::: tip 所有接口默认都非信任接口。 ::: 查看DHCP Snooping绑定表信息:
DHCP服务是一种静默服务,容易受到网络攻击。
1.DHCP server饿死攻击:
1.网络中大量的攻击者,发送request报文获取server的地址参数。
解决方法:
dhcp snooping max-user-number命令用来配置接口允许学习的DHCP Snooping绑定表项的最大个数。
2.网络中的一个攻击者,不断改变dhcp报文中chaddr字段,模拟大量的终端用户获取IP地址。
解决方法:
dhcp snooping check dhcp-chaddr enable命令用来使能检测DHCP Request报文帧头源MAC地址与CHADDR字段是否相同的功能。
2.DHCP报文攻击:
攻击者不断发送大量的DHCP报文,消耗服务器的处理性能。
解决方法:
dhcp snooping check dhcp-rate命令用来配置DHCP报文上送DHCP报文处理单元的最大允许速率。
3.DHCP server仿冒攻击:
攻击者模拟DHCP server发送不可上网的网络参数。
解决方法:信任接口。
4.DHCP request、release报文攻击:
攻击者模拟终端发送request续租地址或者发送release释放地址,导致合法用户掉线或server无地址分配。
解决方法:
dhcp snooping check dhcp-rate enable 命令用来配置DHCP报文上送DHCP报文处理单元的最大允许速率。
dhcp snooping check dhcp-rate 50 设置速率为50,默认值为100