Linux

多個子網之間的路由

  • December 3, 2021

假設我想創建一個包含 4 個子網的內部網路。沒有中央路由器或交換機。我有一個“管理子網”可用於連結所有四個子網(192.168.0.0/24)上的網關。一般圖表如下所示:

10.0.1.0/24 <-> 10.0.2.0/24 <-> 10.0.3.0/24 <-> 10.0.4.0/24

換句話說,我在每個子網上配置了一個帶有 2 個介面的 linux 機器,一個 10.0.x.1 和 192.168.0.x。它們充當每個子網的網關設備。每個 10.x/24 子網將有多個主機。其他主機將只有 1 個可用作 10.0.xx 的介面

我希望每個主機都能夠在任何其他子網上 ping 其他主機。我的問題是首先:這可能嗎?其次,如果是這樣,我需要一些幫助來配置 iptables 和/或路由。我一直在對此進行試驗,但只能提出一種允許單向 ping 的解決方案(icmp 數據包只是一個範例,我最終希望主機之間具有完整的網路功能,例如 ssh、telnet、ftp 等) .

好的,所以您有五個網路10.0.1.0/2410.0.2.0/24、和10.0.3.0/24,以及它們之間的四個盒子路由。假設路由框有地址、、和。10.0.4.0/24``192.168.0.0/24``10.0.1.1/192.168.0.1``10.0.2.1/192.168.0.2``10.0.3.1/192.168.0.3``10.0.4.1/192.168.0.4

您需要10.0.x.0/24在每個路由器盒上添加靜態路由到其他網路,使用類似這樣的命令(已編輯!):

# on the 10.0.1.1 box
ip route add 10.0.2.0/24 via 192.168.0.2
ip route add 10.0.3.0/24 via 192.168.0.3
ip route add 10.0.4.0/24 via 192.168.0.4

以及其他路由器盒子上的相應路由。在只有一個介面的非路由盒子上,設置預設路由指向10.0.x.1。當然,您還必須在所有介面上添加靜態地址和網路遮罩。

另請注意,linux 預設情況下不用作路由器,您需要啟用數據包轉發:

echo 1 > /proc/sys/net/ipv4/ip_forward

上面的ip命令不會使設置持久化,如何做到這一點取決於分佈。

正如我所說,我沒有對此進行測試,並且可能忘記了一些東西。

引用自:https://unix.stackexchange.com/questions/311752