ACL全稱access control list,做爲一種路由選擇工具更多的是應用於路由過濾,根據ACL編號能夠分爲:網絡
指定2層接口組ide
[R1]acl number ? INTEGER<2000-2999> Basic access-list(add to current using rules) INTEGER<3000-3999> Advanced access-list(add to current using rules) INTEGER<4000-4999> Specify a L2 acl group
其中基礎ACL只能指定源地址,高級ACL能夠指定源、目的的IP地址,端口號與協議等五元組,不一樣於前綴列表,ACL能夠過濾路由及數據包,而前綴列表僅能過濾路由條目。 工具
如上圖所示,當啓動ospf後(步驟略),此時在R2上能看到已成功創建全毗鄰 學習
[R2]display ospf peer OSPF Process 1 with Router ID 2.2.2.2 Neighbors Area 0.0.0.0 interface 12.0.0.2(GigabitEthernet0/0/0)'s neighbors Router ID: 1.1.1.1 Address: 12.0.0.1 State: Full Mode:Nbr is Slave Priority: 1 DR: 12.0.0.2 BDR: 12.0.0.1 MTU: 0 Dead timer due in 40 sec Retrans timer interval: 5 Neighbor is up for 00:00:47 Authentication Sequence: [ 0 ] Neighbors Area 0.0.0.0 interface 23.0.0.1(GigabitEthernet0/0/1)'s neighbors Router ID: 3.3.3.3 Address: 23.0.0.2 State: Full Mode:Nbr is Master Priority: 1 DR: 23.0.0.2 BDR: 23.0.0.1 MTU: 0 Dead timer due in 36 sec Retrans timer interval: 5 Neighbor is up for 00:00:03 Authentication Sequence: [ 0 ]
但在R3上還能學習到通往1.1.1.0/24網段的路由
建立一個標準的ACL 3d
[R2]acl number 2000 [R2-acl-basic-2000]rule 0 deny source 1.1.1.0 0.0.0.255 [R2-acl-basic-2000]rule 5 permit
將ACL用到R2路由器ospf進程的入方向,爲何不能是R1的出方向,下文中會回答 code
[R2-ospf-1]filter-policy 2000 ? export Filtering outgoing routing updates import Filtering incoming routing updates
此時會發現一個奇怪的現象:R2上已通過濾掉了1.1.1.0/24網段
但在R3上還能學習到通往1.1.1.0/24網段的路由
儘管R3上有路由,可是此時R3卻沒法ping同R1的1.1.1.0/24網段,緣由就是R3的路由表上通往1.1.1.0/24網段的下一跳指向R2的23.0.0.1/24接口,但此時R2因爲ACL的關係,過濾掉了1.1.1.0/24網段的路由,因此沒法ping通,儘管R2上沒有1.1.1.0/24網段的路由條目,可是lsdb中卻有R1的1類lsa(1.1.1.1) blog
[R2]display ospf lsdb OSPF Process 1 with Router ID 2.2.2.2 Link State Database Area: 0.0.0.0 Type LinkState ID AdvRouter Age Len Sequence Metric Router 2.2.2.2 2.2.2.2 706 48 80000009 1 Router 1.1.1.1 1.1.1.1 757 60 8000000A 1 Router 3.3.3.3 3.3.3.3 716 36 80000004 1 Network 23.0.0.1 2.2.2.2 706 32 80000003 0 Network 12.0.0.1 1.1.1.1 760 32 80000003 0
其中就包含了1.1.1.0/24網段的信息
因此關於ACL過濾路由的本質就是:接口
本實驗在配置時,宣告ospf接口用的是反掩碼,宣告ACL時使用的是通配符,IP地址使用的是掩碼,他們之間區別以下: 進程