2.2【基本路由原理】三層轉發原理4


三層轉發原理

1.二層設備查的是MAC地址表,三層設備查的是路由表;
如果在路由表里面有多條路由,怎么轉發?
最長匹配原則;通過最長匹配可以找到下一跳,如果下一跳並不是直連網段,還需要根據下一跳查直連網段,直到找到直連網段,這種方法叫做迭代或者遞歸。
 
RIB->控制層面(路由條目的收斂和維護)FIB->轉發;FIB表是有RIB表生成的。
 
設備分為盒式和框式的
 
 盒式設備:控制層面和轉發層面在一起的,統稱為集中式設備;
框式設備:MPU-主控板 ,用於控制層面的處理 ;
  LPU-接口板用於轉發;一個IP包來了以后,可以直接查接收板卡的FIB表項,通過FIB表直接轉發,減輕 控制層面的壓力
 
2.FIB表
FIB表里面,掩碼長度從大到小對IP包進行排序;減輕查表的壓力和速度;FIB表是關聯鄰接表的
(show adjac ency),通過查一張表實現IP包的快速轉發。
所以,在FIB表里面,有目的MAC,源MAC,以太類型。
 
*******************************************************************************
AD管理距離
直連網段
 
EIGRP有3個AD值; 協議優先級
在什么情況下需要比較AD值?
如果同一條路由通過多種路由協議學習,需要比較AD值選出最優的一條
是有RIB來選的決定誰最優;
 OSPF-110; EIGRP-90;
RIB表項會選取AD值小的路由條目;
 
*****************************************************************************
Metric值,度量值-距離產生的時間,時間最短的一個。
什么情況下才需要比較度量值?
如果同一條路由通過同一種路由協議的不同鄰居學到,需要比較metric值,優選metric值
 [AD/ME]
例子:都是通過EIGRP學到的,比較metric是由路由協議來選的,路由器A通過同一種路由協議,不同的鄰居,收到同一條路由條目,A需要算,哪個鄰居到達目標哪個最短最優。B到達,100,C到達,1000,B勝出;
 
metric是通過綜合帶寬來算的;帶寬越大,cost值越小;
 
IP包轉發只看路由表做最長匹配;和AD/METRIC值沒有任何關系
 
作業:【綜合實驗】
PC1想訪問PC4的報文轉發過程?
PC1/PC2/PC3/PC4能收到哪些報文?
物理層設備
數據鏈路層設備
網絡層設備
 
1.PC1->PC4
第一個包:ARP包:PC1發送的ARP請求,  請求路由器0接口的MAC地址。
PC1/PC4不在同一網段(路由器每一個接口處於不同的廣播域,廣播是不能跨網段的,在路由器接口終止;每一個接口都是不同的網段),之間是不可能二層可達的,要通過三層轉發;
(看是否在同一網段:做一個與運算,用自己的接口掩碼和目標IP地址做一個與運算);
通過與運算,網絡位與自己一樣,處於同一網段; 網絡位與自己不一樣,處於不同的網段;
如果在同一網段,是可以直接二層轉發互通的;如果在不同網段就需要查路由表,看有沒有到達目標網段的路由;
PC1網關的地址——路由器0口的地址;通過查表可以得到一跳默認路由;可以匹配默認路由;
再看,默認路由的下一跳是路由器0的IP地址;
所以,把包給網關,看有沒有到達網關的MAC。
 
第二步:HUB泛洪
廣播報文,HUB是物理層設備,看不到數據鏈路層的MAC地址的,HUB收到電信號以后,會泛洪處理,從2、3口發出去,PC2是可以收到ARP請求的
 
第三步:交換機泛洪
信號被交換機收到,交換機收到會根據目的MAC查MAC地址表;由於現在交換機的MAC地址表是空的,交換機會做一個數據幀的泛洪;泛洪會從2口和3口發出去, 同時將源MAC地址綁定到1口上面;PC3會收到ARP請求。
 
第四步:路由器0口收到交換機3口的ARP請求
由於數據幀的MAC地址是個廣播MAC,通過二層是無法分析是給誰的?需要拆了2層看上層協議,發現是一個ARP協議,交給ARP進程處理,發現ARP報文里面的目標地址是自己接口的IP,說明ARP請求是發給自己的;路由器會回送一個ARP的應答,同時將發送源的IP地址和MAC地址綁定到ARP表里面;
 
ARP應答到SW,由於目的MAC已經綁定到1口上了,會做一個轉發而非泛洪;
 
在路由器里面會生成一個 ARP表項,去綁定發送源的IP地址和MAC地址;
 
第五步:路由器回送給PC1的單播ARP應答
源MAC:路由器接口的MAC
目的MAC:PC1的MAC
 
這個報文PC3收不到,回復報文因為HUB,PC2\PC1可以收到
 
第六步:經過這個過程PC1就獲取到了網關的MAC地址,下面就可以封裝一個ICMP報文,PC1發送給PC4的ICMP報文:
   二層:DMAC=網關(路由器0口) SMAC=PC1 E-TYPE=0x0800
   三層:源IP=PC1   目的IP=PC4   Protocol id=1 (ICMP)
    ICMP:type=8   code=0
 
HUB泛洪,PC2可以收到這個報文; 交換機會做轉發,因為SW收到路由器的單播應答時,源MAC已經綁定到3口了;是直接轉發而不是泛洪。
 
第七步:數據幀會被路由器收到,checksum檢查報文完整性;
               看數據幀目標 MAC地址是不是自己的MAC;
                拆了2層看3層,需要通過三層轉發,獲取到目標的IP地址,根據IP地址查本地的路由表項,找到路由表,找到出接口,找到下一跳;
                能找到一個直連的路由,找到一個出接口;轉發IP包,
                找到一個直連的路由, 重寫二層需要獲取到目的IP的MAC地址,路由器會查自己ARP表項,看ARP表項里面是否有目的IP的MAC?
                沒有的話,發送ARP請求,獲取MAC;
                 ??!!!
PC1發送一次ARP請求,路由器也會發送一次ARP請求
 
第八步:路由器向PC4發送ARP請求,這個請求報文只有PC4能收到
 
PC4會回復ARP應答,同時在本地ARP表項里面去綁定網關和MAC地址的對應關系
 
第九步PC4 向路由器發送的ARP應答
  生成ARP的綁定表,綁定PC4和MAC地址
 
因為路由器需要先查再轉發,這個ICMP報文會被路由器丟棄掉,PC1會繼續發ICMP請求報文
 
第十步:PC1向PC4的ICMP請求
路由器收到以后拆了2層看3層,通過目標IP地址進行查表轉發; 現在有了目標地址的MAC,可以重新寫二層發給PC4
 
PC2\PC4可以收到
 
第十一步:PC4回送一個ICMP應答
PC4->PC1
   二層:DMAC=網關(路由器1口) SMAC=PC4   E-TYPE=0x0800
   三層:源IP=PC4  目的IP=PC1  Protocol id=1 (ICMP)
    ICMP:type=0  code=0
這個報文會被路由器收到,路由器也是拆了2層看3層,從0口發出去,並且重寫二層
重寫二層:源MAC=路由器0口的MAC地址;
                         目標MAC=PC1的MAC地址;
 
PC2照樣可以收到
 
一共發了7個報文,PC2都可以收到;
 
經過路由器,要重寫二層
 
每一個報文的報文結構要寫出來,作業案例要求發給我
 
PC1/PC2/PC3/PC4能收到哪些報文?
 
 
 
 
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM