S交換機轉發平面安全—二層網絡安全

無論是管理平面管理員登錄的安全,還是控制平面CPU的安全,最終目的都是爲了保證轉發平面數據流量的正常轉發。不管是二層網絡還是三層網絡,只有交換機的轉發表正常了,數據流量才能正常轉發。二層轉發的轉發表是MAC表,設備通過MAC表查找報文的出接口,如果查表失敗,報文就會進行廣播,所以廣播風暴是二層網絡中最常見的現象。因此,如何保證轉發表的安全和如何抑制廣播風暴,是二層網絡安全的重點問題。下邊我們也將結合這兩個方面看下交換機二層網絡的安全問題。

1   如何保證轉發表安全?

爲了保證二層流量能夠正常轉發,針對不同的應用場景,交換機提供了不同的方法保證轉發表的安全。譬如:MAC防漂移和端口安全通過MAC和接口的綁定,保證MAC表的安全。DHCP Snooping通過記錄用戶DHCP的認證信息,保證動態用戶的安全接入。

1.1      MAC防漂移

接口只要接收到報文,就會進行MAC表項學習。交換機從正確的接口學習到合法用戶的MAC表後,又從其他接口接收到非法用戶的***報文時,就會導致MAC表項學習錯誤,二層轉發出現異常。

最典型的場景如圖1所示,非法用戶通過模擬網關的源MAC向接入交換機發送報文,網關對應MAC1的出接口就會從IF1漂移到IF2。這樣下行用戶向網關發送報文時,通過MAC表項查詢到的出接口就是錯誤的IF2,用戶的報文就無法轉發到網關,二層轉發異常。

1 MAC防漂移場景

20161215114021869001.png

 

針對該場景,S交換機有兩種方法進行安全預防:

Ø  配置靜態MAC把網關的MAC和接口手動綁定,使網關的MAC無法發生漂移。如果不知道網關MAC或網關MAC不固定時,該方法不適用S交換機的配置方法如下:

[SwitchA] mac-address static 3-3-3 gigabitethernet 0/0/10 vlan 4   //假設網關的MAC是3-3-3,接口是GE0/0/10,把接口和MAC在VLAN 4的廣播域內綁定

Ø  配置MAC學習優先級:使IF1接口MAC學習優先級高於IF2接口,這樣如果IF2接口再收到源MACMAC1的報文時,不再進行MAC學習,使MAC地址不進行漂移。S交換機的配置方法如下:

[SwitchA] interface gigabitethernet 0/0/10   //連接網關的接口

[SwitchA-GigabitEthernet0/0/10] mac-learning priority 3   //配置接口MAC學習優先級爲最高值3

說明:S交換機有些形態不支持配置MAC學習優先級,可以通過配置MAC Spoofing功能設置網關接口爲信任接口,防止網關的MAC地址漂移,配置方法如下:

[SwitchA] mac-spoofing-defend enable   //全局使能MAC Spoofing功能

[SwitchA] interface gigabitethernet 0/0/10   //連接網關的接口

[SwitchA-GigabitEthernet0/0/10] mac-spoofing-defend enable   //配置接口爲信任接口

1.2      端口安全

端口安全也是一種保證轉發表安全的特性。在接口上使能端口安全功能後,接口上學習到的MAC地址就會自動轉換爲安全MAC,實現MAC地址和接口綁定,這樣該MAC對應的用戶就只能從該接口接入,無法再從其他接口接入。

另外,端口安全還可以通過設置接口下MAC表項的個數限制用戶接入,保證只有先到的用戶能夠接入,後來的用戶無法接入,同時也防止了黑洞MAC泛洪***導致MAC表溢出的問題。

但是端口安全無法判斷接入的用戶是否合法,只能保證先到的用戶可以接入,如果先到的用戶是非法的,也是可以接入的。

2 端口安全應用場景

20161215114022509002.png

如圖2所示,某企業爲了保證接入用戶的安全性,防止非法用戶通過發送源MAC頻繁變化的報文***網絡,同時防止非法用戶通過仿冒MAC地址接入網絡。要求一個接口下只允許三個用戶接入,同時要求這三個用戶只能從指定接口接入,不能從任意端口接入。

爲了實現上面安全策略,可以在SwitchAGE0/0/1接口上配置端口安全功能,在有非法用戶想要通過該接口接入時,還可以上報告警。S交換機配置端口安全的方法如下:

[SwitchA] interface gigabitethernet 0/0/1

[SwitchA-GigabitEthernet0/0/1] port-security enable   //接口使能端口安全功能

[SwitchA-GigabitEthernet0/0/1] port-security max-mac-num 3   //配置接口下只允許綁定三個MAC地址,也就是說只允許三個用戶接入,默認情況下接口使能端口安全後,只能綁定一個MAC地址

[SwitchA-GigabitEthernet0/0/1] port-security mac-address sticky   //使能Sticky MAC功能,在保存配置重啓後,接口和MAC的綁定不會消失

說明:端口安全轉換的安全MAC達到限制數後,如果有非法用戶想要接入,端口安全就會執行懲罰動作。S交換機支持三種懲罰動作:

動作

實現說明

protect

丟棄源地址在MAC以外的報文。

restrict

丟棄源地址在MAC表以外的報文,同時上報告告警,通知網絡管理員進行處理。交換機默認是該動作。

shutdown

接口直接被shutdown,需要網絡管理員手動恢復。

1.3      DHCP Snooping

DHCP SnoopingDHCP的一種安全特性,用來保證DHCP客戶端能夠正確的從DHCP服務器獲取IP地址,防止網絡中針對DHCP的***。

DHCP Snooping是如何防止DHCP***的呢?在這之前我們先了解一下什麼是DHCP

DHCP,動態主機配置協議,在IPv4網絡中爲客戶端動態分配IP地址,採用客戶端/服務器通信模式,由客戶端(DHCP Client)向服務器(DHCP Server)提出申請,服務器返回爲客戶端分配的IP信息,包括IP地址、缺省網關、DNS Server等參數。

3 DHCP組網圖

20161215114023954003.png

如圖3所示,DHCP組網中包括以下兩種角色:

Ø  DHCP客戶端(DHCP Client):通過DHCP協議請求獲取IP地址的設備,如IP電話、PC等。

Ø  DHCP服務器(DHCP Server):負責爲DHCP客戶端分配IP地址的設備。

由於DHCP的客戶端/服務器通信模式,非法用戶一般從下面幾個方法進行***。

4 DHCP常見***方式

20161215114024892004.png

***方式

***原理

DHCP Server仿冒***

非法用戶通過仿冒DHCP Server,爲客戶端分配錯誤的IP地址,導致客戶端無法正常接入網絡。

DHCP報文仿冒***

Ø  已獲取到IP地址的合法用戶通過向服務器發送DHCP Request報文用以續租IP地址。非法用戶冒充合法用戶不斷向DHCP Server發送DHCP Request報文來續租IP地址,導致到期的IP地址無法正常回收,新的合法用戶不能再獲得IP地址。

Ø  已獲取到IP地址的合法用戶通過向服務器發送DHCP Release報文用以釋放IP地址。非法用戶仿冒合法用戶向DHCP Server發送DHCP Release報文,使合法用戶異常下線。

DHCP報文泛洪***

非法用戶在短時間內發送大量DHCP報文,使DHCP Server無法正常處理報文,從而無法爲客戶端分配IP地址。

DHCP Server拒絕服務***

Ø  非法用戶通過惡意申請IP地址,使DHCP服務器中的IP地址快速耗盡,無法爲合法用戶再分配IP地址。

Ø  DHCP Server通常僅根據DHCP Request報文中的CHADDRClient Hardware Address)字段來確認客戶端的MAC地址。非法用戶通過不斷改變CHADDR字段向DHCP Server申請IP地址,使DHCP服務器中的IP地址快速耗盡,無法爲合法用戶再分配IP地址。

DHCP Snooping針對不同的DHCP***方式提供相應的防禦方法,一般配置在接入交換機上。

***方式

防禦方法

DHCP Server仿冒***

配置接入交換機與DHCP Server相連的接口爲信任接口,只有信任接口能夠接收和轉發DHCP報文。

DHCP報文仿冒***

DHCP Server爲客戶端分配IP地址過程中,根據DHCP報文生成DHCP Snooping綁定表,該綁定表記錄MAC地址、IP地址、租約時間、VLAN ID、接口等信息,然後通過DHCP報文與綁定表的合法性檢查,丟棄非法報文,防止DHCP報文仿冒***。

DHCP報文泛洪***

限制DHCP報文上送CPU的速率。

DHCP Server拒絕服務***

Ø  通過限制DHCP Snooping綁定表的個數,限制用戶接入數。當用戶數達到指定值時,任何用戶將無法通過此接口申請到IP地址。

Ø  通過檢查DHCP Request報文幀頭MACDHCP數據區中CHADDR字段的一致性,丟棄不一致的報文,防止非法用戶***。

DHCP Snooping的各種防禦方法應該怎麼配置呢?我們通過一個具體的實例來看一下。

5 DHCP Snooping應用場景

20161215114025406005.png

如圖5所示,DHCP Client1DHCP Client2通過SwitchADHCP Server申請IP地址。通過在SwitchA上配置DHCP Snooping功能,防止以下類型的***:

Ø  DHCP Server仿冒***

Ø  DHCP報文仿冒***

Ø  DHCP報文泛洪***

Ø  DHCP Server拒絕服務***

S交換機的配置方法如下:

1.         全局和接口下使能DHCP Snooping功能。

[SwitchA] dhcp enable   //需要先全局使能DHCP功能

[SwitchA] dhcp snooping enable

[SwitchA] interface gigabitethernet 0/0/1

[SwitchA-GigabitEthernet0/0/1] dhcp snooping enable

[SwitchA-GigabitEthernet0/0/1] quit

[SwitchA] interface gigabitethernet 0/0/2

[SwitchA-GigabitEthernet0/0/2] dhcp snooping enable

[SwitchA-GigabitEthernet0/0/2] quit

2.         連接DHCP Server的接口配置爲信任接口,防止DHCP Server仿冒者***。

[SwitchA] interface gigabitethernet 0/0/10

[SwitchA-GigabitEthernet0/0/10] dhcp snooping enable

[SwitchA-GigabitEthernet0/0/10] dhcp snooping trusted

[SwitchA-GigabitEthernet0/0/10] quit

3.         DHCP報文與綁定表的合法性檢查,防止DHCP報文仿冒***

[SwitchA] dhcp enable

[SwitchA] dhcp snooping check dhcp-request enable vlan 10   //對VLAN 10內的用戶進行合法性檢查

4.         限制DHCP報文上送CPU的個數,防止DHCP報文泛洪***。

[SwitchA] dhcp snooping check dhcp-rate enable   //使能對DHCP報文上送CPU的速率檢測功能

[SwitchA] dhcp snooping check dhcp-rate 90   //每秒最多處理90個DHCP報文

5.         配置DHCP Snooping綁定表個數和DHCP Request報文幀頭源MAC地址與CHADDR字段一致性檢查功能,防止DHCP Server拒絕服務***。

[SwitchA] dhcp snooping max-user-number 2 vlan 10   //配置VLAN 10內只允許兩個用戶接入

[SwitchA] dhcp snooping check dhcp-chaddr enable vlan 10

2   如何抑制廣播風暴?

什麼是廣播風暴?

就是廣播、未知組播以及未知單播報文過多或者在網絡中成環的一種現象。

爲什麼會有廣播風暴?

二層轉發是根據MAC表項轉發的,如果報文的MAC地址在MAC表中找不到對應的出接口,報文就會在VLAN內所有端口進行轉發,從而產生廣播風暴。

怎麼抑制廣播風暴呢?

抑制廣播風暴最根本的方法是找到報文的出接口,使報文進行單播轉發。然而在實際應用中,由於MAC表的規格限制和二層轉發的原理,廣播風暴是無法徹底解決的,只能儘可能的減少安全風險。

交換機提供了兩種安全方法:一是基於不同維度進行流量抑制,二是通過風暴控制阻塞端口或Error-Down端口。

2.1   流量抑制

流量抑制可以從下面3個維度進行抑制:

功能點

說明

基於接口進行流量限制

在接口的入方向上,分別對三類報文按百分比、包速率和比特速率進行流量抑制。

基於VLAN進行流量限制

對某個VLAN的上行流量,分別對三類報文按比特速率進行流量抑制。

基於接口進行流量阻塞

在接口的出方向上,阻塞這三類報文的轉發。

 

這些功能又該怎麼應用呢?我們從下圖看一下應用場景和配置方法。

6 流量抑制應用場景

20161215114025495006.png

如圖6所示,SwitchA是匯聚層交換機,通過接口GE0/0/1接入網絡的用戶屬於兩個VLANVLAN 10 VLAN 20;通過接口GE0/0/2接入網絡的用戶屬於VLAN 30;通過接口GE0/0/3接入網絡只有一個固定的用戶,該用戶對安全要求較高,不希望收到廣播、未知組播以及未知單播報文。

配置思路:

Ÿ   接口GE0/0/1下的用戶屬於不同的VLAN域,可以針對不同的VLAN分別進行流量抑制。

Ÿ   接口GE0/0/2下的用戶屬於同一個VLAN,可以直接針對該接口進行流量抑制。

Ÿ   接口GE0/0/3下的用戶對安全要求較高,基於接口阻塞廣播、未知組播以及未知單播報文的流量。

配置方法:

1.         基於VLAN配置流量抑制,限制每個VLAN廣播、未知組播以及未知單播報文的流量。

[SwitchA] qos car qoscar1 cir 1000   //配置Qos模板,承諾速率是1000kbit/s

[SwitchA] vlan 10

[SwitchA-vlan10] broadcast-suppression qoscar1   //在VLAN視圖下應用該模板,對廣播報文進行抑制,承諾速率是1000kbit/s

[SwitchA-vlan10] multicast-suppression qoscar1   //在VLAN視圖下應用該模板,對未知組播的抑制,承諾速率是1000kbit/s

[SwitchA-vlan10] unicast-suppression qoscar1   //在VLAN視圖下應用該模板,對未知單播的抑制,承諾速率是1000kbit/s

說明:

Ÿ   在VLAN視圖下應用Qos模板時,如果指定關鍵字share,則廣播,未知組播和未知單播報文承諾的速率一共是1000kbit/s。

Ÿ   以上配置是框式設備,對於盒式設備,直接在VLAN視圖下設置抑制速率,不需要配置Qos模板。

2.         基於接口配置流量抑制,限制該接口廣播、未知組播以及未知單播報文的流量。

[SwitchA] interface gigabitethernet 0/0/2

[SwitchA-GigabitEthernet0/0/2] broadcast-suppression 5   //廣播報文速率最多佔接口速率的5%

[SwitchA-GigabitEthernet0/0/2] multicast-suppression 5   //未知組播報文速率最多佔接口速率的5%

[SwitchA-GigabitEthernet0/0/2] unicast-suppression 5   //未知單播報文速率最多佔接口速率的5%

說明:基於接口的流量抑制,有三種配置方式:可以基於百分比,包速率和比特速率分別抑制。其他兩種配置方法不再詳細說明,配置命令如下。

broadcast-suppression { percent-value | cir cir-value [ cbs cbs-value ] | packets packets-per-second }

multicast-suppression { percent-value | cir cir-value [ cbs cbs-value ] | packets packets-per-second }

unicast-suppression { percent-value | cir cir-value [ cbs cbs-value ] | packets packets-per-second }

3.         基於接口阻塞廣播、未知組播以及未知單播報文的流量。

[SwitchA] interface gigabitethernet 0/0/3

[SwitchA-GigabitEthernet0/0/3] broadcast-suppression block outbound   //阻塞廣播報文

[SwitchA-GigabitEthernet0/0/3] multicast-suppression block outbound   //阻塞未知組播報文

[SwitchA-GigabitEthernet0/0/3] unicast-suppression block outbound   //阻塞未知單播報文

2.2   風暴控制

風暴控制不僅可以通過設置速率控制廣播、未知組播以及未知單播報文,還可以在速率超過設置閾值時對接口執行懲罰動作。

Ø  阻塞端口:

當一個檢測週期內,接口上這三類報文中任意報文的平均速率大於指定的最大閾值時,接口就會被阻塞。

當一個檢測週期內,接口上這三類報文中任意報文的平均速率小於指定的最小閾值時,接口就會放開阻塞。

Ø  Error-Down端口:

當一個檢測週期內,接口上這三類報文中任意報文的平均速率大於指定的最大閾值時,接口就會被Error-Down

缺省情況下,被Error-Down的接口不會自動恢復,需要手動執行restart命令進行恢復。

如果在接口被Error-Down之前配置了自動恢復時間,到達時間後接口就會自動恢復。

配置方法:

[SwitchA] error-down auto-recovery cause storm-control interval 20   //如果接口被風暴控制error down,20秒後接口自動恢復

[SwitchA] interface gigabitethernet 0/0/5

[SwitchA-GigabitEthernet0/0/5] storm-control broadcast min-rate 1000 max-rate 2000   //廣播報文執行懲罰動作的閾值

[SwitchA-GigabitEthernet0/0/5] storm-control action error-down   //風暴控制的懲罰動作是error down

[SwitchA-GigabitEthernet0/0/5] quit

[SwitchA] interface gigabitethernet 0/0/6

[SwitchA-GigabitEthernet0/0/6] storm-control multicast min-rate percent 5 max-rate percent  20   //未知組播報文執行懲罰動作的閾值

[SwitchA-GigabitEthernet0/0/6] storm-control action block    //風暴控制的懲罰動作是阻塞端口


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章