網絡案例:路由最長匹配原則解決跨網段路由衝突的問題

【問題描述】
1、備機房服務器爲172.17.21.100 網關爲172.17.21.254,去ping主機房服務器的物理IP 172.16.21.101不通,但是ping主機房物理網段的網關172.16.21.254就能通。

【排查思路】
1、檢查備機房到主機房的容器網段是否正常。
--測試結果:備機房物理網段到容器網段能夠ping通。

2、檢查tcp包在網絡上的路徑,在備機房物理機上分別traceroute到主機房的服務器網關172.17.21.254 物理IP 172.16.21.101。
--測試結果:數據包從網關到了物理服務器後,就無迴應了。至此,懷疑物理服務器的路由有問題。

3、檢查主備機房物理機的路由設置。
備機房的路由正常,所有到主機房的路由都經過網關。


主機房的路由異常,其中docker0 的路由段備機房的路由段衝突了。


4、檢查每臺容器上的路由,均無此docker0的路由,備機房能夠ping容器ip,差異點在於docker0這個路由。

至此,問題鎖定在主機房物理機的路由上有路由衝突的問題。

 

【解決方案】
1、在主機房每臺物理機上,添加一個細路由,明確到備機房的網段172.17.21.0 全部走網關172.16.21.254。命令如下:
route add -net 172.17.21.0 netmask 255.255.255.0 gw 172.17.21.254
2、測試ok後,主備機房物理機上分別添加到對方物理和容器網段的細路由。

 

【路由選擇原理】
1、如果同一個路由表中,有2條或多條路徑可以到達目標地址,那麼路由最長匹配規則,目的IP和路由表規則匹配位數最多的,選擇該路由。
更多原理介紹,參考:https://blog.csdn.net/hrl7752/article/details/77368278


【擴展知識】
docker0這個路由段是怎麼來的?
--爲了實現物理服務器和容器之間的網絡互通,這條規則是安裝docker的時候自動添加的,xx產品部署時剛好固定的docker0路由172.17.0.0段 和 備機房的IP段衝突了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章