您好,登錄后才能下訂單哦!
Linux之網絡管理(3)靜態路由小案例
在日常網絡中,總有有這么一種情況,在只有很少的路由器、交換機鏈接起來的網絡會產生很多不同的網段,但是各個接口又不是都指向同一個,至少在一個線路而已,類似于各個公司部門的網段不同,但連在一起,因此產生了各個主機的網段不同。為了解決這種問題,可以對某些連在中間的主機模擬成路由器,來實現不同網段ip主機通信。
模擬測試:
這里模擬3個主機設備來進程跨網點組網
準備工作:
1、使用vm虛擬機模擬3個主機的linux系統環境,這里我準備了3個主機,這里標記3個主機分別為lab1、lab2、lab4
2、規劃好一些私有網絡、ip來使用
3、3個主機的網卡連接模式必須相同,這里因為物理主機只有2塊網卡,且只有2個網關,因此要使用多網關這里我設置3個虛擬LAN區域:xx、yy、zz
4、規劃網絡ip
5、測試主機的網卡設備是否能正常使用
LAN區域網段介紹:
xx網段:10.0.0.0/8 網段
yy網段:172.0.0.0/16 網段
zz網段:192.168.0.0/24 網段
主機網卡網段分配:
LAN 主機 使用網卡 IP地址
xx : lab1 eth0 10.0.0.10
lab2 eth2 10.0.0.20
yy : lab2 eth3 172.0.0.10
lab4 eth0 172.0.0.20
zz : lab4 eth2 192.168.0.10
試驗階段:
查看各個網卡ip
Lab1 eth0
Lab2 eth2
Lab2 eth3
Lab4 eth0
Lab4 eth2
規法網關路由:
因為只有3個LAN區域,所以網段為固定,這里可以直接給lab1 設置一條默認路由
設置lab1主機的eth0網卡:
1、測試同一網絡:
lab1 訪問 lab2 在xx網絡的接口 10.0.0.10 --> 10.0.0.20
2、設置lab1網關
1、使用ip命令添加默認網關:
ip roue add default via 10.0.0.20 dev eth0
解析:其中default表示默認,也就是0.0.0.0網絡,via表示下一條的地址,dev指明為哪個網卡設備配置,因為lab1在xx網絡,只有一個eth0網卡,而lab2其中的eth2網卡也在xx網絡并在同一網段,因此,兩種直接可以ping通,但是想要訪問lab2其中的eth3網卡,也就是yy網絡,就需要將數據給lab2的eth2網卡,然后由lab2來轉發數據。
2、查看lab1主機的route表
ip route show
解析:這里最后一行顯示了剛才添加的默認路由條目
3、下面測試lab1的eth0接口能不能通過lab2的eth2去訪問eth3(172.0.0.10)
解析:能ping通表示已經可以訪問了
設置lab2主機的網卡:
1、測試網絡
#下面重啟lab2網絡進程測試
說明:這里啟動失敗,是因為此網絡服務的進程與NetworkManager服務進程發送沖突,這里我們查看NetworkManager是否正在運行:
#下面查看lab2NM服務進程
service NetworkManager status
#這樣已經發現NM服務真的已經啟動了,下面關閉此服務:
service NetworkManager stop
#lab2再次開啟network 服務
解析:這里顯示eth2和eth3重新獲取了ip地址,當然還是剛才的配置下面測試ping
#ping名稱測試通信(lab2測試)
1、Lab2 去訪問 lab1 的eth0網卡
2、Lab2去訪問lab4 的eth0網卡
3 、Lab2去訪問lab4 的eth2網卡
解析:這里為什么ping不同,因為lab2沒有設置通往192.168.0.0的網絡,也就是zz網絡,而能訪問lab4的eth0,是因為lalb2的eth2和其在同一個網絡(yy)網絡172.0.0.0網段,所以這里要進行對lab2的eth3設置一個網關。
2、設置網關
#給lab2的eth3添加一個能訪問192.168.0.0網段的route條目
ip route add 192.168.0.0/24 via 172.0.0.20 dev eth3
解析:這里同樣和添加lab1的默認路由類似,而lab1需要將數據傳給通網段的lab2的eth2接口,所以,lab2要想訪問lab4 的192.168.0.0網段,就要將數據給與lab4網絡接口相連的接口,也就是lab2 的eth3接口,而 172.0.0.20是 lab4的eth0接口,然后建立訪問。
#查看lab2的路由表,確認添加成功
ip route show
說明:第二行以及顯示了新增加的路由,下面測試訪問lab4的eth2接口
3、再次訪問測試
lab2測試
#lab2訪問192.168.0.0網段
解析:同樣也能ping通,那么我們下面想一下,lab1是不是可以訪問lab2而去間接訪問lab4呢,下面測試一下:
lab1測試
#lab1訪問 lab4 eth0 172.0.0.20
解析:看來不能通過此來訪問,這里網關雖然設置好,但是linux內核內部默認是不會講lab1的數據包通過lab2的eth3接口轉發給lab4的。
4、設置開啟轉發功能
1、查看和開啟lab2的ip轉發功能
cat /proc/sys/net/ipv4/ip_forward #為0關閉,為1開啟
解析: /proc為系統內核模塊的系統進程產生的文件,是無法直接修改的,因此可以使用重定向,注意,這里只接收一個參數。
解析:想一想lab2接收lab1傳來的數據,想經過 eth2,然后轉發到eth3,但是lab4并不識別,因此需要再開啟lab4的轉發來接收數據
設置lab4的網卡:
1、設置lab4路由和轉發
#開啟lab4的轉發功能
echo 1 > /proc/sys/net/ipv4/ip_forward
#lab1 再次訪問 lab4 的 172.0.0.20
發現仍然失敗,這是因為lab4并沒有同向10.0.0.0網段的路由表,下面對lab4添加xx網段的路由
#給lab4添加訪問10.0.0.0 網段的路由條目
ip route add 10.0.0.0/8 via 172.0.0.10 dev eth0
#再次使用lab1 訪問 lab4 的172.0.0.20
#再次使用lab1 訪問 lab4 的192.0.0.10
解析:也是能訪問的,因為根據路由條目linux內核的轉發功能以及可以隨意轉發數據了
2、測試lab4訪問lab1
#那么同時lab4也能訪問10.0.0.0網段的地址了
進行優化
當我們添加路由都是臨時生效,重啟主機或網絡服務都會失效,因此可以將路由配置寫入配置文件
lab1設置:
1、設置路由配置
cd /etc/sysconfig/network-scripts/ #切換到網絡腳步目錄 vim route-eth0 #創建并編輯文件
2、再次啟動服務,測試是否讀取配置文件的數據來設置
解析:這里顯示0.0.0.0表示所有網段,這里了表示讀取配置以及成功。
lab2設置:
1、設置路由配置
2、設置ip轉發永久生效
當然還有修改的linux系統內核參數,這里要到/etc/sysctl.conf文件去修改
#將 ip_forward = 這里的值設置為1表示開啟,默認為0表示關閉
vim /etc/sysctl.conf
#再修改保存后,并不能直接生效,需要使用命令來重讀系統參數配置文件
sysctl -p
lab4配置:
1、lab4路由配置
注意:設置后當然也去修改其系統下的/etc/sysctl.conf文件中的ip_forward的value,這里過程和lab2配置一樣,可以參考lab2配置系統內核參數過程。
額外說明:這里我默認都關閉了防火墻功能,默認如果防火墻中有條目,如果再啟動ip_forward 轉發任然不能ping同,可以使用關閉服務或者清空防火墻,使用方法:
iptables -F #清空防火墻 service iptables stop #關閉防火墻服務
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。