一、網絡拓撲
辦公網為172網段,其核心交換機為85-1,由NE-1做NAT通過網通上internet;宿舍區為10網段,其核心交換機為85-2,由NE-2做NAT通過電信上internet。服務器放在S85-1下,為172網段的地址,供宿舍區10網段主機訪問。
二、應用需求及實現分析
應用需求:
由于網通和電信的出口均為百兆,而宿舍區用戶遠遠多于辦公區的用戶,要分流部分宿舍區的用戶通過網通的出口上internet。
實現分析:
此需求看起來很簡單,即通過策略路由,使部分用戶上網的下一跳到S85-1上,通過NE-1出去。但是仔細分析具體的實現,還是有很多要考慮的地方。
1.S8500上策略路由只能在入端口方向上做,這樣,要在特定網段的所有入端口應用策略路由。
2.應用策略路由的流由ACL來定義區分,此處ACL由關鍵字源IP來定義。
acl number 2000
rule 0 permit ip source 10.1.1.0 0.255.255.255
策略路由優先級最高,如果定義上面的ACL,當10網段訪問10網段時,將會先匹配策略路由,從而下一跳到S85-1上,在S85-1上匹配路由,再回到S85-2上面,從而到達目的主機,這樣來回就多了兩跳。
3.修改ACL為禁止源ip為10網段,目的ip也為10網段的流應用策略路由。
acl number 2000
rule 0 deny ip source 10.1.1.0 0.255.255.255 destination 10.0.0.0 0.255.255.255
rule 1 permit ip source 10.1.1.0 0.255.255.255
但是策略路由引用的ACL規則不允許為deny。
難道只能這樣,讓10網段訪問10網段的時候多走兩跳嗎?……當然不!
三、解決方法
S8500交換機的策略路由是由硬件來實現的,不然,對于S8500這種逐包轉發的交換機,其CPU不可能處理如此大的轉發量。由于策略路由和下發
的ACL一樣,由硬件處理,那就有匹配順序的問題。如果讓源IP為10網段,目的IP也為10網段數據先匹配其他的ACL轉發出去,而不匹配策略路由,那么就可以解決上面的問題。
配置如下:
編寫ACL 3000,允許源IP10網段訪問目的IP10網段
acl number 3000
rule 0 permit ip source 10.1.1.0 0.255.255.255 destination 10.0.0.0 0.255.255.255
編寫ACL2000,允許源IP10網段(做策略路由)
acl number 2000
rule 0 permit ip source 10.1.1.0 0.255.255.255
在端口下發規則
Interface GigabitEthernet0/1/4
packet-filter inbound ip-group 3000
traffic-redirect inbound ip-group 2000 next-hop 10.1.2.10
在端口下發規則時要注意順序,對于S8500交換機的ACL規則是先下發先匹配,所以此處必須先下發ACL3000,再運用策略路由。在端口G0/1/4上10.1.1.0網段的主機訪問10網段的主機時,就會先匹配ACL3000,而ACL3000的規則為permit,這樣就正常的查找路由表來轉發。而目的IP不是10網段時,就會匹配上策略路由,從而下一跳到S85-1上。