DHCP即動態主機配置協議,它是一個局域網的網絡協議,使用UDP協議工作。在日常網絡應用中最常見的用途是給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段,通常被應用在大型的局域網絡環境中。筆者單位的網絡點播用戶獲取IP地址方式就是采用的DHCP,從而來滿足用戶進行點播視頻的需求。但是近期出現個別點播用戶獲取不到IP地址的情況,經過對機房參照點播環境的測試,并按照網絡拓撲結構逐級排查,大量使用show命令,最終將故障定位在了點播用戶異常下線,DHCP租約時間未到,所以引起個別用戶點播獲取不到IP地址的故障。
近日,有互聯網用戶報修,反映不能正常使用點播業務,得知這一故障現象后,我們首先從兩方面著手處理。
首先需要登錄到BRAS上查看用戶在線數量,目的是宏觀上查看一下點播用戶的狀態,看一下報修用戶所屬BRAS的點播用戶是否正常。我們使用命令show subscriber statistics domain dhcp查看用戶的在線數量是否穩定,查看點播用戶數上線具體情況:
show subscriber statistics domain dhcp
session: total up down
IPv4 3616 3616 0
IPv6 0 0 0
通過多次使用show命令查看,均沒有發現點播用戶數量明顯下降的趨勢。接下來使用機房參照測試環境,這里所說的機房參照測試環境就是在機房模擬搭建用戶點播環境,這樣做的好處是易于發現問題,并容易定位故障節點。經過模擬環境測試,點播獲取IP地址也沒有問題。
通過在BRAS上查看點播用戶數量以及模擬環境的測試均沒有發現問題,這就說明在機房至點播DHCP服務器是正常的。
這里簡單介紹一下點播獲取IP地址的流程。BRAS上使用DHCP中繼,BRAS上游連接核心路由器,然后DHCP點播服務器通過匯聚交換機連接在核心路由器上,其中BRAS、核心路由器、匯聚交換機和DHCP服務器使用路由互通。
了解完DHCP工作的過程,接下來我們回到故障排查中,既然BRAS和DHCP服務器都沒有問題,接下來我們開始排查BRAS以下的設備。BRAS以下的設備主要是OLT,因為OLT是直連BRAS的,我們在OLT上主要的操作是查看下PON口以及ONU的配置。首先需要查看的是PON口的配置,使用命令show running-config interface epon-olt 3/4可以查看到PON口的配置命令即:
interface epon-olt 3/4
//進入端口
vlan-mapping ingress outer from 1000 to 1999 translate outer 1811 inner copy-from-outer
//定義點播業務VLAN的QINQ規則
vlan-mapping ingress outer from 2000 to 2999 translate outer 2811 inner copy-from-outer
switchport trunk allowed vlan 1811,2811
//定義PON口允許通過的VLAN
switchport trunk untagged vlan 1811,2811
//定義PON口下行方向剝離標簽的VLAN
switchport mode trunk
//定義端口模式為TRUNK
通過對PON口配置的查看沒有發現問題,緊接著使用命令show runningconfig epon-onu 3/4/11查看下ONU的配置,命令如下:
epon-onu uni ethernet 1/5/11/1
適用于IEC61850標準的以太網無源光網絡DBA算法//劉柱揆,曹敏,胡凡君,董濤//(10):150
//進入ONU的端口
vlan mode tagged
//定義ONU端口的模式
native vlan 2011
//定義ONU端口的VLAN
epon-onu uni ethernet 1/5/11/2
//進入ONU的端口
vlan mode tagged
//定義ONU端口的模式
native vlan 1011
//定義ONU端口的VLAN
通過對PON口和ONU配置查看均沒有發現問題,那么問題出在什么地方呢?整個流程梳理下來也沒有發現端倪。剛才我們在OLT上查看的是設備配置,接下來再核實一下MAC地址的學習情況,這就需要知道點播終端的MAC地址。根據運維人員提供的MAC地址,從ONU端口、PON口以及整臺OLT學習點播終端的MAC都沒有問題,那么BRAS上能學習到用戶點播終端的MAC地址嗎?
在BRAS上使用命令show subscriber user-mac ac4a.fe6b.1340,發現該MAC已經拿到IP地址,既然BRAS上顯示點播終端可以獲取到地址,那么為什么用戶側的點播終端獲取不到地址呢?這里就涉及到DHCP的IP地址沒有同步的問題,當DHCP客戶端獲取到一個IP地址后,并不代表可以永久使用這個地址,而是有一個使用期限,在DHCP中我們稱之為租約期限。一般情況下,DHCP服務器租約是8天,除了這個8天的時間外,在有效的租約期限內,還包含兩個時間點,第四天和第七天,也就是租約的一半和租約的7/8。當由于某些網絡原因導致IP地址沒能及時同步時,BRAS上ARP表項還在,我們可以先用ipconfig /release命令將當前的IP地址和其他配置信息釋放掉。此時客戶端會利用單播的方式向DHCP服務器發送 DHCP Release數據包,目的是告訴DHCP服務器客戶端要釋放這個IP。當然這個IP地址釋放的命令可以在電腦上執行,點播終端是無法執行的ipconfig/release命令,通知服務器端釋放地址。這樣就需要在BRAS上執行clear subscriber ipv4-address 10.107.2.251,清理 BRAS上的IP地址信息。然后點播終端就會正常獲取到IP地址,并且能正常觀看點播節目,這樣網絡故障就得以排除。
上面我們從得知故障后,首先在BRAS上和模擬測試環境進行了排查和測試,進一步排除了宏觀上的網絡故障的可能性。然后又仔細排查了OLT以及ONU的配置,最后使用show命令查看ARP表項的時候發現了故障原因,即BRAS上存在點播終端的MAC地址和IP地址的對應關系。此類故障通常由于點播終端異常關閉或者PON口數據異常刪除又重新添加配置等原因造成IP地址沒有釋放,解決問題的方法是在BRAS上強制該點播終端下線,重新進行一次DHCP報文的交互,就可以實現了故障的排除。