我遇到了一个如下所述的特殊问题。
两个站点均配有基于 Linux(Raspbian Jessie Lite)的路由器,每个站点的网络如下所述
站点1
Raspberry Pi 路由器 1
eth0 192.168.1.101/24
eth1 192.168.230.1/24
Computer1 连接到上述路由器,地址为 192.168.230.103,网关为 192.168.230.1
站点2
Raspberry Pi 路由器 2
eth0 192.168.1.102/24
eth1 192.168.231.1/24
Computer2 连接到上述路由器,地址为 192.168.231.103,网关为 192.168.231.1
路由器 1 配置
路由器 1 上的 /etc/iproute2/rt_tables
。
。
。
1 eth0
2 eth1
路由器 1 上的 /etc/network/interfaces 文件
源目录 /etc/network/interfaces.d
自动档
iface lo inet 环回
允许热插拔 eth0
自动 eth0
iface eth0 inet 静态
硬件地址 ether b8:27:eb:89:27:4f
地址 192.168.1.101
网络掩码 255.255.255.0
网络 192.168.1.0
广播 192.168.1.255
启动 ip 路由添加 192.168.1.0/24 dev eth0 表 eth0
通过 192.168.1.101 dev eth0 表 eth0 添加默认 ip 路由
从 192.168.1.101/32 表 eth0 添加 IP 规则
将 IP 规则添加到 192.168.1.101/32 表 eth0
允许热插拔 eth1
自动 eth1
iface eth1 inet 静态
硬件地址 00:e0:4c:53:44:58
地址 192.168.230.1
网络掩码 255.255.255.0
网络 192.168.230.0
广播 192.168.230.255
上 ip 路由添加 192.168.230.0/24 dev eth1 表 eth1
从 192.168.230.1/32 表 eth1 添加 IP 规则
将 IP 规则添加到 192.168.230.1/32 表 eth1
我还以 root 用户身份通过以下命令应用了 IP 转发 echo 1 > /proc/sys/net/ipv4/ip_forward 另外,在 /etc/sysctl.conf 文件中,我设置了 net.ipv4.conf.all.forwading=1
路由器 2 的配置与设置了相应地址的配置完全相同。实际上,设置如下:
计算机 1<------>Raspberry 路由器 1<------->Raspberry 路由器 2<-------> 计算机 2 配置是一个简单的实验室设置,没有互联网和 NAT 问题 从计算机 1,我可以 ping 通路由器 1 接口 192.168.230.1(没有问题)和 192.168.1.101,并且可以 ping 通路由器 2 接口 192.168.1.102。但我无法 ping 通路由器 2 的 LAN 侧接口 192.168.231.1,显然,我无法 ping 通位于 192.168.230.103 的计算机 2。计算机 2 也出现同样的问题。两台计算机都运行 Ubuntu 16.04 LTS。
我也尝试在每个路由器上添加路由(下面指定了路由器 1 的路由)
路由 ip 添加 -net 192.168.1.0 网络掩码 255.255.255.0 eth0
路由 ip 添加 -net 192.168.230.0 网络掩码 255.255.255.0 eth1
路由 ip 添加 -net 192.168.231.0 网络掩码 255.255.255.0 eth0
但结果是一样的。有人能给我提供同样的工作配置吗?
提前致谢并致以问候
答案1
您的路由缺少网关。路由器不知道如何到达另一个路由器的 LAN 网络。像您那样仅指定设备是不够的,因为有 253 个可能的网关可以到达另一个 LAN。
尝试在路由器 1 上设置如下路由:
route add -net 192.168.231.0 netmask 255.255.255.0 gw 192.168.1.102 dev eth0
在路由器 2 上:
route add -net 192.168.230.0 netmask 255.255.255.0 gw 192.168.1.101 dev eth0