今天來探討一下:如何模擬不同網段的之間的 ip 連接的路由配置
讓我們開門見山:
首先做個規劃,如圖所示

文本格式看起來可能不夠清楚,我們用圖來表示
(需要宣告的是,下圖是我國著名畫家的作品,非常灑脫,極具后現代風格)

上圖描述的是設定四臺主機:其中將兩臺設定成主機AB,將兩臺設定成路由器R1.R2,然后讓AB兩臺主機的網路進行ip連接
第一設定主機A
A: 10.0.0.123/24 Gw: 10.0.0.200
第一步:設定主機名:
執行 hostnamectl set-hostname clientA.magedu.org
設定完成后重啟,結果如圖所示:

按照規劃A作為主機,就是net8網路不需要更改,只需要更改地址
cd /etc/sysconfig/network-scripts/

執行vi ifcfg-eth0進入修改模式

修改后結果如下圖:(需要注意的是,由于A當做主機使用,所以一定要設定網路層以上實作網路互連的網關)

需要注意的是
到這一步 centos6和7的系統執行 service network restart 進行重啟
而我在這里使用的是4個centos8的系統,執行:nmcli connection reload

啟動網卡 執行命令:nmcli connection up eth0 顯示成功

至此主機A的地址;設定完成,
重啟后可以看到主機名變成clientA ip地址和網關都設定好了

第二步,將第二臺主機設定成R1
R1兩邊分別是net8和net1網路 根據我們開頭的規劃,R1的兩個介面ip分別如下
eth0: 10.0.0.200/24 net8
eth1: 192.168.10.200/24 net1
查看設定這里,虛擬機目前已經有一塊net8的網卡了,需要再加一塊net0的網卡
添加步驟1:

添加步驟:2:

添加步驟3:按規劃,這塊net0 要選擇僅主機(net1)模式

更改好以后啟動虛擬機,目前ip還是原來的ip 登錄Xshell后首先更改主機名:
hostnamectl set-hostname r1.magedu.org
重啟后查看主機已經改成 r1

接著來更改網卡,目前r1有兩塊網卡
但是查看ip a 只能看到一塊
切換cd /etc/sysconfig/network-scripts/ 后 用ls查看只有eth0
按計劃,首先更改eth0
(需要注意的是,R1作為路由器是不需要網關以及DNS的,只需要更改IP為10.0.0.200)

執行cp ifcfg-eth0 ifcfg-eth1 后再次用ls 可以看到 eth0和 eth1
執行vi ifcfg-eth1,保留以下選項

然后執行nmcli connection reload
查看網卡狀態是否正常nmcli connection

再執行nmcli connection up eth0啟動網卡

查看ip a

至此R1設定完成
更改R1可能會遇到的問題
由于eth0和eth1都在同一個網段,所以要確保虛擬機上的忘掉都是在10網段上,否則會出現修改后無法應用的問題

第三步:設定R2
eth0: 192.168.10.201/24
eth1: 172.18.0.299/24
兩塊網卡,一塊是net1 一塊是net0
第一步:添加一塊網卡設定為橋接模式,而原來的網卡設定為僅主機模式

第二步,更改主機名 hostnamectl set-hostname r2.magedu.org

第三步:更改網卡配置
切換cd /etc/sysconfig/network-scripts/后 如果只有eth0
可以直接拷貝, cp ifcfg-eth0 ifcfg-eth1

首先更改eth0 : 192.168.10.201/24

然后更改eth1: 172.18.0.200

檢查eht0和1網卡設定成功


查看ip a 設定完成

第四步:設定主機B
eth0: 172.18.0.123/24
GW: 172.18.0.200
第一步,設定主機:hostnamectl set-hostname clientB.magedu.org

第二步:直接更改組態檔
切換進 cd /etc/sysconfig/network-scripts/
進入編輯模式vim ifcfg-eth0 (特別要注意,B是作為主機的,所以一定要有網關)

檢查是否配置成功

然后重啟:
更改連接模式是橋接

在這一步,如果會出現Xshell無法登錄root 原因很有可能由于主機B是設定橋接模式,需要連接網路,但是橋接模式沒有設定

所以在下圖這個界面:這里的橋接模式需要選擇為自動:
選擇橋接模式為自動后 ping一下ip是否能通,也可以arp -a查看一下ip是否和其他主機沖突
如圖我在操作的時候 115這個ip是沒人用的
建議大家在操作之前直接在win界面 win+r 運行arp -a查看自己設定的IP有沒有人在用

B機器配置完成

至此 兩臺主機和兩臺路由配置完成
配置路由
兩臺主機和兩臺路由器設定完以后,開始配置路由
我們可以看到路由R1連接了net8和net1兩個網段 直連路由自動生成,不需要手動添加

對于R1來說,不直連的是net0 需要添加net0的路由,在R1上添加路由表,可以用route命令
執行 route add -net 172.18.0.0/24 gw 192.168.10.201 dev eth1
其中172.18.0.0是net0的網段: 執行后查看如圖,已添加:

設定第二個路由R2:需要添加net8的路由
執行:route add -net 10.0.0.0/24 gw 192.168.10.200 dev eth0
需要說明的是和R2相連的是net1和net0網路,唯一沒有相連的是net8,而net8所在的網路,就是A機器所在的網路 而A的網路是:10.0.0.0/24 所以添加A的網路
對于R2來說 從左邊的介面發出才能到達A機器,R2左邊介面是eth0.
關于網關:下一個路由器臨近R2的介面,就是網關
而臨近R2的介面是eth1 也就是192.168.10.200
執行命令后查看,到達機器A也就是10網段的路由就有了,

配置完成后,開始檢查相鄰的兩臺機器是否可以相連
運行ping ip
在機器A檢查 R1兩邊介面 確認身份可以連通:

在路由R1 檢查和機器A 以及路由R2左邊介面是否連通,如圖:

在路由R2檢查臨近的兩個介面(路由R1右邊介面和B的介面)

目前相鄰兩個設備可以ping通,
在這一步,若是在機器A直接ping機器B,是ping不通的

機器A和路由R1是相同的,我們可以獲取一個資料包查看,資料是否傳送
資料從R1的左邊介面eth0接收,從右邊的eth1發出
執行tcpdump -i eth0 -nn icmp
可以看到有資料從10.0.0.123發出到172.18.0.115

再tcpdump -i eth1 -nn icmp查看,發現資料并沒有發出去
由此可以得知,我們缺少了一個路由轉發ip_forward的功能
原因是,真的路由器具有此功能,而我們實驗中是將主機設定成了路由器,linux主機有個功能,不是給自己的資料,會拋棄該資料,所以資料到R1后沒有傳出去
開啟路由轉發功能步驟
第一步,執行sysctl -a |grep ip_forward
圖片顯示,目前值為0, 0表示不轉發:

第二步:執行 vim /etc/sysctl.conf,在文本下方輸入net.ipv4.ip_forward = 1

第三步:執行命令 sysctl -p 使其生效 再次查看 已經設為 1

而同樣的操作,在路由R2上也需要操作

操作后發現,
機器A可以ping通機器B了

而機器B也可以ping通機器A了

至此操作設定全部完成,
謝謝觀賞

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277772.html
標籤:其他
下一篇:Linux入門筆記
