Linux系统运维--路由管理

在Linux系统中管理路由的方法有多种,本文主要介绍如何通过命令管理静态路由和策略路由

1.使用route在Linux系统中管理路由:

使用 route 命令,可以实现对Linux系统中路由信息的管理,route的命令格式:

route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

  • add : 添加一条路由规则

  • del : 删除一条路由规则

  • -net : 目的地址是一个网络

  • -host : 目的地址是一个主机

  • target : 目的网络或主机

  • netmask : 目的地址的网络掩码

  • gw : 路由数据包通过的网关

  • dev : 为路由指定的网络接口(可选)

  • If:指定网络接口

  • route 命令的输出项说明:

  • Destination目标网段或者主机
    Gateway网关地址,”*” 表示目标是本主机所属的网络,不需要路由
    Genmask网络掩码
    Flags标记。一些可能的标记如下:
    U — 路由是活动的
    H — 目标是一个主机
    G — 路由指向网关
    R — 恢复动态路由产生的表项
    D — 由路由的后台程序动态地安装
    M — 由路由的后台程序修改
    ! — 拒绝路由
    Metric路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
    Ref路由项引用次数(linux 内核中没有使用)
    Use此路由项被路由软件查找的次数
    Iface该路由表项对应的输出接口
    使用route管理路由的方法如下:
  • A、添加到主机的路由

  •  route add –host 192.168.1.10 dev eth0     #添加到主机192.168.1.10的路由,出口是网卡eth0

  •  route add –host 192.168.1.10 gw 192.168.1.1  ##添加到主机192.168.1.10的路由,出口是网关192.168.1.1
    B、添加到网络的路由
     route add –net 192.168.1.0  netmask 255.255.255.0  dev  eth0

  •  route add –net 192.168.1.0/24  dev  eth0

  •  route add –net 192.168.1.0  netmask 255.255.255.0  gw 192.168.1.1  
     route add –net 192.168.1.0/24  gw 192.168.1.1
    C、添加默认(网关\路由)
     route add default gw 192.168.1.1
    D、删除路由
     route del –host 192.168.1.10 dev eth0

  • route del –net 192.168.1.0/24 dev  eth0

  • route del –net 192.168.1.0/24 gw 192.168.1.1

在命令行使用route命令添加的路由,重启系统或者网卡后路由就失效

2.在Linux系统中添加永久路由:

示例1:

打开/etc/rc.local文件写入添加路由信息的命令:

vim   /etc/rc.local(添加到末尾,注意rc.local要有执行权限
语句: 
route add -net 192.168.3.0/24 dev eth0

route add -net 192.168.2.0/24 gw 192.168.2.254

示例2:

/etc/sysconfig/network 文件中写入默认网关:

 vim  /etc/sysconfig/network (添加到末尾)

语句:

GATEWAY=gw-ip 或者 GATEWAY=gw-dev

示例3:

/etc/sysconfig/static-routes (如果没有此文件,就手动创建一个)  文件中写入路由信息:

语句:

any net 192.168.3.0/24 gw 192.168.3.254

any net 10.250.228.128/24 dev eth1

注意:使用在rc.local中添加路由方法,会造成依赖于此路由的NFS服务无法开机自动挂载。因为按照linux的启动顺序,rc.local里面的内容是在linux所有服务都启动完毕后才被执行的,也就是说,这里面的命令是在NFS之后才被执行的,在NFS服务启动时服务器上的静态路由是没有被添加的,所以会导致NFS挂载不能成功。而static-routes文件是/etc/sysconfig/network(Centos7以下版本)脚本执行时调用的一个文件,在network脚本中的位置是:

 

从这段脚本可以看到,如果static-routes文件存在,就执行route命令,并将文件中的每行的内容,去掉首个字段,其余部分做为参数添加相应路由信息。这样的话,在系统启动时路由就自动添加上了,又因为network是在NFS服务前面启动,就不会出现NFS开机无法自动挂载的问题了。这样看来,如果需要添加静态路由,使用static-routes文件要比使用rc.local好,而且当改变了网络配置,需要重启network脚本的时候,相应的静态路由是可以自动添加上的,但如果使用rc.local的话,在重启network服务的时候,原本添加好的静态路由就消失了。

3.route和IP route的区别:

和route相比,ip的功能更强大,route命令只能在缺省的路由表中添加路由,无法对策略路由进行管理,当主机有多个网卡并绑定多个IP时,需要配置策略路由。

示例:多网卡绑定多个IP配置策略路由

在“/etc/iproute2/rt_tables”文件中增加两张路由表名称(net1和net2)和路由表优先级(252和251,优先级数值越小表示优先级越高)

vim  /etc/iproute2/rt_tables

# added for dual net
252     net1
251     net2

在/etc/rc.local中添加路由信息,以两张网卡(eth0和eth1)的IP地址分别为:192.168.1.23和192.168.2.4,网关地址分别为:192.168.1.1和192.168.2.1为例,需要添加的信息如下:

# Request IP address for eth1
dhclient eth1
# Add routes
ip route flush table net1
ip route add default via 192.168.1.1 dev eth0 src 192.168.1.23 table net1      #在net1中添加默认路由:源是1.23,网关是1.1,出口是eth0
ip rule add from 192.168.1.23 table net1                                       #从1.23来的数据包找表net1
 
ip route flush table net2
ip route add default via 192.168.2.1 dev eth1 src 192.168.2.4 table net2
ip rule add from 192.168.2.4 table net2

配置策略路由的方法(临时):

第一步:在/etc/iproute2/rt_tables文件中添加路由表并指定优先级

linux 系统中,用户可以自定义从 1-252个路由表,文件中默认已存在了4个路由表

0#表: 系统保留表
253#表: defulte table 没特别指定的默认路由都放在该表

254#表: main table  没指明路由表的所有路由放在该表

255#表: locale table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

第二步:添加路由信息

ip route add default via 192.168.120.1  dev eth1 table net1    #添加一条默认路由,下一跳是192.168.120.1出口是eth1

ip rule add  from 192.168.120.132 lookup  test 或者  ip rule add from 192.168.120.132 table  net1  

#从192.168.120.132过来的数据包查看test表的路由信息

添加完成后从192.168.120.132过来的流量都走eth1,出口是192.168.120.1

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值