【linux】route使用小结

检查当前路由情况

route -n或者netstat -r

当前路由

当前路由

DestinationGenmask表明了某个IP应该走哪一条路由。所以Desination这里是一个网段地址,可以看到后面是0. 只要是mask部分有有效的值就可以了。

例如,baidu.com【220.181.38.148】
这里匹配的就是第一条default路由规则,它会被路由到172.16.98.10这个网关地址, 从eth0物理网口出去。

每一个网口(网卡)有自己的内网网络,第二行表示eth0是172.16.95网段的;第三行表示eth1是192.168.8.0网段的。 gateway是0.0.0.0表示不再转发消息了。

Flags

  • U 已经启动的
  • G 应使用制定的网关
  • D 动态添加
  • M 修改的
  • R 恢复的

添加/删除路由

Add
route add -net 172.16.162.41 netmask 255.255.0.0 gw 172.16.98.10 metric 0 dev eth1
Remove
route del -net 172.16.162.41 netmask 255.255.0.0

添加的原则

路由添加是树状结构,本质上是在这颗路由树上做添加,所以新增加的路由规则必须满足如下两个条件:

  1. 新增的路由目的地址的网段要表述准确
  2. 新增的路由跳转网关必须可以访问到已经存在的树的节点
    树状结构
    具体以下面的常见问题来举例

常见问题

【问题1】route: netmask and route address conflict

这个问题一般是因为DestinationGenmask没有正确表示一个有效的网段。
比如下面的命令,
conflict样例
因为Destination 172.16.126.110 的有效部分超过了掩码 255.255.255.0部分,所以报netmask and route address conflict
需要把172.16.126.110改为172.16.126.0即可。

【问题2】route: SIOCADDRT: Network is unreachable

如果gw的地址在树上任何一个节点都找不到,那么该路由肯定不可达
如何eth口不支持该网关地址的路由,那么该路由也不可达
unreachable

这里的192.168.0.1在已存在的路由中(eth1 是192.168.8.0/24),所以这里走不通。
如果改为192.168.8.1,就可以成功设置。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值