1. 程式人生 > >《在主備線路場景下—Track結合SLA的使用實踐》—那些你應該知道的知識(八)

《在主備線路場景下—Track結合SLA的使用實踐》—那些你應該知道的知識(八)

寫在前面:

在之前的一篇文章中,我們已經講過Eigrp是如何計算重分佈路由的metric值的過程。在實際生產環境中,我們常常會針對重要的外聯單位,部署兩條運營商線路以保障業務的連續性。由於對端外聯單位的特殊情況,常常不允許我們配置動態路由協議,以實現線路的自動切換,我們可能只能通過配置靜態路由實現與對方網路的路由可達。在這樣的情況下,我們往往需要使用靜態路由結合Track,在通過track結合SLA,以實現線路的自動切換。

下面我們來看具體的例子。


實驗環境:

VPC:10.1.2.2

在7206VXR上面起環回口 loopback 100:10.1.1.1

7206VXR1、7206VXR2、7206VXR3、7206VXR4配置EIGRP動態路由協議。

在7206VXR1上,重分佈直連路由。

在7206VXR3和7206VXR4上,將10.1.1.0的路由指向7206VXR,並重分佈靜態路由。

通過重分佈靜態路由Metric的設定,實現在7206VXR1上看,到達10.1.1.0的路由,優先走R4,其次走R2。

在VXR1上看,路由如下圖:

也就是主線路在7206VXR4,備線路在7206VXR3。

經驗證,VPC可以ping同VXR上的環回口loopback 100.


初步使用:

首先講一下上述環境中靜態路由結合Track和SLA的初步使用方法

實現思路:在主線路的裝置上,靜態路由上配置Track,實現當Track Down的時候,靜態路由失效,從而去往10.1.1.0的路由,不會在VXR4上重分佈成功,使得在VXR1上看到去往10.1.1.0的路由指向R2,使得路由走備線。同樣,最好在VXR上,針對10.1.2.0的也配置Track,實現資料包的來回路徑一致。如果資料包來回路徑不一致,可能導致穿越防火牆時無法正常轉發的情況存在。

下面開始進行配置:

ip route 10.1.1.0 255.255.255.0 172.16.1.2 track 10

track 10 ip sla 10 reachability

ip sla 10

icmp-echo 172.16.1.2

ip sla schedule 10 life forever start-time now

!

我們可以檢視當前Track的狀態

我們在VXR上,也進行相似的配置,如下:

ip route 10.1.1.0 255.255.255.0 172.16.1.2 track 10

track 10 ip sla 10 reachability

ip sla 10

icmp-echo 172.16.1.2

ip sla schedule 10 life forever start-time now

!

這裡,我們配置兩條靜態路由,通過配置不同的管理距離,實現去往10.1.2.0的路由主走主線路,當主線路失效時,走備線路。

首先,我們在VPC上ping測試,在R4上抓包確認去包與回包,都走主線路。

可以看到,去包與回包路由,都走的主線路。

下面,我們在VXR上,將主線路介面down掉,測試是否能夠主備線路切換成功。

(這裡由於是模擬器環境,對端介面down,本段介面並不會down,這於通過運營商mstp線路連線兩端的現象剛好一致)

在等待了一段時間後,重新ping通,線路切換成功。


優化使用:

然而,這裡我們看到,在丟了26個包後,才ping通。這個切換速度,在生產環境中顯然是不可忍受的

檢視抓包情況

在71秒後,去往VPC去往10.1.1.1的ping包依然從VXR4的介面上發出,但由於對端介面down了(這裡由於模擬器的原因,本端介面沒有down)。對端根本不會收到該ping包,自然也不會迴應。

直到122秒後,由於線路切換完成,在VXR4上抓包再看不到VPC的ping包,從該路由器發出。

這說明,業務大約中斷了51秒,這顯然是生產環境中不可接受的。那麼是什麼導致了線路切換花費了這麼長的時間呢。

通過仔細檢視抓包可以看到,在第55秒,VXR4剛傳送了SLA的探測包,得到了對端的響應。

之後,直到115秒,VXR4才發出第二個SLA探測包。

也就是說,直到這時,VXR4才知道,對端不可達,將Track的狀態置為Down.

之後,在VXR4上的靜態路由才會失效,經過約7秒時間,去往10.1.1.1的ping包,不再從VXR4發出。

這個時間為路由收斂的時間,是由於在VXR1中並沒有可行後繼,我們在VXR3上,設定了靜態路由管理距離為200,這大於Eigrp外部路由170,靜態路由並沒有被提交路由表。也就是說此時,在VXR3上靜態路由根本沒有被重分佈進來。所以當VXR4告知,本地靜態路由失效,重分佈失效時。要等到VXR3收到這一訊息,路由表中Eigrp重分佈路由失效,靜態路由生效時,VXR3上靜態路由才重分佈成功。之後再將此路有訊息進行更新。所以這一過程,同樣消耗了較長的時間。

通過上述的分析,我們可以看到這是由於VXR4上SLA的探測包傳送的間隔為60秒,這導致當線路發生中斷時,VXR4上最長可能需要60秒,等到下一次探測包發出時,才知道對端不可達。

這裡我們可以通過優化SLA傳送探測包的間隔時間,加快收斂速度。

加快收斂速度:

配製方法如下,在VXR4上

ip sla 10

icmp-echo 172.16.1.2

frequency 10

同樣,在VXR上,也需要進行相似的配置,否則仍然會導致切換時間較長。在這裡不再重複了

配置之後,我們進行切換測試

我們可以看到,切換速度明顯加快了。

通過抓包我們也可以看到,此時SLA探測的時間為10秒

這裡,我們知道,通過修改sla的探測間隔時間,可以有效提高線路切換的速度,進而提高業務連續性。


特殊情況的處理:

在一些特殊情況下,可能出現線路質量不穩定的情況。具體表現為時通時不通,在這樣的情況下,可能導致線路的頻繁切換,嚴重影響業務。

面對這樣的情況,我們可以延遲Track Down和 UP的時間,減少線路質量較差頻繁的對業務連續性造成影響。

延遲Track Down可以用來避免,一旦檢測到主線路丟包,就立即切換的情況發生。因為一次sla icmp檢測只ping一個包,這存在一定的偶然性

配製方法如下:

ip sla 10

icmp-echo 172.16.1.2

frequency 10

延遲Track UP可以用來避免,主線路其實還未恢復至穩定,就導致回切,影響業務的情況。

配製方法如下:

!

track 10 ip sla 10 reachability

delay up 30

!

經實際驗證,該配置會在SLA檢測後,延遲對Track狀態的改變。以減緩線路質量抖動,造成線路頻繁切換,而對業務造成影響。


其他

檢視Track與SLA狀態的方法

show track

show ip sla summary

show ip sla history

其中需要注意的是,要想檢視SLA歷史資訊,需要在配置SLA時,開啟記錄歷史資訊和設定過濾器,設定方法如下:

R4(config)#ip sla 10

R4(config-ip-sla-echo)#history lives-kept 2

R4(config-ip-sla-echo)#history filter all

這樣便可以看到SLA的歷史資訊了

其中,CompT代表測試包來回所花費的時間,Sense代表返回碼,1為正常,4為故障。

我們可以通過檢視歷史資訊的方式,檢視線路故障時的具體情況。