Linux下路由配置命令
1. 添加主機(jī)路由
route add -host 192.168.1.11 dev eth0route add -host 192.168.1.12 gw 192.168.1.1
2. 添加網(wǎng)絡(luò)路由
route add -net 192.168.1.11 netmask 255.255.255.0 eth0route add -net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1route add -net 192.168.1.0/24 eth0route add -net 192.168.1.0/24 gw 192.168.1.1
3. 添加默認(rèn)網(wǎng)關(guān)
route add default gw 192.168.1.1
4. 刪除路由
route del -host 192.168.1.11 dev eth0
5. 刪除默認(rèn)路由
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=[網(wǎng)關(guān)IP或者網(wǎng)關(guān)網(wǎng)卡名稱]
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轉(zhuǎn)發(fā)
1.臨時(shí)開啟
echo "1" > /proc/sys/net/ipv4/ip_forward
2.永久開啟
vim /etc/sysctl.conf
修改net.ipv4.ip_forward=1
實(shí)驗(yàn):配置雙網(wǎng)卡主機(jī)同時(shí)使用內(nèi)網(wǎng)和外網(wǎng)
本實(shí)驗(yàn)的背景是筆者在實(shí)踐中遇到過(guò)的一個(gè)問(wèn)題,本實(shí)驗(yàn)盡量還原當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境。僅當(dāng)做一份筆記,同時(shí)分享給遇到此問(wèn)題的同學(xué)。
奈何我現(xiàn)在沒(méi)有硬件呀(T_T)...只能拿VMware Workstation和eNSP來(lái)模擬實(shí)驗(yàn)環(huán)境了。
問(wèn)題背景
如下圖拓?fù)渌荆绻サ?code style="margin: 3px auto 0px; padding: 2px 4px; outline: none; font-style: inherit; font-weight: inherit; background: rgb(249, 242, 244); width: 640px; line-height: 1.5; clear: both; font-size: 12px; border: 1px solid rgb(204, 204, 204); color: rgb(199, 37, 78); border-radius: 0px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace;">client節(jié)點(diǎn),內(nèi)網(wǎng)和外網(wǎng)就是相互隔離的網(wǎng)絡(luò)。
但是實(shí)際情況是,client
節(jié)點(diǎn)既需要訪問(wèn)外網(wǎng)資源,又需要訪問(wèn)內(nèi)網(wǎng)資源,而client
只能配置一條默認(rèn)路由。如果將默認(rèn)路由配置在外網(wǎng)網(wǎng)卡,client
可以訪問(wèn)172.16.2.0/24
網(wǎng)絡(luò)的資源和外網(wǎng)的資源,但是其余內(nèi)網(wǎng)資源將無(wú)法訪問(wèn);如果將默認(rèn)路由配置在內(nèi)網(wǎng)網(wǎng)卡,client
雖然可以完全訪問(wèn)內(nèi)網(wǎng)資源,但是卻不能訪問(wèn)外網(wǎng)資源。
怎么解決呢?
實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)拓?fù)?/strong>
去掉client
節(jié)點(diǎn),內(nèi)網(wǎng)和外網(wǎng)是隔離的網(wǎng)絡(luò)。
外網(wǎng)網(wǎng)絡(luò)為10.0.0.0/16
,代表運(yùn)營(yíng)商的接入網(wǎng);
內(nèi)網(wǎng)網(wǎng)絡(luò)為172.16.0.0/16
,代表內(nèi)網(wǎng)部分(該部分為了安全,不允許對(duì)互聯(lián)網(wǎng)的直接訪問(wèn))。
其中:
client
為雙網(wǎng)卡的主機(jī),兩網(wǎng)卡網(wǎng)段分別為10.0.0.0/16
、172.16.2.0/24
;server2
為172.16.2.0/24
網(wǎng)段的服務(wù)器;server3
為172.16.3.0/24
網(wǎng)段的服務(wù)器;server4
為172.16.4.0/24
網(wǎng)段的服務(wù)器。網(wǎng)絡(luò)規(guī)劃
IP分配
節(jié)點(diǎn)名稱 | IP地址 | 子網(wǎng)掩碼 | 備注 |
---|---|---|---|
client | 10.0.0.101 | 255.255.0.0 | client的外網(wǎng)網(wǎng)卡 |
172.16.2.101 | 255.255.255.0 | client的內(nèi)網(wǎng)網(wǎng)卡 | |
Server2 | 172.16.2.11 | 255.255.255.0 | 172.16.2.0/24網(wǎng)段的某臺(tái)服務(wù)器 |
Server3 | 172.16.3.11 | 255.255.255.0 | 172.16.3.0/24網(wǎng)段的某臺(tái)服務(wù)器 |
Server4 | 172.16.4.11 | 255.255.255.0 | 172.16.4.0/24網(wǎng)段的某臺(tái)服務(wù)器 |
內(nèi)網(wǎng)路由器 | 172.16.2.254 | 255.255.255.0 | 172.16.2.0/24的網(wǎng)關(guān) |
172.16.3.254 | 255.255.255.0 | 172.16.3.0/24的網(wǎng)關(guān) | |
172.16.4.254 | 255.255.255.0 | 172.16.4.0/24的網(wǎng)關(guān) |
虛機(jī)網(wǎng)卡類型
運(yùn)營(yíng)商網(wǎng)絡(luò) | 橋接 | 10.0.0.0/16 |
VMnet2 | 僅主機(jī) | 172.16.2.0/24 |
VMnet3 | 僅主機(jī) | 172.16.3.0/24 |
VMnet4 | 僅主機(jī) | 172.16.4.0/24 |
內(nèi)網(wǎng)路由器如何實(shí)現(xiàn)呢?
VMnet2、VMnet3、VMnet4均為僅主機(jī)模式,那么常規(guī)情況下,只有其網(wǎng)絡(luò)內(nèi)的各計(jì)算機(jī)之間才可以通信,要怎樣才能實(shí)現(xiàn)三個(gè)網(wǎng)絡(luò)間的通信呢?
答案是使用華為eNSP模擬器中的Cloud。使用Cloud設(shè)備可以將eNSP中的路由器和VMware虛擬機(jī)的網(wǎng)卡連接起來(lái)。
配置內(nèi)網(wǎng)環(huán)境
配置eNSP的路由器
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]
修改虛機(jī)的IP地址
client
ens33 | 10.0.0.101 | 255.255.0.0 | 10.0.0.1 | 外網(wǎng)網(wǎng)卡 |
ens37 | 172.16.2.101 | 255.255.255.0 | 內(nèi)網(wǎng)網(wǎng)卡 |
server2
ens33 | 172.16.2.11 | 255.255.255.0 | 172.16.2.254 |
server3
ens33 | 172.16.3.11 | 255.255.255.0 | 172.16.3.254 |
server4
ens33 | 172.16.4.11 | 255.255.255.0 | 172.16.4.254 |
在server上搭建HTTP服務(wù)
以server2
為例:
使用Python創(chuàng)建一個(gè)簡(jiǎn)單的HTTP服務(wù)
cd ~echo "server2" > index.htmlpython -m SimpleHTTPServer 8080
對(duì)照試驗(yàn)
在client
上訪問(wèn)外網(wǎng)
ping www.baidu.com -c 4
在client
上訪問(wèn)server2
ping 172.16.2.11 -c 4
在client
上訪問(wèn)server3
ping 172.16.3.11 -c 4
在client
上訪問(wèn)server4
ping 172.16.4.11 -c 4
在對(duì)照試驗(yàn)中可以看到,在client
將默認(rèn)網(wǎng)關(guān)配置在外網(wǎng)網(wǎng)卡的情況下,雙網(wǎng)卡的client
可以正常訪問(wèn)外網(wǎng)和內(nèi)網(wǎng)的172.16.2.0/24
部分,而172.16.3.0/24
和172.16.4.0/24
是不能訪問(wèn)到的。
為什么client
能訪問(wèn)172.16.2.0/24
網(wǎng)絡(luò),而不能訪問(wèn)172.16.0.0/16
的其余網(wǎng)絡(luò)呢?
因?yàn)?code style="margin: 3px auto 0px; padding: 2px 4px; outline: none; font-style: inherit; font-weight: inherit; background: rgb(249, 242, 244); width: 640px; line-height: 1.5; clear: both; font-size: 12px; border: 1px solid rgb(204, 204, 204); color: rgb(199, 37, 78); border-radius: 0px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace;">client位于172.16.2.0/24
網(wǎng)絡(luò)內(nèi),在網(wǎng)絡(luò)內(nèi)進(jìn)行通信,數(shù)據(jù)包不用發(fā)送至其他網(wǎng)絡(luò),當(dāng)然默認(rèn)網(wǎng)關(guān)也就不起作用了。
而當(dāng)client
與172.16.0.0/16
的其余網(wǎng)絡(luò)通信時(shí),client
的路由表沒(méi)有記載發(fā)往目的地址的路徑,所以client
只能傻傻的把數(shù)據(jù)包發(fā)送給默認(rèn)網(wǎng)關(guān),從此數(shù)據(jù)包和真正的目的地址就“南轅北轍”了。當(dāng)然ping的結(jié)果就是網(wǎng)絡(luò)不可達(dá)。
路由配置
在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
實(shí)驗(yàn)結(jié)果
檢測(cè)連通性
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
訪問(wèn)內(nèi)外網(wǎng)資源
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
解決的辦法很簡(jiǎn)單,就是1條命令而已。
但是蘊(yùn)藏在這條命令背后的原理、概念、理論,則需要我們進(jìn)行深究!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選