以下均為個人實驗驗證結果,如有問題,懇請指正。
現在服務器一般都有四張網卡,給了我們更多網絡模型的選擇。為了業務的需求,有時我們需要如下網絡架構
系統: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 添加網卡路由