我有一个IP路由添加问题。 令人惊讶的是,我可以添加路线,然后改变它,但我不能直接添加它:
# ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101 RTNETLINK answers: No such process
但:
# ip route add 192.168.0.0/16 dev eth0 # ip route change 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
我的接口文件是:
iface lo inet loopback auto eth0 iface eth0 inet static address 178.xxx.xxx.xxx netmask 255.255.255.192 network 178.xxx.xxx.xxx broadcast 178.xxx.xxx.xxx gateway 178.xxx.xxx.xxx auto eth0:1 iface eth0:1 inet static address 192.168.1.101 netmask 255.255.0.0
我有点失落,我必须说。 我很好,添加然后改变,但不理解为什么它在两个步骤,而不是直接工作。 我一直在阅读手册页,没有理解。
更新与答案的帮助:
我现在有一个eth0和eth0:0的网关,但因为我想我的所有stream量,除了192.168.0.0/16被标记为来自我的178.xxx.xxx.xxx地址,我添加了一个路由规则。 也许有192.168.1.101 ip eth0 ,然后在eth0:0 178.xxx.xxx.xxx ip没有路由规则工作,但这里是:
auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 178.xxx.xxx.131 netmask 255.255.255.192 network 178.xxx.xxx.128 broadcast 178.xxx.xxx.191 gateway 178.xxx.xxx.190 up /sbin/ip route add default via 178.xxx.xxx.190 dev eth0 table 125 up /sbin/ip rule add from 178.xxx.xxx.128/26 table 125 post-down /sbin/ip route del default via 178.xxx.xxx.190 dev eth0 table 125 post-down /sbin/ip rule del from 178.xxx.xxx.128/26 table 125 auto eth0:0 iface eth0:0 inet static address 192.168.1.101 netmask 255.255.0.0 gateway 192.168.255.254
我也禁用了rp_filter :
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
谢谢你的帮助!
根据你的接口文件,你已经在networking192.168.0.0/16,所以你不应该需要一个网关到这个networking。
如果我调整你的IP设置的结果(我在192.168.x.0 / 24上):
$ sudo ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
我明白了
RTNETLINK回答:没有这样的过程
但
$ sudo ip route add 192.168.0.0/16 via 192.168.1.254 src 192.168.1.101
作品。 我怀疑这是因为192.168.255.254不在你的本地子网或已知路由上,所以你首先需要一个路由。
正如其他人已经声明你的IP在192.168.1.101/16的eth0:1上,这意味着你已经有了该子网的静态路由。 看起来你需要为该接口添加一个指向192.168.255.254的网关。
我知道这有点迟,但我也想澄清一下“路线”是什么。 你说 :
我希望除了192.168.0.0/16之外的所有stream量都被标记为来自我的178.xxx.xxx.xxx地址
route命令允许您根据目的地而不是源确定路线。 您需要根据您要使用的网关将您的服务configuration为使用IP。 正如Mathias Weidner所说的,你不需要网关,因为你是直接连接的(相同的子网=没有路由)