花了一晚上時間研究某些人聲稱的"可以利用Cisco SLA可以監測非直連網絡down掉,從而刪除本地靜態/默認路由"說法,我個人認為:不可能。
某些人的初衷應該是想避免路由器轉發無效數據包,因為非直連網絡斷掉,本地路由器依舊會將數據包按原路由進行轉發,因為直連路由沒有down,但是經過我的實驗,沒有可能實現:
1、SLA的ICMP-echo包同樣也是要按照本地路由進行轉發的,如果本地路由被刪除,那么SLA永遠無法成功到達遠程目標,track永遠無法滿足條件,路由也就無法恢復
2、如果目標不可達,track條件不滿足,這條帶track的靜態/默認路由就會被刪除
3、原本的那條默認/靜態路由依舊存在于路由表中,數據包依舊會按照這條路由進行轉發,沒有起到阻止路由器轉發無效數據包的作用
4、即使有冗余線路,SLA依舊無法達到預期作用,有冗余線路通常為默認路由。
如果SLA探測的目標為冗余線路均可到達的地址,那么會產生震蕩,track會不停地從down->up->down,理由很好理解,見1;
如果SLA探測的目標為任一線路可到達,則track永遠無法還原,理由依舊見1
總結:使用SLA探測非直連網絡的down和up不可行,探測直連網絡沒必要,總之,SLA用在這方面非常雞肋,還是考慮SLA的其他用途吧。