趣談網絡協議(九):動態路由

大千世界的網絡,若是用靜態路由的話,無疑會帶來很大的不變,效率也很是低下算法

咱們NAT路由器的網關下一跳通常來講會有2個或以上,那咱們怎麼經過最短的距離到達目標網絡了。網絡

每個網關都會各自維護一個路由表,根據路由算法,標記到達各個達到網絡的最短路徑。spa

路由表規則記錄着三個信息:ip

    目標網絡(這個包去哪)路由

    出口設備(將包從哪一個口扔出去)io

    下一跳網關(下一個路由器的地址)table

如何配置路由

    咱們能夠經過ip route add 10.176.32.0/24 via 10.173.32.1/20 dev eth0class

    說明要去10.176.32.0/24這個目標網絡的,都要從網卡eth0端口出去,通過10.173.21.1/24(即下一跳)test

如何配置策略路由

    在真實的複雜網絡環境中,除了能夠根據目的ip地址配置路由外。還能夠根據多個參數來配置路由,同城爲策略路由效率

    能夠配置多個路由表,根據源IP地址、入口設備、TOS等選擇路由表,而後再路由表中查找路由,這樣可使得來自不通來源的包走不一樣的路由

    假如咱們設置

    ip rule add from 192.168.1.0/24 table 10

    ip rule add from 192.168.2.0/24 table 20

表示兩個ip分別走table十、20這兩個路由表

固然,同一個網絡能夠走多個路由表,根據權重weight來負載分流

ip route ad  defaule scope global nexthop via 100.100.1.1 weight 1 nexthop via 100.100.2.1 weight 2

下一跳有兩個地方,分別是100.100.1.1和100.100.2.1.權重比分別是1比2

動態路由算法

使用動態路由路由器,能夠根據路由協議算法生成動態路由表,隨網絡運行情況的變化而變化。

路由算法有兩種

1.距離矢量路由算法

    這一類的算法成爲距離矢量路由(distance vector routing)。它是基於bellman-ford算法的

當新增一個路由,便會通知全部鄰居,直到通知全部網絡的路由,每一個路由都有全局信息的。

例如路由A與路由B的距離1,而B與路由C的距離2,則路由C標記到路由A的距離3.

這裏有個問題就是當A掛了,B找不到A,可是C到A爲3,因而B設置到A爲5,而後C發現A設爲5拿本身就設爲6,直到超出閾值才認定A掛了。

還有另外一問題,當網絡規模龐大起來,那路由表得有多複雜.複雜就算了,若是有新加入的路由,吱吱吱..

2.鏈路狀態路由算法

    鏈路狀態路由(link state routing),基於Dijkstra算法。

    基本思路是:當一個路由啓動的時候,首先是發現鄰居.想鄰居say hello,鄰居都回復。而後計算和鄰居的距離,發送一個echo,要求立刻返回,除以二就是距離。而後將本身和鄰居之間的鏈路狀態包廣播出去,發送到整個網絡的每一個路由器。這樣每一個路由器都可以收到它和鄰居之間的關係的信息,於是,麼個路由器都能在本身本地構建一個完整的圖,而後針對這個圖使用dijkstra算法,找到亮點之間的最短路徑。

    不想距離矢量路由協議那樣,更新時發送整個路由表。鏈路狀態路由協議只廣播更新的或改變的網絡拓撲,這使得更新信息更小,節省了寬帶和CPU利用率。並且一旦一個路由器掛了,它的鄰居隊徽廣播這個消息,可使得壞消息,可使得壞消息迅速收斂

動態路由協議

    1.基於鏈路狀態路由算法的OSPF(Open 收入testOathFirst,開放式最短路徑優先)就是這樣一個基於鏈路狀態路由協議,普遍應用在數據中心的協議,因爲只要用在數據中心內部,用於路由決策,於是成爲內部網關協議(InteriorGatewayProtocol,簡稱IGP)

2.基於距離矢量路由算法的BGP 

    外網,國家之間的。咱們稱爲外網路由協議(Border Gateway Protocol,簡稱BGP)

相關文章
相關標籤/搜索