Linux命令 ip route


原文链接: Linux命令 ip route

Linux中增加软路由的两种方法

第一种: route

route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0
/* 增加一条网络172.16.6.0/24 经过172.16.2.254 eth0 /
/
-net增加网络 -host增加主机 netmask 子网掩码 gw 网关 dev 装置,设备,这里是你的网卡名/
route del gw 172.16.2.254 /
删除默认网关172.16.2.254 /
route del -net 172.16.86.0/24 /
删除默认网络172.16.86.0 /
route /
显示当前路由表 */
常用的是这种方式,但有时你在删除或一条软路由时会不起作用,会有什么提示:
SIOCADDRT: 無法接觸網路
所以这时用如下的这种方法就可以了
删除的方法:
添加路由:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0
删除路由:
route del -net 10.0.0.0 netmask 255.0.0.0 dev eth0
添加默认路由:
route add default gw 10.0.0.1
删除默认路由:
route del default gw 10.0.0.1
或者
route del default

第二种: ip route

更改默认路由

$ sudo ip route add default via 192.168.0.196

实现的功能和上面的一样
ip route get 10.42.0.47
ip route add 172.16.6.0/24 via 172.16.2.254 dev eth0
ip route del 172.16.6.0/24 dev eth0
ip route del gw 172.16.2.254
ip route

关于 src 属性:
当一个主机有多个网卡配置了多个 IP 的时候,对于它产生的网络包,可以在路由选择时设置源 IP 地址。比如:
ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12 (发到 78.22.45.0/24 网段的网络包,下一跳的路由器 IP 是 10.45.22.1,包的源IP地址设为10.45.22.12)。

要注意的是,src 选项只会影响该 host 上产生的网络包。如果是一个被路由的外来包,明显地它已经带有了一个源 IP 地址,这时候,src 参数的配置对它没有任何影响,除非你使用 NAT 来改变它。对 Neutron 来说,qrouter 和 qif namespace 中的路由表中的 src 都没有实际意义,因为它们只会处理外来的网络包。

关于路由的相关设定: ip route

这个项目当然就是路由的观察与设定啰!事实上, ip route 的功能几乎与 route 这个指令差不多,但是,他还可以进行额外的参数设计,例如 MTU 的规划等等,相当的强悍啊!

[root@www ~]# ip route show <==单纯的显示出路由的设定而已
[root@www ~]# ip route [add|del] [IP或网域] [via gateway] [dev 装置]
选项与参数:
show :单纯的显示出路由表,也可以使用 list ;
add|del :增加 (add) 或删除 (del) 路由的意思。

IP或网域:可使用 192.168.50.0/24 之类的网域或者是单纯的 IP ;
via     :从那个 gateway 出去,不一定需要;
dev     :由那个装置连出去,这就需要了!
mtu     :可以额外的设定 MTU 的数值喔!

范例一:显示出目前的路由资料

[root@www ~]# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.254 dev eth0

如上表所示,最简单的功能就是显示出目前的路由信息,其实跟 route 这个指令相同啦! 指示必须要注意几个小东西:

proto:此路由的路由协议,主要有 redirect, kernel, boot, static, ra 等, 其中 kernel 指的是直接由核心判断自动设定。
scope:路由的范围,主要是 link ,亦即是与本装置有关的直接联机。

再来看一下如何进行路由的增加与删除吧!

范例二:增加路由,主要是本机直接可沟通的网域

[root@www ~]# ip route add 192.168.5.0/24 dev eth0

针对本机直接沟通的网域设定好路由,不需要透过外部的路由器

[root@www ~]# ip route show
192.168.5.0/24 dev eth0 scope link
....(以下省略)....

范例三:增加可以通往外部的路由,需透过 router 喔!

[root@www ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
[root@www ~]# ip route show
192.168.5.0/24 dev eth0 scope link
....(其他省略)....
192.168.10.0/24 via 192.168.5.100 dev eth0

仔细看喔,因为我有 192.168.5.0/24 的路由存在 (我的网卡直接联系),

所以才可以将 192.168.10.0/24 的路由丢给 192.168.5.100

那部主机来帮忙传递喔!与之前提到的 route 指令是一样的限制!

范例四:增加预设路由

[root@www ~]# ip route add default via 192.168.1.254 dev eth0

那个 192.168.1.254 就是我的预设路由器 (gateway) 的意思啊! ^_^

真的记得,只要一个预设路由就 OK !

范例五:删除路由

[root@www ~]# ip route del 192.168.10.0/24
[root@www ~]# ip route del 192.168.5.0/24


linux下添加路由的方法:
  一:使用 route 命令添加
  使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
  //添加到主机的路由
  # route add –host 192.168.168.110 dev eth0
  # route add –host 192.168.168.119 gw 192.168.168.1
  //添加到网络的路由
  # route add –net IP netmask MASK eth0
  # route add –net IP netmask MASK gw IP
  # route add –net IP/24 eth1
  //添加默认网关
  # route add default gw IP
  //删除路由
  # route del –host 192.168.168.110 dev eth0
  二:在linux下设置永久路由的方法:
  1.在/etc/rc.local里添加
  方法:
  route add -net 192.168.3.0/24 dev eth0
  route add -net 192.168.2.0/24 gw 192.168.3.254
  2.在/etc/sysconfig/network里添加到末尾
  方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
  3./etc/sysconfig/static-router :
  any net x.x.x.x/24 gw y.y.y.y

`