Linux 系統多網卡環境下的路由配置

Linux下路由配置命令

1.添加主機路由html

route add -host 192.168.1.11 dev eth0
route add -host 192.168.1.12 gw 192.168.1.1

2.添加網絡路由python

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.添加默認網關linux

route add default gw 192.168.1.1

4.刪除路由vim

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-routesapp

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轉發curl

1.臨時開啓ui

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/1六、172.16.2.0/24;
  • server2爲172.16.2.0/24網段的服務器;
  • server3爲172.16.3.0/24網段的服務器;
  • server4 爲172.16.4.0/24網段的服務器。
網絡規劃

內網路由器如何實現呢?

VMnet二、VMnet三、VMnet4均爲僅主機模式,那麼常規狀況下,只有其網絡內的各計算機之間才能夠通訊,要怎樣才能實現三個網絡間的通訊呢?

答案是使用華爲eNSP模擬器中的Cloud。使用Cloud設備能夠將eNSP中的路由器和VMware虛擬機的網卡鏈接起來。

配置內網環境

配置eNSP的路由器

<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地址在server上搭建HTTP服務

以server2爲例:

使用Python建立一個簡單的HTTP服務

cd ~
echo "server2" > index.html
python -m SimpleHTTPServer 8080

image.png

對照試驗,在client上訪問外網

ping www.baidu.com -c 4

在client上訪問server2

ping 172.16.2.11 -c 4

image.png

在client上訪問server3

ping 172.16.3.11 -c 4

image.png

在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上查看路由表在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

查看路由表

實驗結果

檢測連通性

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條命令而已。可是蘊藏在這條命令背後的原理、概念、理論,則須要咱們進行深究!

連接:https://www.cnblogs.com/conne...

image

相關文章
相關標籤/搜索