3.1 作用
ACl訪問控制列表主要有以下兩個作用:
-
在路由表時完整可通行的情況下,對流量的放行進行限制
-
抓取路由,進行動作
從路由層面控制住數據的可達性
不管什么訪問控制列表,只能針對經過自己的流量失效,本設備始發的流量無效。
3.2 基本ACL
3.2.1 特點
僅使用報文的源IP地址、分片信息和生效時間段信息來定義規則。
序列號范圍是2000~2999
舉例:
[Huawei] acl 2001
[Huawei] rule 5 permit source 192.168.32.1 0 //rule 編號(可不填) 動作 source 源地址 匹配條件
3.3 高級ACL
3.3.1 特點
即可使用IPV4報文的源IP地址、也可使用目的IP地址、IP協議地址、ICMP類型、TCP源/目的端口、UDP源/目的端口號、生效時間段等來定義規則。
序列號范圍是3000~3999。
舉例:
[Huawei] acl 3001
[Huawei-acl-adv-3001] rule permit tcp source 10.9.8.0 0.0.0.255 destination 10.38.160.0 0.0.0.255 destination-port eq 128 //rule 編號(可不填) 動作 協議名 source 源地址 匹配條件 destination 目的地址 匹配條件 destination-port eq等於/gt大於/lt小於 端口號
3.4 二層ACL
3.4.1 特點
使用報文的以太網幀頭信息來定義規則, 如根據源MAC地址、目的MAC地址、二層協議類型等。
序列號范圍是4000-4999
舉例:
[Huawei] acl 4001
[Huawei-acl-L2-4001] rule permit source-mac 0000-0000-0002 destination-mac 0000-0000-0001 l2-protocol 0x0800 //rule 編號(可不填) 動作 source-mac 源地址(IPV6) destination-mac 目的地址(IPV6)l2-protocol 協議值
-
ARP,對應的協議值為0x0806
-
IP,對應的協議值為0x0800
-
MPLS,對應的協議值為0x8847
-
RARP,對應的協議值為0x8035
-
默認為0xffff
3.5 用戶ACL
3.5.1 特點
既可使用IPV4報文的源IP地址,也可使用目的IP地址、IP協議類型、ICMP類型、TCP源端口/目的端口、UDP端口/目的端口配置來定義規則。
注意:只能在NAC特性中使用,當前環境下無法運行。
序列號范圍是6000-6031
[Huawei] acl 6000
[Huawei-acl-ucl-6000] rule permit ip destination passthrough-domain www.huawei.com /rule 動作 協議名或值 destination passthrough-domain(僅當動作為permit時才支持配置) 允許報文通過的域名地址)
3.6 命名型ACL
都用數字表示訪問控制列表不夠直觀,增加后期維護的難度,所以推薦在工作中使用字符串來給acl命名。如果未指定ACL類型,默認為高級ACl。
舉例:
[Huawei] acl name test 2001
3.6 注意事項
-
任何設備在通信的時候,默認都會使用出接口IP地址作為源IP,必須要注意
-
基本訪問控制列表基於源IP做限制,為了精准控制,請盡量靠近目的地配置減少影響
-
ACL至少有一條permit才有意義
-
ACL必須要被接口使用才可以發揮作用
-
ACL應用到接口是一定要注意inbound或者outbound
3.7 ACL匹配順序
-
按rule-id從小到大的順序進行匹配
-
自動排序(auto)
-
使用”深度優先“的原則進行匹配
ACL類型 匹配原則 基本ACL 1. 帶VPN實例的規則優先 2. 源地址范圍小的優先 3. rule-id小的優先 高級ACL 1. 帶VPN實例規則優先 2. 制指定了IP協議承載的協議類型規則優先 3. 源IP地址范圍小的優先 4. 目的IP地址范圍小的優先 5. 四層端口號范圍小的規則優先 6. rule-id小的優先
-
補充:ICMP協議
互聯網控制報文協議,使網絡層的一個重要協議,協議號為1,用於在網絡設備間傳遞各種差錯和控制信息。
ICMP Echo Request和ICMP Echo Reply分別用來查詢和響應某些信息,進行差錯校驗。
當網絡設備無法訪問目標時,會自動發送ICMP目的不可達報文到發送端設備。
消息和編碼:
詳細:
運用實例:
-
ping :
主要運用type8請求消息發起檢測,type0回復消息來檢測網絡連通性。
-
tracert:
-
先向目的端發送一個UDP報文,TTL值為1,端口號為一個幾乎任何一個應用程序都不會用到的端口號。
-
第一跳收到后判斷自己是不是目的地址,將TTL值減1后,為0,丟棄報文並向源發送一個ICMP超時報文(報文中含有第一跳地址)。源端收到后,再向目的端發送一個UDP報文,TTL值+1。
-
重復上述過程直至目的端收到源端發送的報文,判斷出目的地址為本機IP地址,則處理此報文,按照端口號尋找占用此端口號的上層協議,但因為沒有應用程序使用此端口號,則向源端回復一個ICMP端口不可達報文。
-
源端收到后判斷出UDP報文已經到達目的端,則停止tracert,從而得到源端到目的端所經過的路徑。
-
路由重定向的條件
-
數據包的源IP地址和該報走的下一跳IP地址屬於同一個網段。
-
數據包的入接口和路由指定后的出接口是同一個接口。
系統開啟重定向功能。
路由器基本上會直接忽略ICMP重定向報文,不同的系統對此也有不同的處理方案,像windows會添加一項主機路由,而某些系統也會直接忽略。
ICMP重定向使得客戶端的管理工作減少,路由功能降低,但會使路由器的負擔增加。像一些要處理數十個子網數千台主機業務的服務器,如果要支持重定向,那么服務器將會維護一個非常龐大的路由表,會及其浪費服務器的性能。而且,ICMP重定向也存在着安全隱患。