您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Linux系統多網卡環境下路由配置的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Linux下路由配置命令
1. 添加主機路由
route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw 192.168.1.1
2. 添加網絡路由
route add -net 192.168.1.11 netmask 255.255.255.0 eth0 route add -net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1 route add -net 192.168.1.0/24 eth0 route add -net 192.168.1.0/24 gw 192.168.1.1
3. 添加默認網關
route add default gw 192.168.1.1
4. 刪除路由
route del -host 192.168.1.11 dev eth0
5. 刪除默認路由
route del default gw 192.168.1.1
Linux下配置永久路由的幾種方式
1. 在/etc/rc.local
里添加路由信息
route add -net 192.168.1.0/24 dev eth0 # 或者 route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
2. 在/etc/sysconfig/network
里追加
GATEWAY=[網關IP或者網關網卡名稱]
3. /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 192.168.1.1 # 或者 any net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
4. 開啟IP轉發
1.臨時開啟
echo "1" > /proc/sys/net/ipv4/ip_forward
2.永久開啟
vim /etc/sysctl.conf
修改net.ipv4.ip_forward=1
實驗:配置雙網卡主機同時使用內網和外網
本實驗的背景是筆者在實踐中遇到過的一個問題,本實驗盡量還原當時的網絡環境。僅當做一份筆記,同時分享給遇到此問題的同學。
奈何我現在沒有硬件呀(T_T)...只能拿VMware Workstation和eNSP來模擬實驗環境了。
問題背景
如下圖拓撲所示,如果去掉client
節點,內網和外網就是相互隔離的網絡。
但是實際情況是,client
節點既需要訪問外網資源,又需要訪問內網資源,而client
只能配置一條默認路由。如果將默認路由配置在外網網卡,client
可以訪問172.16.2.0/24
網絡的資源和外網的資源,但是其余內網資源將無法訪問;如果將默認路由配置在內網網卡,client
雖然可以完全訪問內網資源,但是卻不能訪問外網資源。
怎么解決呢?
實驗環境
VMware Workstation Pro
4臺最小化安裝的CentOS 7.3虛擬機
華為eNSP模擬器
實驗拓撲
去掉client
節點,內網和外網是隔離的網絡。
外網網絡為10.0.0.0/16
,代表運營商的接入網;
內網網絡為172.16.0.0/16
,代表內網部分(該部分為了安全,不允許對互聯網的直接訪問)。
其中:
client
為雙網卡的主機,兩網卡網段分別為10.0.0.0/16
、172.16.2.0/24
;
server2
為172.16.2.0/24
網段的服務器;
server3
為172.16.3.0/24
網段的服務器;
server4
為172.16.4.0/24
網段的服務器。
網絡規劃
IP分配
節點名稱 | IP地址 | 子網掩碼 | 備注 |
---|---|---|---|
client | 10.0.0.101 | 255.255.0.0 | client的外網網卡 |
172.16.2.101 | 255.255.255.0 | client的內網網卡 | |
Server2 | 172.16.2.11 | 255.255.255.0 | 172.16.2.0/24網段的某臺服務器 |
Server3 | 172.16.3.11 | 255.255.255.0 | 172.16.3.0/24網段的某臺服務器 |
Server4 | 172.16.4.11 | 255.255.255.0 | 172.16.4.0/24網段的某臺服務器 |
內網路由器 | 172.16.2.254 | 255.255.255.0 | 172.16.2.0/24的網關 |
172.16.3.254 | 255.255.255.0 | 172.16.3.0/24的網關 | |
172.16.4.254 | 255.255.255.0 | 172.16.4.0/24的網關 |
虛機網卡類型
網絡名稱 | VMware網卡類型 | 網絡范圍 |
---|---|---|
運營商網絡 | 橋接 | 10.0.0.0/16 |
VMnet2 | 僅主機 | 172.16.2.0/24 |
VMnet3 | 僅主機 | 172.16.3.0/24 |
VMnet4 | 僅主機 | 172.16.4.0/24 |
內網路由器如何實現呢?
VMnet2、VMnet3、VMnet4均為僅主機模式,那么常規情況下,只有其網絡內的各計算機之間才可以通信,要怎樣才能實現三個網絡間的通信呢?
答案是使用華為eNSP模擬器中的Cloud。使用Cloud設備可以將eNSP中的路由器和VMware虛擬機的網卡連接起來。
配置內網環境
配置eNSP的路由器
接口 | IP地址 | 子網掩碼 |
---|---|---|
G0/0/0 | 172.16.2.254 | 255.255.255.0 |
G0/0/1 | 172.16.3.254 | 255.255.255.0 |
G0/0/2 | 172.16.4.254 | 255.255.255.0 |
<huawei>system-view [huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 172.16.2.254 255.255.255.0 [Huawei-GigabitEthernet0/0/0]quit [huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]ip address 172.16.3.254 255.255.255.0 [Huawei-GigabitEthernet0/0/1]quit [huawei]int g0/0/2 [Huawei-GigabitEthernet0/0/2]ip address 172.16.4.254 255.255.255.0 [Huawei-GigabitEthernet0/0/2]quit [huawei]
修改虛機的IP地址
client
網卡名稱 | IP地址 | 子網掩碼 | 默認網關 | 備注 |
---|---|---|---|---|
ens33 | 10.0.0.101 | 255.255.0.0 | 10.0.0.1 | 外網網卡 |
ens37 | 172.16.2.101 | 255.255.255.0 | 內網網卡 |
server2
網卡名稱 | IP地址 | 子網掩碼 | 默認網關 | 備注 |
---|---|---|---|---|
ens33 | 172.16.2.11 | 255.255.255.0 | 172.16.2.254 |
server3
網卡名稱 | IP地址 | 子網掩碼 | 默認網關 | 備注 |
---|---|---|---|---|
ens33 | 172.16.3.11 | 255.255.255.0 | 172.16.3.254 |
server4
網卡名稱 | IP地址 | 子網掩碼 | 默認網關 | 備注 |
---|---|---|---|---|
ens33 | 172.16.4.11 | 255.255.255.0 | 172.16.4.254 |
在server上搭建HTTP服務
以server2
為例:
使用Python創建一個簡單的HTTP服務
cd ~ echo "server2" > index.html python -m SimpleHTTPServer 8080
對照試驗
在client
上訪問外網
ping www.baidu.com -c 4
在client
上訪問server2
ping 172.16.2.11 -c 4
在client
上訪問server3
ping 172.16.3.11 -c 4
在client
上訪問server4
ping 172.16.4.11 -c 4
在對照試驗中可以看到,在client
將默認網關配置在外網網卡的情況下,雙網卡的client
可以正常訪問外網和內網的172.16.2.0/24
部分,而172.16.3.0/24
和172.16.4.0/24
是不能訪問到的。
為什么client
能訪問172.16.2.0/24
網絡,而不能訪問172.16.0.0/16
的其余網絡呢?
因為client
位于172.16.2.0/24
網絡內,在網絡內進行通信,數據包不用發送至其他網絡,當然默認網關也就不起作用了。
而當client
與172.16.0.0/16
的其余網絡通信時,client
的路由表沒有記載發往目的地址的路徑,所以client
只能傻傻的把數據包發送給默認網關,從此數據包和真正的目的地址就“南轅北轍”了。當然ping的結果就是網絡不可達。
路由配置
在client
上查看路由表
route
在client
上添加路由
route add -net 172.16.0.0/16 gw 172.16.2.254
永久配置,則在/etc/rc.local
里添加路由信息
route add -net 172.16.0.0/16 gw 172.16.2.254
查看路由表
route
實驗結果
檢測連通性
ping www.baidu.com -c 4
ping 172.16.2.11 -c 4
ping 172.16.3.11 -c 4
ping 172.16.4.11 -c 4
訪問內外網資源
curl http://www.baidu.com/
curl http://172.16.2.11:8080/index.html
curl http://172.16.3.11:8080/index.html
curl http://172.16.4.11:8080/index.html
解決的辦法很簡單,就是1條命令而已。
但是蘊藏在這條命令背后的原理、概念、理論,則需要我們進行深究!
感謝各位的閱讀!關于“Linux系統多網卡環境下路由配置的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。