路由器原理

路由器原理

路由器的網路層的設備,負責IP數據包的路由選擇和轉發。

路由器原理與套用

一、路由的基本概念

路由器的網路層的設備,負責IP數據包的路由選擇和轉發。
1、路由類型
路由的類型有:直連路由靜態路由、默認路由和動態路由。
直連路由是與路由器直接相聯網路的路由,路由器有對直連網路有轉發能力。
靜態路由是管理員人為設定的路由,網路開支小,可以有效的改善網路狀況。
默認路由是靜態路由的一個特例,將路由表不能匹配的數據包送默認路由。一般在最後。
動態路由是路由協定自動建立和管理的路由,常見動態路由協定有:
RIP(Routing Information Protocol) 、
IGRP(Interior Gateway Routing Protocol)、
EIGRP(Enhance Interior Gateway Routing Protocol)、
OSPF(Open Shortest Path First)、
BGP(Backbone Getway Protocol)
上述路由協定稱為routing protocol,而IP、IPX稱為可路由的協定routed protocol。
也有一些協定是不可路由的,如NetBEUI協定
2、路由算法
路由算法常見的有三種類型:
距離矢量D-V(Distance-Vector) 算法,如:RIP、IGRP、BGP;
鏈路狀態L-S(Link State)算法,如:OSPF、IS-IS;
混合算法,如:Cisco的EIGRP。
3、路由交換範圍
路由器通過交換信息建立路由表,當網路結構變化時,路由表能自動維護。
路由表跟隨網路結構變化過程稱為收儉。為了減少收儉過程引起的網路動盪,要考濾
路由交換範圍。
RIP協定通過network命令指定,例如:設定10.0.0.0網路的接口參與路由信息交換
router(config-router)network 10.0.0.0
ospf協定通過network命令指定例如:設定10.65.1.1 接口參與路由交換
router(config-router)network 10.65.1.1 0.0.0.0 area 0
area是網路管理員在自治系統(國際機構分配)AS(Autonomous system)內部劃分的區域。
0.0.0.0是匹配碼,0表示要求匹配,1表示不關心
4、路由表
路由表(Routing Table)是路由器中路由項的集合,是路由器進行路徑選擇的依據,
每條路由項包括:目的網路和下一跳,還有優先權,花費等。
路由優先匹配原則:
(1)直接路由:直連的網路優先權最高。
(2)靜態路由:優先權可設,一般高於動態路由。
(3)動態路由:相同花費時,長掩碼的子網優先。
(4)默認路由:最後有一條默認路由,否則數據包丟棄。

二、RIP路由協定

1、RIP協定的認識
RIP(Routing Information Protocol)協定是採用D-V(Distance-Vector)算法的距離矢量
協定;
根據跳數(Hop Count)來決定最佳路徑。最大跳數為16,限制了網路的範圍。
單獨以跳數作為距離或花費,在有些情況下是不合理的,因為跳數少不一定是最佳路徑;
實際上頻寬和可靠性也是重要的因素。有時需要管理員修改花費值。
RIP有兩個版本,RIP-1 和RIP-2。
RIP-1:採用廣播方式傳送報文。不支持子網路由。
RIP-2:支持多播方式、子網路由和路由的聚合。
2、路由表的維護
通過UDP協定每隔30秒傳送路由交換信息,從而確定鄰居的存在。
若180秒還沒有收到某相鄰結點路由信息,標記為此路不可達。
若再120秒後還沒有收到路由信息,則刪除該條路由。
當網路結構變化時,要更新路由表,這個過程稱為收斂(Convergence)。
RIP標記一條路由不可達要經過3分鐘,收斂過程較慢。
路由表是在記憶體當中的,路由器上電時初始化路由表,對每個直接網路生成一條路由。
同時複製相鄰路由器的路由表,複製過程中跳數加1,且下一跳指向該路由器。
若去往某網路的下一跳是RouteA,若RouteA去該網路的路由沒有了,則刪除這一路由。
跳數是到達目的網路所經過的路由器數目,直接網路的跳數是0,且有最高的優先權。
3、路由環路
矢量路由的一個弱點就是可能產生路由環路,產生路由環路的原因有兩種,
一是靜態路由設定的不合理,再一是動態路由定時廣播產生的誤會。
先看靜態路由設定不合理的情況:
設兩個路由器RouterA和RouterB,其路由表中各有一條去往相同目的網路的靜態路由,
但下一跳彼此指向對方,形成環路。
再看動態路由造成的情況:
假設某路由器RouterA通過RouterB至網路neta,
但RouteB到neta不可達了,且RouterB的廣播路由比RouterA先來到,
RouterB去neta不可達,但RouterA中有去往neta路由,且下一跳是RouterB,
這時RouteB就會從RouterA那裡學習該路由,將去往neta的指向RouterA,跳數加1。
去neta的路由原本是RouterB傳給RouterA的,現RouterB卻從RouterA學習該路由,
顯然是不對的,但這一現象還會繼續,
RouterA去neta網路的下一路是RouterB,當RouterB的跳數加1的時候,RouterA將再加1。
周而復反形成環路,直至路由達到最大值16。
4、解決路由環路的辦法
(1) 規定最大跳數
RIP規定了最大跳數為16,跳數等於16時視為不可達,從而阻止環跳進行。
(2) 水平分割
水平分割是過濾掉傳送給原發者的路由信息。具體路由信息單向傳送。
(3) 毒性逆轉
水平分割的改進,收到原是自己發出的路由信息時,將這條信息跳數置成16,即毒化。
(4) 觸發方式
一旦發現網路變化,不等呼叫,立即傳送更新信息,迅速通知相鄰路由器,防止誤傳。
(5) 抑制時間
在收到路由變化信息後,啟動抑制時間,此時間內變化項被凍結,防止被錯誤地覆蓋。

三、OSPF路由協定

1、OSPF的特點
OSPF(Open Shortest Path First)開放式最短路徑優先協定,
使用L-S(Link State)算法的鏈路狀態路由協定,路由算法複雜,適合大型網路,
網路拓撲結構變化時,採用觸發方式,組播更新,收斂快,要求更高的記憶體和CPU資源。
LSA(Link State Advertisement)鏈路狀態通告是以本路由器為根的最小路徑優先樹。
LSDB(Link State DataBase)鏈路狀態資料庫,這是各個路由器的LSA的集合。
每個路由器的LSA是不同的,但他們的集合LSDB是相同的。
D-V算法只考慮下一跳,沒有全局的概念,交給下一跳就完成任務,所以容易產生環路。
L-S算法每個路由器可以根據網路整體結構決定路徑,所以不會產生環。
2、指定路由器與路由器標識
指定路由器DR(Dezignated Router)是ospf路由交換的中心,數據通過DR進行交換。
在路由器群組中優先權(Router Priority)值最高的為DR,次高的為備份指定路由器BDR。
管理員可以通過設定優先權指定DB和BDR。優先權相同時,比較 router id。
如果沒有設定Router id,則以迴環接口loopback ip值高的為DR,
如果loopback ip 沒有設定,取接口的IP位址中最高的為DR。
3、建立路由表
(1)Hello報文
Hello報文用於發現新鄰居問候老鄰居,選舉指定路由器DR和BDR。
(2)DD報文(Database Description Packet)
DD報文用LSA頭head信息表示LSA的變化情況,將其傳送給DR,DR再發給其它路由器。
(3)LSR報文(Link State Request Packet)
LSR是請求更新包,當LSDB需要更新時,將其傳送給DR,點對點連線時直接同步LSDB。
(4)LSU報文(Link State Update Packet)
DR用多播Multicast地址224.0.0.6收,224.0.0.5發,同步整個區域的LSDB。
(5)確認後計算路由:
LSDB同步後,計算cost花費,考慮跳數、頻寬、可靠性等綜合因素求解最佳路徑。
4、單區域OSPF配置
單區域OSPF配置是指運行OSPF協定的路由器在同一個區域area n,
對於只有一個區域的網路,區域號是任意的,一般設定為0。
單區域OSPF有三種連線情況:
點對點的連線(Point to point)、
廣播方式的連線(Broadcast Multi Access Network)、
非廣播方式多點連線(Non Multi Access Network)。
點對點連線結構最簡單,可靠性高,工作穩定;
乙太網連線是典型的廣播方式的連線;
中繼連線是屬於的非廣播方式多點連線類型。
5、多區域OSPF的設定
多區域中要求有一個是骨幹區域area 0,邊界路由器跨接兩個區域。
多區域的區域內部按單區域設定,多區域間通過邊界路由器的連線。
stub是末節區域,末節區域不接收ospf以外的路由信息,
如果路由器想去往區域以外網路,要使用默認路由。
只有多區域中才存在末節區域。末節區域要設定在邊界路由器上。
作為企業可以將分支區域設定為末節區域,
分支區域不需要知道總部網路的細節,卻能夠通過預設路由到達那裡。

四、訪問控制列表

1、訪問控制列表類型與作用
訪問控制列表是對通過路由器的數據包進行過濾。
過濾是根據IP數據包的5個要素:
源IP位址、目的IP位址、協定號、源連線埠、目的進行的。
訪問控制列表有兩類,標準訪問控制例表和擴展的訪問控制列表。
標準訪問列表:
標準訪問列表的列表號為1~99,只對源IP位址進行訪問控制。
擴展訪問列表:
擴展訪問列表的列表號為100~199,可以對源和目的地址、協定、連線埠號進行訪問控制。
2、訪問控制列表的結構
分三步:
定義一個ACL:access-list <number> <permit|deny> <sourceIP wild|any>
進入指定接口:interface <interface>
綁定指定ACL:ip access-group <number> [in|out]
3、訪問控制列表匹配原則
訪問控制列表默認的是deny any。
一般是逐行匹配,也可以設定深度匹配。
所以寫訪問控制列表一般是從小的範圍向大的範圍,成為梯形結構。
一般在訪問控制表的最後一行要寫permit any。
4、命名方式的訪問控制列表
命名方式是用名稱代替列表號,便於記憶,擴展了條目數量,可以是基本型或擴展型。
命令方式ACL語法有些變化,支持刪除一個列表中的某個語句。
命名語法格式:
router(config)#ip access-list {standard|extended} name
router(config std nacl)#{deny|permit}]<S_ip><S_Wild>
router(config ext nacl)#
{deny|permit}[protocol]<S_ip><S_Wild><D_ip><D_Wild>[op]
第一行是定義命名方式訪問控制列表類型:標準或擴展。
第二行是標準命名方式的訪問控制列表的語法格式。
第三行是擴展命令方式的訪問控制列表的語法格式。

五、地址轉換NAT

1、NAT的認識
NAT(Network Address Translate)是地址轉換操作。
NAT可以將局網中的私有IP轉換成公有IP,解決了內部網路訪問internet的問題。
NAT可以做負載均衡,將內部多個伺服器對外映射成一台伺服器。
定義:
Inside local address: 內部網的私有IP。
Inside global address: 內部網的公有IP。
Outside global address: 網際網路中的公有IP。
Outside local address: 網際網路中的公有IP對應的私有IP。
NAT可分為原地址變換SNAT和目的地址變換DNAT
按工作方式劃分,可分為靜態NAT和動態NAT
SNAT命令中使用source參數,DNAT命令中使用destination參數。
(對已連線的返回包可自動對應)
2、靜態NAT
靜態NAT是在指定接口上,對數據包的原IP或目的IP進行一對一的轉換。
常用於將某個私有IP固定的映射成為一個公有IP。
語法:
Router(config)#ip nat inside source static <ipa> <ipb>
在指定接口inside中對數據包的原地址進行變換,一般ipa是私網IP,ipb是公網IP。
3、動態NAT
動態NAT一般用於將區域網路中的多個私有IP從公有IP位址池中提取公有IP對外訪問。
設內部區域網路是:10.66.0.0,公網IP位址池為:60.1.1.1~60.1.1.8
當內部網路要訪問internet時,從公網IP位址池中提取公網IP對外訪問。
語法:
定義地址池p1:
Router(config)#ip nat pool p1 60.1.1.1 60.1.1.8 netmask 255.255.255.0
定義訪問控制列表1:
Router(config)#access-list 1 permit 10.66.0.0 0.0.255.255
將訪問控制列表1的源地址,動態的從公網IP位址池p1的提取公網IP:
Router(config)#ip nat inside source list 1 pool p1
4、PAT
PAT(Port Address Translate)是連線埠地址轉換,將私有IP轉換到公網IP的不同連線埠上。
PAT是原將動態nat地址池pool改為用接口,並使用參數overload。屬於動態NAT。
語法:
Router(config)#access-list 2 permit 10.66.0.0 0.0.255.255
Router(config)#ip nat inside source list 2 interface s0/0 overload
5、基於NAT的負載均衡
NAT可以實現負載均衡。
一般的NAT都是將內部私有IP轉換為公網IP,連線方向從內部向外。
而對於負載均衡是將一個公網IP翻譯成多個內部私有IP,連線訪問從外向內。
例如:
內部的www服務負載過重,可將多台同樣的伺服器,但對外映射成一個IP位址,
內部的多台伺服器成為捆綁在一起構成虛擬伺服器,外部訪問這個虛擬伺服器時,
路由器輪流指向各台伺服器,從而達到負載均衡。
語法:
定義地址池p2,使用rotary參數輪循。
ra(config)#ip nat pool p2 10.1.1.2 10.1.1.4 netmask 255.255.255.0 type rotary
ra(config)#access-list 1 permit 60.1.1.1
ra(config)#ip nat inside destination list 1 pool p2
在指定接口inside中建立list 2與pool p2的對應關係。Destination表示轉換目的地址。
6、基於服務的NAT
基於服務的NAT配置,細化了NAT的套用,轉換可以具體到協定和連線埠,即指定的服務上。
例如:
對區域網路的虛擬伺服器(使用一個公網IP)的訪問:
當訪問TCP 20連線埠時就將它轉到內部ftp服務上。
當訪問TCP 21連線埠時也將它轉到內部ftp服務上。
當訪問TCP 80連線埠時就將它轉換到內部的www伺服器上。
語法:
Router(config)#ip nat inside source static tcp 10.65.1.2 20 60.1.1.1 20
Router(config)#ip nat inside source static tcp 10.65.1.2 21 60.1.1.1 21
Router(config)#ip nat inside source static tcp 10.65.1.3 80 60.1.1.1 80

相關詞條

相關搜尋

熱門詞條

聯絡我們