多個子網之間的路由
假設我想創建一個包含 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/24
、10.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
命令不會使設置持久化,如何做到這一點取決於分佈。正如我所說,我沒有對此進行測試,並且可能忘記了一些東西。