HCNA Routing&Switching之OSPF預設路由釋出

1874發表於2021-07-30

  前文我們瞭解了OSPF的度量值,以及基礎配置命令的總結,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15069632.html;今天我們來聊一聊在ospf裡動態釋出預設路由相關話題;

  首先我們來說說預設路由,什麼是預設路由?簡單講預設路由就是閘道器(個人理解),預設情況下路由器沒有配置預設路由,路由器只能根據自身路由表中的路由進行資料包轉發,匹配路由表中的路由就根據其路由進行轉發,不匹配路由表中的路由就丟棄對應資料包;我們也可以理解預設路由就是匹配除明細路由之外的所有路由(根據路由器轉發原則中掩碼最長匹配原則,預設路由的優先順序最低,只有沒有被明細路由匹配到的才會被預設路由所匹配);配置預設路由的方式通常有兩種,一種是手動靜態配置,一種是通過某種動態路由協議進行釋出;我們知道靜態手動配置路由有一個最大的缺點,它不能根據網路拓撲的變化而變化;而動態路由協議恰好彌補了靜態路由的缺點,它能夠根據網路的拓撲變化而動態的變化對應的路由;

  先來看一個實驗,如下圖拓撲,根據要求配置

  配置R1

HCNA Routing&Switching之OSPF預設路由釋出
sys
sys R1
int g0/0/0
ip add 10.0.0.1 24

ospf 1 router-id 1.1.1.1
area 0
net 10.0.0.0 0.0.0.255
int g0/0/0
ospf dr-pri 100
View Code

  配置R2

HCNA Routing&Switching之OSPF預設路由釋出
sys
sys R2
int g0/0/0
ip add 10.0.0.2 24

ospf 1 router-id 2.2.2.2
area 0
net 10.0.0.0 0.0.0.255
int g0/0/0
ospf dr-pri 50
View Code

  配置R3

HCNA Routing&Switching之OSPF預設路由釋出
sys
sys R3
int g0/0/0
ip add 10.0.0.3 24
int s4/0/0
ip add 36.0.0.3 24
ospf auth md5 1 cipher admin123.com
ospf 1 router-id 3.3.3.3
area 0
net 10.0.0.0 0.0.0.255
net 36.0.0.0 0.0.0.255
View Code

  配置R4

HCNA Routing&Switching之OSPF預設路由釋出
sys
sys R4
int g0/0/0
ip add 10.0.0.4 24

ospf 1 router-id 4.4.4.4
area 0
net 10.0.0.0 0.0.0.255
View Code

  配置R5

HCNA Routing&Switching之OSPF預設路由釋出
sys
sys R5
int s4/0/0
ip add 36.0.0.5 24
ospf auth md5 1 cipher admin123.com
int lo 1
ip add 5.5.5.5 32
int g0/0/0
ip add 56.0.0.5 8

ospf 1 router-id 5.5.5.5
area 0
net 36.0.0.0 0.0.0.255
net 5.5.5.5 0.0.0.0
View Code

  提示:R5是沒有宣告到達R6的56.0.0.0/8的網路哦;

  配置R6

HCNA Routing&Switching之OSPF預設路由釋出
sys
sys R6
int g0/0/0
ip add 56.0.0.6 8
View Code

  驗證:在R5上檢視是否和R3建立鄰居

  提示:從上面的鄰居資訊可以看到R5和R3建立了鄰居關係,說明我們配置的認證資訊沒有問題;這裡提醒一下,在ospf裡做認證有兩種方式,一種是基於介面做認證(就是把認證資訊配置在對應介面下,生效範圍是該介面下的ospf生效);另外一種是基於區域做認證(即在ospf區域模式下配置認證,生效範圍是整個區域);

  驗證:檢視R3的鄰居資訊,看看是否和R1,R2,R4建立起鄰居關係

  提示:可以看到R3和R1,R2和R5建立起鄰接關係,和R4建立起鄰居關係;

  驗證:在R3上檢視g0/0/0的介面資訊,看看對應的DR和BDR是否是R1和R2?

  提示:可以看到DR是R1的介面地址,BDR是R2的介面地址,說明R1的g0/0/0是DR,R2的g0/0/0是BDR;

  驗證:在R1上檢視路由表,看看通過ospf學習到那些路由?

  提示:可以看到R1學習到了5.5.5.5,36.0.0.0/24;到達R5,R6的路由56.0.0.0/8的路由並沒有學習到;

  驗證:在R1上檢視路由表,看看R1 到R5 lo介面的開銷

  提示:可以看到R1到R5的5.5.5.5的開銷是49;因為R1到R5的lo介面的開銷計算是R5的lo1介面開銷+R3的s4/0/0介面的開銷+R1的g0/0/0介面的開銷,即0+48+1=49;

  驗證:檢視R3的s4/0/0介面的開銷,看看是否是48呢?

  提示:這個介面是串列埠介面,預設序列介面的頻寬是2.048Mbps,所以該介面的開銷為100Mbps/2.048Mbps=48.82,因為開銷是直接取整,所以該介面的開銷為48;

  驗證:R5是否能夠ping 通R6呢?

  提示:可以看到R5是能夠正常ping通R6,其原因是R5和R6是直連,有直連路由;

  驗證:R3是否能夠ping通R6 呢?

  提示:可以看到R3ping不通R6,原因是R3沒有達到R6的路由;

  檢視R6的路由表

  提示:可以看到R6的路由表裡只有和R5的直連路由,其他網段的路由都沒有,說明R6只能和R5正常通行,和內部其他路由器沒法正常通訊;要想內部其他網路能夠訪問到R6,必須滿足對應內部路由器有到達R6的路由,同時R6也必須也有到達對應網路的路由;這裡我們只需要記住一點網路通訊都是雙向的,一切皆路由,只有通訊雙方都有對應的路由,才可以實現雙方正常通訊;

  解決R6能夠訪問內部各路由器網路的方法

  1、在R6上配置預設路由,下一跳指向R5

  驗證:在R6上配置靜態預設路由,下一跳指向R5的g0/0/0介面,抓包看看R6是否能夠將包發給內部的路由器?

  在R6上ping R1,然後在R1上抓包,看看是否能夠抓到包?

  提示:可以看到現在R6是能夠將icmp的請求包傳送給R1,只不過R1沒有辦法回覆R6,原因是R1上沒有到達R6的路由;

  解決內部路由器訪問R6的方法

  1、最簡單的方式在R5上,把到達R6的網路在ospf裡宣告一下,讓內部所有路由器都能夠通過ospf學習到對應路由;

  2、最麻煩也是最不推薦的方法,在內部各路由器上手動配置靜態路由或者預設路由;

  3、在R5上引入R5直連R6的路由;

  4、在R5上配置靜態預設路由,下一條指向R6,然後在OSPF裡動態釋出預設路由;

  5、在R6上刪除預設路由,在R5將直連56.0.0.0/8的路由引入到ospf(或者在R5上釋出預設路由),然後在R5上配置nat,讓從R5出去的流量做SNAT;

  以上五種方法都可以實現讓內部路由和R6實現通訊,前面的1和2就不演示了,我們演示下方法3,4,5

  實驗:在R5上引入直連路由到ospf裡,看看R1是否能夠學習到56.0.0.0/8的路由?

  驗證:在R1上檢視路由表,看看是否學習到56.0.0.0/8的路由呢?

  提示:可以看到R1此時學習到了2條外部引入的路由,分別是36.0.0.3 /32和56.0.0.0/8的路由;

  驗證:現在用R6 ping R1 看看是否能夠正常ping 通呢?

  提示:可以看到R6能夠ping 通R1和R3上的介面,此時就實現了全網互通;

  實驗:在R5上配置靜態預設路由,下一條指向R6,然後在OSPF裡動態釋出預設路由;

  在R5上取消引入靜態到ospf裡的配置

  在R5上配置一條預設路由,下一跳指向R6的g0/0/0介面

  在R5上通過ospf將剛才配置的預設路由釋出出去

  提示:上述命令的作用就是將預設路由通過ospf釋出出去;在釋出之前必須先配置靜態預設路由;

  驗證:在R1上檢視路由表,看看對應R1是否學習到了R5釋出的預設路由呢?

  提示:可以看到R1的路由表中通過ospf學習到了一條預設路由,並且下一跳指向了R3;

  驗證:現在用R6ping R1 看看是否能通?

  提示:可以看到R6能夠ping 通R1和R4;

  實驗:在R6上刪除預設路由,在R5將直連56.0.0.0/8的路由引入到ospf,然後在R5上配置nat,讓從R5出去的流量做SNAT;

  在R5上取消預設路由的釋出

  驗證:現在R6 是否還能ping 通R1或R4呢?

  提示:可以看到取消了預設路由的釋出,對應R6也ping不通R1了,其原因是R1上的預設路由隨R5的取消也隨之被刪除;

  驗證:在R1上檢視路由表看看是否還有預設路由?

  提示:可以看到R1上的預設路由被刪除了;

  在R6上刪除預設路由

  提示:刪除了R6上的預設路由以後,此時R6 就只能和R5的g0/0/0通過直連路由進行通訊;

  在R5上將直連路由引入到ospf中

  提示:此時R5引入直連路由到ospf裡,其他路由器就能通過ospf學習到56.0.0.0/8的路由;

  在R5上做nat,讓從g0/0/0出去的流量做SNAT

  驗證:用R1ping R6 看看是否能夠ping通?

  驗證:在R5的g0/0/0上抓包,看看對應源地址是否被更改了?

  提示:從上面的抓包資訊可以看到,R1的資料包在通過R5的g0/0/0時,會被修改成R5的g0/0/0介面的地址;這裡需要注意一點,此時R1能夠正常ping通R6,原因是R1的包通過R5的g0/0/0時,會修改其原ip為56.0.0.5,此時到達R6的包源ip就是R5的ip,所以R6回包也就把R5當作目標地址回包;而R6是沒有辦法直接pingR1,原因是R6上根本就沒有R1的路由;這也是我們現實生活中的網路,一般內部能夠正常訪問外部網路,外部網路沒有辦法直接訪問內部網路;

相關文章