我有两台运行Debian
Linux的服务器:
Server 01 with private IP 10.0.10.10 on eth0
Server 02 with private IP 10.10.10.10 on eth0, and also subnet 100.0.0.0/10 on tun-test
从Server 01
我可以 pingServer 02
通10.10.10.10
。但我还希望能够 pingServer 02
通子网内的任何 IP 地址100.0.0.0/10
。
我尝试添加以下内容Server 01
:
ip route add 100.0.0.0/10 via 10.10.10.10 dev eth0
但正在得到RTNETLINK answers: Network is unreachable
。
Server 02
可以 pingServer 01
通10.0.10.10
。
服务器 不在 同一VLAN
.
该怎么办?
答案1
如果我理解正确的话,您正在尝试通过 10.10.10.10 将流量从 10.0.10.10 路由到 100.0.0.0/10。您添加的路由看起来正确,但 Debian 上的 Linux 网络堆栈默认不允许在同一服务器上的网络之间进行遍历。您可以通过运行检查此功能是否已打开cat /proc/sys/net/ipv4/ip_forward
如果返回 0,则不允许 IP 转发。要允许它运行echo 1 > /proc/sys/net/ipv4/ip_forward
并尝试再次路由。如果您希望此行为在重启后继续存在,则需要添加net.ipv4.ip_forward=1
到 /etc/sysctl.conf
答案2
似乎解决了这个问题:
ip tunnel add tunnel mode ipip remote 10.10.10.10
ip addr add 10.1.1.1/24 dev tunnel
ifconfig tunnel up
ip route add 100.0.0.0/10 via 10.1.1.1