ip route 可以用于查看网络的路由信息,并设置路由表

  • 命令参数详解
route [-nee]
route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

观察的参数:
   -n  :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
   -ee :使用更详细的资讯来显示
增加 (add) 与删除 (del) 路由的相关参数:
   -net    :表示后面接的路由为一个网域;
   -host   :表示后面接的为连接到单部主机的路由;
   netmask :与网域有关,可以设定 netmask 决定网域的大小;
   gw      :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
   dev     :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等
  • 输出参数详解
格式:route -n
格式:/sbin/route -n
用于打印路由表,加上-n参数就是在输出的信息中不打印主机名而直接打印ip地址


格式:route add default gw {IP-ADDRESS} {INTERFACE-NAME}
用于设置默认路由,其中,
参数{IP-ADDRESS): 用于指定路由器(网关)的IP地址;
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。使用/sbin/ifconfig -a可以显示所有接口信息。

例:route add default gw mango

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
添加到指定网络的路由规则,其中
参数{NETWORK-ADDRESS}: 用于指定网络地址
参数{NETMASK}: 用于指定子网掩码
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。

例1:route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
例2:route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} reject
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。

例:route add -net 10.0.0.0 netmask 255.0.0.0 reject

格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject
用于删除路由设置。参数指定的方式与route add相似。

  • 打印显示说明
第一行表示主机所在网络的地址,若数据传送目标是在本局域网内通信,则可直接通过eth0转发数据包;

第四行表示数据传送目的是访问Internet,则由接口eth0,将数据包发送到网关

其中Flags为路由标志,标记当前网络节点的状态。
Flags标志说明:
U Up表示此路由当前为启动状态
H Host,表示此网关为一主机,(IP) 而非网域; 
G Gateway,表示此网关为一路由器,需要透过外部的主机 (gateway) 来转递封包; 
R Reinstate Route,使用动态路由重新初始化的路由
D Dynamically,此路由是动态性地写入
M Modified,此路由是由路由守护程序或导向器动态修改
! 表示此路由当前为关闭状态
A (installed by addrconf)
C (cache entry)
  • route n 显示所有路由
[root@ceph-104 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.229.37.1     0.0.0.0         UG    101    0        0 enp2s1
10.229.37.0     0.0.0.0         255.255.255.0   U     101    0        0 enp2s1
111.192.168.0   0.0.0.0         255.255.255.0   U     100    0        0 enp2s3
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

显示结果在前的路由优先使用
  • ip route show 查看路由信息
[root@ceph-104 ~]# ip route show
default via 10.229.37.1 dev enp2s1 proto static metric 101
10.229.37.0/24 dev enp2s1 proto kernel scope link src 10.229.37.231 metric 101
111.192.168.0/24 dev enp2s3 proto kernel scope link src 111.192.168.104 metric 100
  • ip route get ip 查看到达该ip地址的路由信息
[root@ceph-104 ~]# ip route get 111.192.168.101
111.192.168.101 dev enp2s3 src 111.192.168.104 uid 0
    cache
[root@ceph-104 ~]#
  • ip route add/delete
# 添加到主机的路由
[root@ceph-104 ~]# route add -host 目的IP dev 选择经过的网卡
[root@ceph-104 ~]# route add -host 111.192.168.101 dev enp2s3
[root@ceph-104 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.229.37.1     0.0.0.0         UG    101    0        0 enp2s1
10.229.37.0     0.0.0.0         255.255.255.0   U     101    0        0 enp2s1
111.192.168.0   0.0.0.0         255.255.255.0   U     100    0        0 enp2s3
111.192.168.101 0.0.0.0         255.255.255.255 UH    0      0        0 enp2s3  # 添加到主机的路由(经过指定网卡)
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

[root@ceph-104 ~]# route add -host 目的IP gw 经过的网关
[root@ceph-104 ~]# route add -host 111.192.168.101 gw 111.192.168.1
[root@ceph-104 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.229.37.1     0.0.0.0         UG    101    0        0 enp2s1
10.229.37.0     0.0.0.0         255.255.255.0   U     101    0        0 enp2s1
111.192.168.0   0.0.0.0         255.255.255.0   U     100    0        0 enp2s3
111.192.168.101 111.192.168.1   255.255.255.255 UGH   0      0        0 enp2s3 # 添加到主机的路由(经过网关)
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
#删除路由
[root@ceph-104 ~]# route del -host 111.192.168.101   删除一条匹配的路由
route del -host 111.192.168.101 gw 111.192.168.1     删除匹配的路由
[root@ceph-104 ~]# route del -host 111.192.168.101 dev enp2s3 删除匹配的路由
# 添加到主机的路由


#添加到某网段的路由
# 增加一条路由信息(发送到10.229.37.0网段的通信包全都要经过10.229.37.1这个网关)
[root@ceph-104 ~]# route add -net 10.229.37.0 netmask 255.255.255.0 gw 10.229.37.1
[root@ceph-104 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.229.37.1     0.0.0.0         UG    101    0        0 enp2s1
10.229.37.0     10.229.37.1     255.255.255.0   UG    0      0        0 enp2s1	# 新增的路由信息
10.229.37.0     0.0.0.0         255.255.255.0   U     101    0        0 enp2s1
111.192.168.0   0.0.0.0         255.255.255.0   U     100    0        0 enp2s3
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

# 删除一条路由信息
[root@ceph-104 ~]# route del -net 10.229.37.0 netmask 255.255.255.0
[root@ceph-104 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.229.37.1     0.0.0.0         UG    101    0        0 enp2s1
10.229.37.0     0.0.0.0         255.255.255.0   U     101    0        0 enp2s1
111.192.168.0   0.0.0.0         255.255.255.0   U     100    0        0 enp2s3
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

#添加到某网段的路由

设置永久路由的方法

    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
    1. 在/etc/sysconfig/network里添加到末尾
GATEWAY=gw-ip` 或者 `GATEWAY=gw-dev
    1. /etc/sysconfig/static-router:
# 设置静态路由
any net x.x.x.x/24 gw y.y.y.y