靜態PAT
-NAT Server ,
主要是爲了實現外網用戶到內部網絡的訪問;
數據轉換原則:
外—>內:先查NAT表,再查路由表
轉換的是“目標IP地址”
將“公有地址”,轉換爲,“私有地址”
內—>外:先查路由表,再NAT表
轉換的是“源IP地址”
將“私有地址”,轉換爲,“公有地址”
OSPF:
-open shortest path first ,最短路徑優先(協議)
-在路由器之間運行,主要是爲了動態的互相學習路由條目
屬於動態路由協議的類型;
-公有的標準協議,任何廠商設備都支持
-OSPF的數據包是直接包含在IP頭部後面的,協議號爲 89
-OSPF的數據包的發送方式是組播,組播地址爲:224.0.0.5和224.0.0.6
[224.0.0.5,表示所有的OSPF路由器]
[224.0.0.6,表示的是OSPF的DR和BDR]
OSPF工作原理/流程:
1.建立鄰接表
2.同步數據庫
3.計算路由表
OSPF的報文類型:
1.hello,用於鄰接路由器的發現、建立、維護、拆除
*鄰居設備之間會週期性的發送 hello 報文,維護鄰居關係;
週期時間爲 10s ;[hello timer ,即 hello 計時器]
*如果鄰居設備在一定的時間內,沒有收到對方設備發送的hello報文,
此時,就認定鄰居設備出現了故障,從而刪除當前的鄰居關係;
所謂的”一定的時間”,是 40s ;[hold timer ,即保持計時器]
[該計時器也可以稱之爲 dead 計時器,即死亡計時器]
2.DD(database description) ,即數據庫描述報文
用於描述OSPF路由器的數據庫信息;互爲鄰居的兩個設備通過發送
和比較 DD 報文,從而區分鄰居設備之間的數據庫的不同。
[其實,OSPF數據庫中包含的是“鏈路狀態”。]
3.LSR(link state request),即鏈路狀態 請求報文
通過該報文,向對方的鄰居設備請求自己沒有的“鏈路狀態”信息;
4.LSU(link state update),即鏈路狀態 更新包文
通過該報文,向鄰居發送所請求的“鏈路狀態”信息;
5.LSAck(link state acknowledge),即鏈路狀態 確認報文
通過該報文,用於實現 LSR 和 LSU 這兩種類型的報文的可靠傳輸
OSPF鄰接表:
-包含的是“鄰接關係”的路由器 ;
-查看命令:
display ospf peer brief -> 查看 OSPF 的鄰接表
例如:查看 R1 上的 OSPF 鄰接表
<R1>display ospf peer brief
OSPF Process 10 with Router ID 1.1.1.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------
@OSPF Process 10 :表示 OSPF 協議的進程號是 10 ;
@Router ID : 表示的是 OSPF 路由器的名字,上述表示的是 1.1.1.1 ;
@Area Id :表示的是當前鄰接關係所屬於的 OSPF 區域 ;上述表示的是區域 0 ;
@Interface:表示的是當前 R1 與 對方建立鄰接關係時候,所使用的的接口,即 gi0/0/0
@Neighbor id:表示的是鄰居設備的名字(router-id)
@State:表示的是鄰接設備的狀態
1.init ,表示的是初始化狀態
2.two-way ,表示的是雙向通信狀態
3.exstart ,表示的是交換初始化狀態
4.exchange,表示的是交換狀態
5.loading ,表示的是加載狀態
6.full ,表示的是完全鄰接狀態 [完美狀態]
7.down ,表示鄰居掛掉了
注意:
鄰居表示兩個設備之間的數據庫信息不同步;
鄰接表示兩個設備之間的數據庫信息完全同步;[即數據庫相同的鄰居]
===================================================================
OSPF基本概念:
@進程號(process ID),用於區分同一個路由器上的不同的 OSPF 協議
取值範圍是 1 - 65535 ;如果不明確指定進程號
那麼使用的是默認的進程號 ---- 1 ;
@區域號:通常在配置的時候,是通過 10 進製表示;
同一個鏈路上的路由器接口,所屬於的區域,必須是相同的;
區域分爲骨幹區域和非骨幹區域
- 如果區域號爲0,則表示爲“骨幹區域”
- 如果區域號爲非0,則表示爲“非骨幹區域”
@router-id,表示的是 OSPF 協議爲每個路由器起的名字,
目的是爲了區分不同的路由器
格式:類似於IP地址,但是不是IP地址
確定方式,有兩種:
1.手動指定
[R1]ospf {進程號} router-id {x.x.x.x}
2.自動選舉
*首選選擇使用設備上IP地址大的那個迴環口的IP地址
*其次選擇使用設備上的IP地址大的那個物理接口的IP地址
[規則:手動指定的優先級,要高於自動選舉]
[特點:特別穩定,即一旦確定就不再更改了]
如果想讓OSPF路由器重新選擇 router-id
只能說重啓路由器或者說 重啓OSPF 協議;
例如:
手動指定 R1 的 ospf router-id 爲 1.1.1.1 ;
[R1]ospf 1 router-id 1.1.1.1 //手動指定 router-id
[R1]quit
<R1>reset ospf process // 重置/重啓OSPF進程
[Y/N]:y
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@DR:designated router ,指定路由器
BDR: backup designated router ,備份的指定路由器
當一個網段中,同時存在多個OSPF路由器的時候,
爲了簡化 OSPF 的鄰接關係,以及提高數據庫的同步效率,
所以,
我們在同網段的多個 OSPF 路由器之間,選擇一個最好的路由器,
該網段的其他路由器,都僅僅和這個“最好”的路由器,建立鄰接關係。
那麼,
這個所謂的“最好”的路由器,稱之爲 DR 。
如何選擇“最好”?
-首先,比較端口的 DR 優先級,越大越好,默認是1;
-其次,比較每個設備的 router-id ,越大越好;
防止當 DR 故障的時候,導致同網段的其他所有的OSPF路由器出現
不能互通的問題,所以我們建議在同一個網段中,選舉了DR之後,
再選舉一個 BDR 。
那些既不是DR,也不是BDR的設備,統稱之爲 DRother 。
[如果優先級手動設置爲0,那麼該設備永遠只能是DRother]
原則:
同網段中的所有的路由器,都只和 DR/BDR 建立鄰接關係。(Full)
DRother 設備之間的鄰居的狀態,不是 Full,是 two-way 狀態。
特點:
穩定,即一旦確定,就無法更改;
[即使後來的設備優先級或者router-id更高,都不能搶佔DR的身份]
除非,重啓路由器或者重啓OSPF進程;
相關配置命令:(修改接口的DR優先級,默認是1)
interface gi0/0/x
ospf dr-priority 0 // 將接口的DR優先級修改爲 0 ,永遠是DRother
接口的DR優先級的取值範圍是 0 -- 255
<R3>display ospf interface GigabitEthernet 0/0/1
OSPF Process 30 with Router ID 3.3.3.3
Interfaces
Interface: 192.168.23.3 (GigabitEthernet0/0/1)
Cost: 22 State: BDR Type: Broadcast MTU: 1500
Priority: 1
Designated Router: 192.168.23.2
Backup Designated Router: 192.168.23.3
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
@網絡類型:
-每個接口運行OSPF以後,都會有一個默認的網絡類型;
-常見的網絡類型有以下幾種:
@P2P,point to point ,點到點網絡類型;
當一個接口的網絡類型爲P2P,OSPF認爲該接口上只有2個路由器
該網絡類型的接口,不選 DR/BDR
@broadcast,廣播;
當一個接口的網絡類型爲broadcast,
OSPF認爲該接口上有很多個路由器
該網絡類型的接口,必須選 DR/BDR
@P2MP:點到多點網絡類型
不選 DR/BDR
@NBMA:non-broadcast multi-access,非廣播網絡
必須選 DR/BDR
查看和修改網絡接口的OSPF網絡類型的命令:
interface gi0/0/x
ospf network-type p2p // 將網絡類型修改爲 P2P
display ospf interface gi0/0/x --> 查看type 爲 p2p
此時的 state 已經不是DR或BDR了
[R1]display ospf interface GigabitEthernet 0/0/0
OSPF Process 10 with Router ID 1.1.1.1
Interface: 192.168.12.1 (GigabitEthernet0/0/0) --> 192.168.12.2
Cost: 1 State: P-2-P Type: P2P MTU: 1500
Timers: Hello 10 , Dead 40 , Poll 120 , Retransmit 5 , Transmit Delay 1
[R1]
注意:
以太網接口運行OSPF以後,默認的網絡類型是“廣播”;
同一段鏈路上的接口的 OSPF 網絡類型,必須是相同的;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ OSPF 路由開銷
-每個運行OSPF的接口,默認都有一個 cost,通常1;
接口的默認cost的,是通過下面的公式計算出來的:
COST = 100M/接口實際帶寬 [100M,通常稱之爲參考帶寬]
例如:gi0/0/0 的帶寬爲 1000M
那麼該接口運行OSPF以後,該接口的cost爲:
COST = 100M/1000M ,即 0.1,
但是,在網絡中是沒有辦法表示小數的,
所以,這種小於1的數值,全都取值爲 1.
-OSPF路由的cost的計算方法:
*一個路由條目在路由表中的 cost 值,是這麼計算出來的:
該路由沿傳遞方向,所有入接口的cost值的累加和;
查看和修改接口 cost 值的方法:
interface gi0/0/x
ospf cost *** --> 將接口的cost修改爲 *** ;最大取值爲65535
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果去往一個目標網段,有多個路由條目,如下:
網段 優先級 開銷 下一跳
1 192.168.1.0/24 60 1 192.168.11.2
2 192.168.1.0/24 10 3 192.168.22.2
3 192.168.1.0/24 10 2 192.168.33.2
請問:
去往IP地址 192.168.1.1時,應該選擇使用哪個路由條目進行轉發?
-應該選擇使用最好的路由條目。
*什麼是最好的路由條目啊?
#首先比較優先級,數值越小越好;
[優先級表示的是一個路由的穩定性,數值越小表示越穩定]
#優先級如果相同,則比較開銷值,也是越小越好;
[開銷表示的是去往一個目標網絡的距離,數值越小越好]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSPF基本配置:
R1:
ospf {進程號} router-id {x.x.x.x} //啓用OSPF並指定router-id
area {區域號} // 進行特定的OSPF區域
network {網段} {反掩碼} // 宣告某網段進入OSPF協議
@network :該命令後面跟的是一個網段,以及網段所對應的反掩碼;
後面的“網絡”,有兩種類型:
@我們想通過 OSPF 協議傳輸的那些網段 /路由 ;
@運行OSPF協議的路由器,他們之間的網段,也必須network
[反掩碼:就是將掩碼中的1和0顛倒]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSPF的驗證命令:
display ospf peer brief --> 查看 OSPF 鄰接表
display ospf interface gi0/0/x ---> 查看接口的 OSPF 信息;
包含優先級、cost、網絡類型
常見OSPF驗證命令:
display ospf peer brief -> 查看 OSPF 鄰接表
reset ospf process ->重置設備上的所有的 OSPF 進程;
reset ospf 11 process --> 重置設備上的特定進程號的 OSPF,即 OSPF 11
display ip interface brief --> 查看設備上的所有的IP接口地址簡要信息
display ip routing-table protocol ospf --> 查看 OSPF 路由表
interface gi0/0/x
ospf dr-priority * --> 修改接口上的DR優先級
ospf network-type p2p // 將網絡類型修改爲 P2P
ospf timer hello ** // 修改 OSPF 接口的hello計時器;[兩邊都必須相同]
ospf timer dead ** // 修改 OSPF 接口的dead計時器;[兩邊都必須相同]
display ospf interface gi0/0/x ->查看接口的OSPF相關信息
比如優先級、網絡類型、DR狀態、
開銷值、計時器、