當前網絡為某企業分支網絡,拓撲如圖1所示,通過電信專線分別接入總部及互聯網,出口路由器分別配置內網IP及運營商分配的外網接入IP,通過配置靜態路由結合默認路由實現訪問內網10.0.0.0/8網段流量通過內網專線轉發至總部側的匯聚交換機,其他流量通過外網專線鏈路接入運營商網絡,出口路由器同時作為DHCP服務器為內網用戶分配私網IP地址,并做NAT地址轉換。

圖1 改造前網絡拓撲
總部出于安全管控及實施安全審計策略的目的,要求各下屬單位不得通過網絡設備進行地址轉換接入內網,要嚴格按照總部給各單位分配的網段進行內網接入,網關要配置在總部匯聚交換機上。
按照常規做法,應在關閉分支出口路由器NAT功能后,由總部分配內網設備互聯地址,并回指分部內網業務網段路由到分支出口路由器互聯地址。但經了解,總部網絡接入機房為無人值守站點,且協調設備配置調整流程較為繁瑣無法在短期內通過該方式解決問題。備選方案是在主機上配置內、外網IP各一,內網IP不配置默認網關,外網IP配置默認網關,去掉內、外網專線接入路由器,直接將進線連接到交換機的兩個接口上,在主機上通過route命令配置一條到10/8網段的靜態路由,下一跳地址指向總部內網網關,外網通過默認路由接入互聯網。經分析該方式雖能滿足需求,但近百臺主機配置工作量較大,急需一種簡便易行的方法解決問題。
使用一臺3層交換機替換原有普通二層交換機,將原連接至出口路由器的內網專線調整至新交換機,其余連接保持不變,調整后的拓撲如圖2所示。
首先,在三層交換機建立 10、20、30 三 個 VLAN,其中vlan30與總部內網互聯、vlan20與出口路由器互聯、vlan10連接內部用戶PC。依據總部為該分支分配了一個10.43.108.0/24的C類網段,統計后內網終端數量不超過100臺,可將該網段劃分為兩個子網,其中10.43.108.128/25作為與內網匯聚交換機互聯用,interface-vlan30接 口 配置10.43.108.198/25地 址,10.43.108.0/25為用戶分配地 址,interface-vlan10分 配10.43.108.126/25地址,作為該網段用戶接入網關。Interfacevlan20配置 192.168.1.2/24做為與出口路由器的互聯地址。交換機配置一條靜態路由,其中10.0/8網段指向總部匯聚交換機地址10.43.108.193共內網接入使用,配置一條默認路由下一跳指向出口路由器互聯地址192.168.1.1,連接 Internet。
其次,考慮簡化用戶IP地址信息分配,仍沿用通過出口路由器DHCP自動分配的方式,但需要對出口路由器配置做一定調整,將原有DHCP 池地址改為10.43.108.0/25,網關為10.43.108.126(交換機interfacevlan10地址)。路由器配置到10.43.108.0/25網段的回程路由,下一跳指向192.168.1.2(交換機 interface-vlan20地址)從而保證內部網絡的連通性。由于交換機劃分了VLAN,用戶PC與路由器不在同一VLAN,用戶的DHCP請求廣播無法跨越VLAN傳遞至出口路由器,需要在交換機用戶接入vlan10中配置DHCP-relay(DHCP中繼),從而保證PC正常獲得由出口路由器分配的10.43.108.0/25網段的IP信息。

圖1 改造后網絡拓撲
dhcp relay server-group 10 ip 192.168.1.1 //配置dhcp服務器為出口路由器地址

通過上述配置后,可以通過下面命令查看交換機當前的DHCP中繼狀態(dhcp server與client的數據交互統計信息)


完成上述配置后PC機正常獲得地址,可正常訪問Internet,但無法訪問信息內網,在三層交換機上Ping內網匯聚交換機地址正常,說明網絡通道沒有問題,在交換機上debugging arp packet命令發現在主機Ping內網匯聚交換機地址時,收到對端匯聚交換機發送的ARP請求:
sender_ip_addr:10.43.108.193,target_eth_addr:0000-0000-0000, target_ip_addr:10.43.108.1 *Mar 18 15:46:44:265 2015 HX_S3700 ARP/7/arp_rcv: Receive an ARP Packet, operation:1,sender_eth_addr:000f-e200-0201
但沒有任何ARP相應信息。究其根本原因對于上游匯聚交換機10.43.108.0/24網段為直連路由,當有去往該網段的數據包時,會直接通過10.43.108.193接口發送ARP請求目的主機的MAC地址,后重新封包、發送至目標主機。由于接入交換機劃分子網和VLAN后,vlan20收到的ARP廣播不可能擴散至vlan10的主機中,因此上游交換機無法獲得主機MAC地址從而無法重新封裝數據包轉發至目標主機。通過在交換機vlan30中使用 [HX_S3700-Vlan-interface30]proxy-arp enable 命令開啟ARP代理功能后interface-vlan30接口代表vlan10中的PC響應上游75交換機發送的ARP請求,匯聚交換機將去往 128/25網段主機的MAC地址都會對應到interfacevlan 30 的接口MAC上,數據包發送過來的后,交換機根據直連路由表轉發數據包至vlan10中的主機從而保證了主機正常訪問內網。開啟代理ARP后,debugging arp packet輸出信息 Send an ARP Packet,operation: 2,sender_eth_addr:000f-e200-0101,sender_ip_addr : 10.43.108.1, target_eth_addr :000f-e200-0201,target_ip_addr:10.43.108.193,其中 108.1為PC自動換取的IP,MAC地址000f-e200-0101為交換機interface-vlan30的MAC地址,該信息說明交換機代表PC對上游匯聚交換機發送的ARP請求予以了相應。至此PC已能夠正常訪問總部內網及Internet,問題得到較好解決。