我有一个系统,我得到零星的路由问题。 当查看路由表时,我得到以下内容:
localnet static.xx.xx.x 255.255.255.192 UG 0 0 0 eth0 localnet * 255.255.255.192 U 0 0 0 eth0
第一个是正确的,因为“static.xx.xx.x”是本地网的网关。 出于安全原因,本地networking只能通过此网关到达。
什么是“路线删除…”删除第二条路线正确的语法? 它期望我在命令中指定一个GW。
这条路线在哪里设置? 在/ etc / network / interfaces中,我在启动时设置了正确的路由。
感谢您对此的意见!
编辑:输出“route -n”作为要求:
root@lb01:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 aa.b.10.214 0.0.0.0 UG 100 0 0 eth0 aa.b.10.192 aa.b.10.193 255.255.255.192 UG 0 0 0 eth0 aa.b.10.192 0.0.0.0 255.255.255.192 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
如果你在子网上有一个IP地址,我认为你的意思是通过本地networking,那么本质上你也有一个路由,因为你有一个接口。 您不能通过网关将所有stream量引导到该networking,因为网关也将位于该子网上,并且您需要有到达网关的路由。
虽然这是绝对糟糕的networking架构,但您应该能够使用IP地址和/ 32的子networking来设置接口。 然后,在该接口上为网关添加一个静态/ 32路由,为您的networking添加一个静态/ 26路由:
ip addr add 192.0.2.40/32 dev eth0 ip route add 192.0.2.1/32 dev eth0 ip route add 192.0.2.0/26 via 192.0.2.1 dev eth0
当然,你必须这样做,没有任何IP地址或接口上configuration的路由。 我现在不记得debian / etc / network / interfaces文件的语法,但configuration的方式应该是明显的。
当然,这样做的问题是该networking上的其他主机不知道通过该网关向您的主机发送stream量,因为它们在链路上也具有192.0.2.0/26
的路由。 这就是为什么我们使用不同的子网来通过路由器进行通信的主机。 既然你有路由器,为这个特殊的主机build立一个/ 30子网,然后用它来代替。
为了参考,不要使用net-tools之类的东西,比如route
和ifconfig
; 他们是古老的,有很多奇怪的东西混淆他们。 改用iproute2。 iproute2命令删除一个路由只是删除它,尽可能清楚地指定路由:
ip route del 192.0.2.0/26 dev eth0
它可能会让你这样做,或者它可能不会。 当然,这样做后,如果成功,您将不会在该主机上有任何networking访问权限。
请提供route -n
的输出。
编辑:
ip route del aa.b.10.192/26 via 0.0.0.0 dev eth0
应该做的伎俩,其中aa
和b
是从您的路由表中各自的八位字节。