Linux 網絡路由介紹

六月份的時候我們討論了基礎網絡配置,其中有一點我沒提到的是路由。這篇文章將簡潔明瞭的介紹下Linux網絡下的路由,來方便理解一些簡單的網絡環境。

每臺網絡中相連的計算機當他們離開本地主機的時候,TCP / IP數據包需要某種類型的路由指令。這通常是非常簡單的,因爲多數網絡環境非常簡單,那些離開包只有兩個選擇。所有數據包被髮送到設備在本地網絡上或其他網絡,遠端網絡。

第 1 段(可獲 1.21 積分)

5. 應用層: 消息 這一層由各種網絡應用程序進行通信所需的連接協議,如HTTP、DHCP、SSH、FTP、SMTP、IMAP及其他。當你從遠程網站上請求一個網頁時,一個連接請求被髮送到web服務器,響應被髮回到主機所在層, 然後瀏覽器就可以顯示這個網頁。

4. 傳輸層: TCP 字節段. 傳輸層提供端到端的數據傳輸和流管理服務,是獨立的傳輸協議數據和類型的。它使用的端口就像HTTP的80端口和SMTP的25端口一樣使發送主機和遠程主機之間建立連接。

第 3 段(可獲 1.53 積分)

2. 數據鏈路層: 幀. 鏈路層管理一個單一的,局部的,邏輯的,物理網絡硬件主機之間的直接連接. 鏈路層使用嵌入在網絡接口卡(NIC) (MAC) 地址 地址來識別連接到本地網絡中的物理設備。 鏈路層不能訪問本地網路之外的其他主機.

1. 物理層: 位. 這是硬件層,它由NIC和物理以太網電纜以及數據幀硬件級別協議組成,用來爲任何與本地計算機連接的其他網絡節點傳輸由位組成的數據幀。

第 5 段(可獲 1.36 積分)

請注意,在二層及以上協議層中,交換機是無形的,所以並不會影響數據以邏輯方式的傳輸。交換機的功能僅僅是提供一個簡單的方法來連接多臺主機到一個單一的物理網絡,通過以太網線纜。

你可以使用arp [-n]命令來查看所有主機的MAC地址,存儲在其ARP表中。通常這些主機都位於本地網絡。

路由表

所有的網絡設備,不論是主機,路由器,或其他類型的網絡節點比如網絡打印機,都需要決定TCP/IP數據包去向哪裏。路由表提供了所需的配置信息來做出這些決定。路由表類似圖1的一個非常簡單的路由表用於定義一個典型的到本地主機的單一路由,並確定是否發送數據包到默認網關路由。route -n命令列出路由表,-n選項顯示唯一的IP地址,不會嘗試執行DNS查找可替代的IP地址和主機名稱。 netstat -rn 命令顯示相似的結果。

第 7 段(可獲 2.65 積分)

對於多數主機來說路由決策是相當簡單的:

  • 如果目的主機在本地網絡中,數據將直接發送到目標主機.
  • 如果目的主機在遠程網絡中,並且可以通過路由表中列出的本地網關到達,那麼數據將被髮送到其明確定義的網關.
  • 如果目的主機在遠程網絡中,並且沒有任何路由條目定義其到該主機的線路,那麼數據將被髮送到默認網關。

這些規則說明,如果一條都不符合,那麼數據包將被髮送到默認網關。

第 9 段(可獲 1.29 積分)

路由配置

那麼如何配置路由呢?當主機通過DHCP連接網絡,DHCP服務器將提供默認路由信息,包括DNS、IP地址或許還有其他信息比如NTP服務器的IP地址。對於配置靜態路由信息來說,通常很簡單, 不過有時也有一點點複雜。

在多數情況下,添加默認路由信息到/etc/sysconfig/network 文件可以使網絡自動配置路由表中的默認路由條目。該條目看起來就像圖三中的示例。

第 11 段(可獲 1.24 積分)
 
default via 192.168.0.1 dev enp7s1

圖4:enp7s1的默認路由條目.

默認網關設置在路由接口信息文件中覆蓋任何可能在網絡文件中列出的網絡文件。

當然,你可以隨時使用route命令在命令行中添加路由。這可能需要一些時間,當每次都系統啓動時,所以你可能要考慮使用上述方法,或者創建運行在系統啓動時的腳本。我有一個這樣的腳本文件,用於我的一個系統,包含以下如圖5所示的兩行。
route del default
route add default gw 192.168.0.1
第 13 段(可獲 1.19 積分)
0<a href="https://coyee.com/article/translate/11117-an-introduction-to-linux-network-routing?section=13&correct=23347" "="" title="糾正此翻譯" class="ui very basic mini icon button" style="box-sizing: inherit; text-decoration: none; outline: 0px; cursor: pointer; display: inline-block; min-height: 1em; border: none; vertical-align: baseline; font-family: Lato, 'Helvetica Neue', Arial, Helvetica, sans-serif; margin: 0px 0.25em 0px 0px; padding: 0.785714em; line-height: 1em; text-align: center; border-radius: 0.285714rem; box-shadow: rgba(34, 36, 38, 0.14902) 0px 0px 0px 1px inset; -webkit-user-select: none; transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease; -webkit-tap-highlight-color: transparent; font-size: 0.785714rem; color: rgba(0, 0, 0, 0.6) !important; text-shadow: none !important; background: 0px 0px !important;">kistone2周前

圖5: 命令行方式設置默認路由 .

注意設備名稱在所有命令行中是可選的,並沒有用在圖5中。

總結

(路由表)可以有更多的路由條目。比這些簡單的例子中顯示的多,這是很常見的。本例中信息僅僅只是一個開始。對於那些更復雜的網絡環境,你可以參照 Inside TCP/IP, 第二版, 或者 TCP/IP Network Administration 作者是Craig Hunt. 如果你還想要更多信息請參閱不同的發行版本號。對於基於RPM的比如Fedora 和Centos, Red Hat Enterprise Linux 7 deployment guide 是一個好的參照讀物。.

發佈了70 篇原創文章 · 獲贊 64 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章