Linux中網關和路由器


這個問題來源在於,我虛擬機連不上網,我使用route -n 查看我的路由表之后,看見沒有本地對應的網關。使用service  network restart時候,多了一個本地的默認網關,如下圖所示:

 

為什么會出現以上情況?這就引出了路由器與網關的關系,以及Linux中路由與網關的的一些操作,以下是我查找一些資料的整理,都是基於我目前知識的整理。

為什么有網關、路由器,以及為什么要設置它

本質上就是實現計算機聯網、相互通信

網關

           網關是一個邏輯概念,是一個ip地址,只有設置好網關的ip地址,TCP/IP協議才能實現不同網絡之間的通信。

           網關的ip的地址是具有路由地址的ip地址。

           現在又網絡A、B。網關的功能就是:如果網絡A中主機發送數據包的目的主機不在本地網絡中,就把數據包發送don給網絡A中路由表中對應的網關。

   繼而由網絡A的網關發送數據包給網絡B的網關,網絡B的網關再轉發給網絡B中的某個主機。

        一台主機可以由多個網關,一個網關里面可以有多台主機。

   網關分為默認網關和自動網關。

              默認網關: 默認網關必須是自己的ip地址所在的網段,如果一台主機的數據包找不到可用的網關,那么就數據發送給默認指定的網關,由這個網關來處理數據包。

      自動網關:自動網關就是利用DHCP來自動給網絡中的電腦分配ip地址、子網掩碼、和默認網關。一旦更改了變化只需更改DHCP服務器的設置,那么所有的電腦均得到了默認網關的ip地址,使用與規模較大、TCP/IP參數可能變動的網絡。

IP路由器(路由器)

正如上述所說,如果兩個主機A、B並不能通信。那么就需要路由器來決定如何發送報文。那么路由器如何決定發送報文,或者說路由器發送報文的原理以及工作機制是什么呢?

我們使用route -n時會有一張路由表,此表再IP層維護着。路由表就是用來決策數據報文接下來的走向。

數據包的路由如下:

  當我們接收到報文時,IP層先檢測目的IP是否和主機自身的IP相同。

       如果數據報文中的IP地址時主機自身的ip地址,那么報文發送到傳輸層協議中。

      如果不是主機自身IP地址,那么就從主機配置的路由功能去找入口,進行報文轉發,否則數據包丟棄。

出現開頭的問題就是很明了了,就是因為本地路由沒有設置網關,導致報文丟失。

那么我們來看看route -n 的具體內容

 

 

 

 Destination  表示目的ip,這里時默認網關的意思,表示所有對網卡eth2的報文由網關192.168.109.78進行轉發。

上述資料參考鏈接:https://blog.csdn.net/hzhsan/article/details/44059861

路由的功能

1、最基本的功能是實現不同網段數據之間的跨網段之間通信

2、根據路由規則進行路由選擇

網關的功能

1、不同網段數據之間的跨網段之間通信

2、路由選擇

3、默認路由

4、NET轉換,(有點像之前公司里面做的ip映射,就是局域網訪問外網,裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網連接)(現在先進行了解一下,后續有機會深入進行了解)

先學習配置默認網關

臨時添加:route add default gw ip
臨時刪除: route del default gw ip
永久操作:編輯/etc/sysconfig/network-scripts/eth0

當然還有更加復雜的添加路由的命令,我們后續可以繼續學習


免責聲明!

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



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