路由跳數探測實現智能路由切換

前2天有人問我個問題,具體描述你們看圖吧,我這裏借用一下。路由跳數探測實現智能路由切換
這個問題頗有意思,雖然經過人工調整路由優先級,或者策略路由能實現,可是若是能智能切換不是很能夠去顯擺一下。
這個問題猛的一看,用到了BGP,過高大上了,BGP有那麼多屬性,看看有沒有合適的能夠用上,結果我是沒找到,不知道是否是還有真大神能找到。
個人考慮是BGP這個路由協議,強大的地方在控制,而不是去感知路徑的變化它他不會本身學習到任何路由,它傳播的路由都是別人告訴它的。因此不能從這個角度入手。
那麼換個角度,OSPF能夠感知到路徑的變化,體現到COST值上,但這裏,從自家路由器出去,外面就不在你掌控了,別人是不會配合你的,也不行。
那最後的辦法就是在自家路由器上能感知到外部路徑的變化,目前專業的負載均衡設備是能夠作到的,探測多出口哪一個更優,可是讓負載均衡設備來跑BGP,實在是更不放心。
最後的辦法那就只能考慮讓路由器本身來作探測,那麼咱們經常使用的探測方法是NQA這類技術,發個PING過去,但這隻能探測到可達性,沒法判斷跳數,翻閱手冊,發如今參數裏能夠設置ttl值,這下問題解決了,咱們能夠把ttl設置爲較優路勁的值,這樣走次優路徑的探測包因爲ttl值不夠,是到不了目標的,也就會觸發探測失敗。
這裏實在要吐槽一下,我把這個方案告訴給那小夥,竟然收到的答覆是不可行,也沒任何說明,算了,既然如此我本身來動手吧。![]
拓撲很簡單,主要就是模擬出ttl值是否能影響探測結果進而影響路由。
路由跳數探測實現智能路由切換
最下面的交換機和路由器1 2三者之間跑OSPF,交換機上模擬業務地址1.1.1.1,剩下網上路由器之間都是靜態路由,模擬出沒法感知到實際路由跳數,在路由器4上業務地址3.3.3.3。
路由器1和2上都有去往3.3.3.3的靜態路由,並將靜態路由引入OSPF,那麼在交換機上就會看到兩條等價路由。
路由跳數探測實現智能路由切換
接下來在兩臺路由器1 2上都進行探測,ttl設置爲1,能夠看到,2到4就1跳,而1到4通過了3,是2跳。
下面在路由器1 2都進行探測。
路由跳數探測實現智能路由切換
能夠看到開始探測後,路由變爲了一條。咱們再到路由器1上看一下路由表。
路由跳數探測實現智能路由切換
靜態路由是配置裏存在的,可是探測失敗致使路由也失敗了。
以上的實驗,在實際中適合用於外部路由穩定的環境,若是是互聯網,ttl是沒法掌控的,極端狀況致使兩臺路由器都探測失敗就得不償失了。負載均衡

相關文章
相關標籤/搜索