首頁 > 軟體

Linux模擬網路路由環境簡單實現

2020-06-16 17:03:11
前言:網路路由不管是平常在家裡,還是在公司中,都是必需設定的,所以還是非常重要的,今天小編就給大家做個設定網路路由設定的小實驗,僅供大家參考。
 
一、首先,來簡單介紹一下網路路由。
1. 網路路由:將網路連線起來並將網路資訊導向其他網路上,通常網路資訊全自動尋找多個路由器,並選擇效率最高的路由。
 網路路由器,工作在OSI的第三層絡層,連線廣域網,外部網際網路,分隔廣播域,最重要的是它其中的路由表。
2. 路由表
(1)路由表:邏輯地址路徑問題,選擇路由表中到達目標最好的路徑轉發資料,由多個路由記錄組成
(2)路由表構成:由4項組成部分
① 目標網路的網路ID netid ,由此分為三種路由
  主機路由:主機地址
  網路路由:網路ID
  預設路由:未知地址
② 子網掩碼 netmask 
③.介面 interface,發往目標,從哪個介面發出去
④.閘道器 gateway:下一個路由器的臨近本路由器的介面的IP

 

二、查詢、新增、刪除路由記錄的幾個命令
 route(舊命令) 路由管理命令,沒儲存到組態檔中時,開機無效
route -n 檢視路由資訊
route add -net[/-host] IP/子網 gw gateway 新增網路[/主機]路由
  例:route add -net 10.1.0.0/16 gw 10.2.0.200
route add default gw gateway 新增預設路由
  例:route add default gw 10.2.0.200
或route add -net 0.0.0.0 netmask 0.0.0.0 gw gateway 新增預設路由
  例:route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.2.0.200
route del -net[/-host] IP/子網 刪除網路[/主機]路由
  例:route del  -net 10.1.0.0/16
route del default gw gateway刪除預設路由
 
② ip route(新命令)
ip route [show|list] 檢視路由資訊
ip route add 選項 via gateway 新增路由
  網路路由:NETWORK/MASK
  主機路由:IP
例:ip route add 192.168.0.0/24 via 172.16.0.1 加網路路由
  ip route add 192.168.1.13 via 172.16.0.1 加主機路由
  ip route add default via GW  加預設路由,用於路由的邊界處
   例:ip route add default via 172.16.0.1
ip route del TARGET 刪除路由
ip route flush [dev IFACE] [via PREFIX] 清空路由表
例:ip route flush dev eth0
 
③ /etc/sysconfig/network-scripts/route-介面(eth0)(系統預設沒有) route加的路由記錄的組態檔
• 注意:需service network restart 生效
• 兩種風格:不能混用
(a)TARGET via GW (多用)
如:10.0.0.0/8 via 172.16.0.1
(b)每三行定義一條路由 (少用)
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
 
④ netstat -nr  顯示核心路由表
 windows查詢路由表:route print
 
三、實驗:設定路由環境
• 實驗工具:4台虛擬機器(可以克隆虛擬機器來完成這個實驗,克隆後記得修改MAC地址)
A機器 R1路由器 R2路由器 B機器
• 實驗過程:
(1)構思路由環境
 

 

(2)準備工作:把4台機器“物理的連到一起”
① 根據上圖,我們需要分三個網段:VMnet11、VMnet12、VMnet13
 

② 分別把A機器、R1路由器兩個介面、R2路由器兩個介面、B機器放到對應的網段:
A—>VMnet11
R1的eth0介面—>VMnet11 
R1的eth1介面—>VMnet12 
R2的eth0介面—>VMnet12
R2的eth1介面—>VMnet13
B—>VMnet13

 

(3)查詢介面名,若錯誤(不是我們習慣的eth0、eth1),修改。
① 為了標準化,把CentOS 7 改為傳統命名方式(eth0、eth1)(這一步可以不需要)
編輯 /boot/grub2/grub.cfg,在第一個linux16的行尾加上net.ifnames=0,重新啟動才有效
 
② vim /etc/udev/rules.d/70-persistent-net.rules  編輯網路介面組態檔
③ 修改完組態檔一般都不會生效,所以需要下面的操作
ethtool -i ethX     查詢介面對應的網絡卡驅動名,第一行就是對應的網絡卡名
rmmod 網絡卡名    解除安裝對應的網絡卡
modprobe 網絡卡名     重新啟動網絡卡,介面名就改好了
 
(4)新增需要的IP地址,注意:A、B兩個機器需要設定閘道器,兩個路由R1、R2不需要設定閘道器。
1.centos 6 中修改IP方法
vim /etc/sysconfig/network-scripts/ifcfg-ethX  修改網絡卡組態檔
重新啟動服務 service network restart 生效
 
2.centos 7 中修改IP方法
① 當然也可以修改組態檔,不推薦,因為7中有很好的命令
② nmcli 命令,直接生效,因為該命令用法太多,就不詳講了,大家可以根據下面的命令把IP地址設定好
nmcli connection add type ethernet con-name eth0 ifname eth0 ipv4.method manual ipv4.addresses 6.1.0.100/16 ipv4.gateway 6.1.0.200  
新增eth0的ip為6.1.0.100/16,閘道器為6.1.0.200
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 6.1.0.100 ipv4.gateway 6.1.0.200
修改eth0的ip為6.1.0.100/16,閘道器為6.1.0.200
nmcli connection up eth0  啟用eth0
 
(5)新增兩個路由器的路由記錄,可以用上面介紹的命令,根據(1)的構思表新增
R1:route add default gw 6.2.0.201
R2:route add default gw 6.2.0.200
route -n 查詢一下
 
(6)開啟兩個路由的路由功能,因為是用linux虛擬機器作為路由器,所以需開啟路由功能。
echo 1 > /proc/sys/net/ipv4/ip_forward
 
(7)關閉防火牆
iptables -vnL 檢視防火牆策略
centos6
chkconfig iptables off 設定開機不開啟防火牆
servcie iptables stop 關閉防火牆
 
centos7
systemctl disable firewalld 設定開機不開啟防火牆
systemctl stop firewalld 關閉防火牆
 
(8)實驗檢測
 用ping 命令檢測,各段都能ping通。
A—>VMnet12:ping 6.2.0.201
A—>VMnet13:ping 6.3.0.100
 
四、路由協定
小型網路的設定,可以手動自己設定;大型網路,可以通過路由協定自動生成
路由協定:R2P(路近,經過路由器越少) OSPF(速度快,綜合考慮) BGP EIERP(思科專有)
 
結語:好了,小實驗做完了,雖然實驗很簡陋,但是其中的原理還是很值得學習的,當然,做實驗的過程中會有很多各種各樣的錯誤,有什麼搞不定,可以評論一起討論~

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-11/148272.htm


IT145.com E-mail:sddin#qq.com