【 淺談Linux路由機制 】


    以下均為個人實驗驗證結果,如有問題,懇請指正。

    現在服務器一般都有四張網卡,給了我們更多網絡模型的選擇。為了業務的需求,有時我們需要如下網絡架構

    系統:centos 7.2 x64

    兩張網卡不在同一個網絡里,
        eno16777736: 10.0.0.11/24
        eno33554984: 192.168.111.128/24
    ping 10.0.0.1

 

    抓包查看如下:

    證明網卡:報文是從eno16777736網卡出去的。

 

    ping 192.168.111.129

    抓包查看如下:

 

    證明網卡報文是從eno33554984網卡出去的。

    ping baidu.com

 

    抓包如下:

 

    證明連接外網是從eno16777736網卡出去的。

    說明:在linux上,默認的配置就實現了如上的需求,接下來我們查看該服務器的路由情況。

 

    為了進一步理解路由的作用,我們一條一條的分析。

    首先刪除第一條路由規則:
        第一條路由規則為默認路由:

 

    嘗試ping 10.0.0.1

    此時,我們在嘗試ping baidu.com

 

    網絡直接返回不可達。

 

    路由的概念:路由是指路由器從一個接口上收到數據包,根據數據包的目的地址進行定向並轉發到另一個接口的過程。
    而當我們把默認路由刪除,對於訪問同網段10.0.0.0/24地址來說,不需要路由的轉發,同網段的訪問是直接mac地址通信,而當你要訪問非本網段內的主機時,就需要一台設備明確的知道你要訪問的主機在何處,而你的主機就必須指向這台設備才行,這台設備就啟用轉發的功能幫你完成數據包的發送,這個設備就叫做路由設備。

 

    接下來,我們的路由表里還有兩條路由規則:

 


    10.0.0.0/24 dev eno16777736  proto kernel  scope link  src 10.0.0.11  metric 100

        說明:當需要發送/接收網段為:10.0.0.0/24報文時,從 eno16777736 網卡進行發送/接收。

    192.168.111.0/24 dev eno33554984  proto kernel  scope link  src 192.168.111.128  metric 100

        說明:當需要發送/接收網段為:192.168.111.0/24報文時,從 eno33554984 網卡發送/接收。

    刪除第二條規則進行驗證:

 

    ping 192.168.111.129

 

    對於本機網卡來說,此路由規則就好像是一扇門,當刪掉這條路由規則時,門就關閉了,外面的人進不來,里面的人出不去。


    因此,我們總結下:
        在使用一張物理網卡的主機上,至少需要兩條路由規則,一條為默認網關路由,一條為網卡路由。
        在使用兩張物理網卡的主機上,至少需要三條路由規則,一條為默認網關路由,兩條為網卡路由。
        以此類推。

    如果想讓服務器隔離外網,直接刪除默認路由即可。

 

附:

    ip route 命令使用如下;
        # ip route show                                        查看路由表
        # ip route add default via 10.0.0.1                    添加默認路由
        # ip route del 192.168.111.0/24                        刪除路由
        # ip route add 192.168.111.0/24 dev eno33554984        添加網卡路由


免責聲明!

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



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