gre*_*ine 11 linux networking routing iptables subnets
假设我想创建一个具有 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
Run Code Online (Sandbox Code Playgroud)
换句话说,我在每个子网上配置了一个 linux box,有 2 个接口,一个 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
Run Code Online (Sandbox Code Playgroud)
以及其他路由器盒上的相应路由。在只有一个接口的非路由框上,将默认路由设置为指向10.0.x.1
。当然,您还必须在所有接口上添加静态地址和网络掩码。
另请注意,默认情况下 linux 不用作路由器,您需要使用以下命令启用数据包转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
ip
上面的命令不会使设置持久化,如何做到这一点取决于发行版。
正如我所说,我没有测试过这个,可能忘记了一些东西。
归档时间: |
|
查看次数: |
24647 次 |
最近记录: |