1. 程式人生 > >路由轉發小實驗

路由轉發小實驗

路由 路由轉發

現在有A,B兩臺主機,中間有Ra,Rb,Rc,Rd四個路由器,目標是實現A,B兩臺主機互通。

準備工作:

準備工作的部分主要是在VMware部分。由於我們的目的是為了更好的理解路由轉發,所以這個可能並沒有什麽實際意義。下面的所有內容都是基於linux虛擬機進行的操作。讓我們 先開始準備工作,由於我們是用系統代替路由器,所以6個linux虛擬機是必須的。為了方便是用網卡來模擬路由器的端口也就是說,除A,B兩臺主機,其余四臺linux虛擬機都是用兩個網卡。
1、6臺linux虛擬機,兩臺作為主機,四臺作為路由器
2、給作為路由器的虛擬機添加兩塊網卡
3、在虛擬網絡編輯器中添加五個網絡並分配給對應的網卡
比如在VMware中添加了VMnet10、11、12、13、14這四個網絡,那麽對應的設置就可以是A和Ra1使用VMnet10,Ra2和Rb1使用VMnet11等等以此類推,其拓撲圖大致如下:

技術分享圖片

第一步:規劃IP,劃分子網

四個路由器也就是五個子網,為了方便區分,IP劃分如下。
主機A IP:192.168.1.141

Ra1 IP:192.168.1.1
Ra2 IP:192.168.2.2

Rb1 IP:192.168.2.1
Rb2 IP:192.168.3.3

Rc1 IP:192.168.3.1
Rc2 IP:192.168.4.4

Rd1 IP:192.168.4.1
Rd2 IP:192.168.5.5

主機B IP:192.168.5.1
掩碼全部為:255.255.255.0

第二步:配置主機和路由IP

這部分內容主要是修改各個網卡的配置文件,大體格式如下按照事先分配的IP修改各個配置文件之後重啟網絡服務即可。

DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.141
PREFIX=24
GATEWAY=192.168.1.1

配置完成後應該是這樣的

技術分享圖片

第三步:開啟轉發功能,關閉防火墻

在四個路由器上執行
echo 1 > /proc/sys/net/ipv4/ip_forward
查看此文件的值,確保都為1
關閉防火墻,在Centos7中執行systemctl stop firewalld,通過systemctl status firewalld確保防火墻已經關閉
在Centos6中執行service iptables stop,通過service iptables status確保防火墻關閉

第四步:添加路由

為了避免默認路由帶來的幹擾,我這裏忽視默認路由的存在,直接添加路由信息。
A 、ip route add 192.168.5.0/24 via 192.168.1.1 dev ens33
Ra、ip route add 192.168.5.0/24 via 192.168.2.1 dev ens34
Rb、ip route add 192.168.5.0/24 via 192.168.3.1 dev ens34
Rc、ip route add 192.168.5.0/24 via 192.168.4.1 dev ens34
Rd、ip route add 192.168.5.0/24 via 192.168.5.1 dev ens34

去路的路由信息就是這些,然後是回路的路由信息
B 、ip route add 192.168.1.0/24 via 192.168.5.5 dev ens33
Rd、ip route add 192.168.1.0/24 via 192.168.4.4 dev ens33
Rc、ip route add 192.168.1.0/24 via 192.168.3.3 dev ens33
Rb、ip route add 192.168.1.0/24 via 192.168.2.2 dev ens33
Ra、ip route add 192.168.1.0/24 via 192.168.1.1 dev ens33

但是只有這些的話其實並不可以,確切的說如果真正的忽視默認路由的話,上面的路由表很可能都無法添加,所以在添加上面的路由之前應該先確保臨近的網段互通。所以,在添加上面的路由之前需要在每個路由上先添加兩條路由。原因是每個路由器都連接著兩個網段,這兩條路由的作用就是把對應的地址拋給對應的網關。具體應該如下:

主機A

ip route add 192.168.1.0/24 via 0.0.0.0 dev ens33

Ra、

ip route add 192.168.2.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.1.0/24 via 0.0.0.0 dev ens33
(其實有了這個,上面Ra回去的路由可以不用添加,不過個人覺得這樣更容易理解)

Rb、

原理是了一樣的,Rb需要把去往192.168.3.0網段的通過ens34的網關發出,把去往192.168.2.0的通過ens33發出所以這兩條應該是
ip route add 192.168.3.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.2.0/24 via 0.0.0.0 dev ens33

Rc、

ip route add 192.168.4.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.3.0/24 via 0.0.0.0 dev ens33

Rd、

ip route add 192.168.5.0/24 via 0.0.0.0 dev ens34
ip route add 192.168.4.0/24 via 0.0.0.0 dev ens33

主機B

ip route add 192.168.5.0/24 via 0.0.0.0 dev ens33

完成之後確保每個路由器上都有去與其相連的兩個網段的路由以及去A和B的路由。完成之後使用ping命令查看是否已經連通。

路由轉發小實驗