linux-路由表修改,关联 route table, netstat

1
netstat -rn
  • 添加默认路由
1
route add default gw 192.168.0.1
  • 添加路由
1
route -p add -net network-address -gateway gateway-address

-p 表示永久有效,重启后,也不失效。

或者,

1
2
ip route add 192.168.0.0/24 via 192.168.0.1
ip route add 192.168.1.1 dev eth0
  • 删除路由
1
2
3
4
route del -net 192.168.0.0/24 gw 192.168.0.1

#或者,
ip route del 192.168.0.0/24 via 192.168.0.1
  • 自定义的静态路由写到文件里,重启系统后生效

    vi /etc/sysconfig/static-routes 默认不存在此文件,需要手动创建

    route add -net 11.1.1.0 netmask 255.255.255.0 gw 11.1.1.1
    就加入如下内容

    1
      any net 11.1.1.0 netmask 255.255.255.0 gw 11.1.1.1
    

    生效的原理在于 网络初始脚本 /etc/rc.d/init.d/network 中包含了相应代码:

    1
    2
    3
    4
    5
    6
      # Add non interface-specific static-routes.
      if [ -f /etc/sysconfig/static-routes ]; then
        grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
        /sbin/route add -$args
        done
      fi
    

实例

1
2
3
4
Linux1          eth0 10.0.0.128
Linux2 router1  eth0 10.0.0.129     eth1 192.168.1.129
Linux3 router2  eth0 192.168.1.130  eth1 192.168.2.130
Linux4          eth0 192.168.2.131
  1. Linux1和Linux3可以相互ping通
    Linux1:route add –net 192.168.1.0/24 gw 10.0.0.129 (从1到3)
    Linux3:route add –net 10.0.0.0/24 gw 192.168.1.129 (从3到1)

  2. Linux2和Linux4可以相互ping通
    Linux4:route add –net 192.168.1.0/24 gw 192.168.2.130 (从4到2)
    Linux2:route add –net 192.168.2.0/24 gw 192.168.1.130 (从2到4)

  3. Linux1、Linux2、Linux3、Linux4之间可以互相通信
    Linux1:route add –net 192.168.2.0/24 gw 10.0.0.129 (从1到4)
    Linux4:route add –net 10.0.0.0/24 gw 192.168.2.130 (从4到1)

  4. Linux2和Linux3这两台机器则需要开启内核转发功能

    1
     echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
    

    sysctl –p 载入 sysctl 配置文件

  • 永久生效的方法

    • 利用route-eth0文件

      vi /etc/sysconfig/network-scripts/route-eth0 默认不存在此文件,需要手动创建

      加入如下内容

      1
      2
        192.168.1.0/24 via 10.0.0.129
        192.168.2.0/24 via 10.0.0.129
      

    有两块网卡时,配置该条路由的原则是网卡所在网段为该路由出口
    写到配置里,重启网络服务和重启系统都会生效

    • 利用static-route文件

      vi /etc/sysconfig/static-routes 默认不存在此文件,需要手动创建

      加入如下内容

      1
      2
        any net 192.168.1.0/24 gw 10.0.0.129
        any net 192.168.2.0/24 gw 10.0.0.129
      

      写到配置里,重启网络服务和重启系统都会生效

    • 利用rc.local文件

      vi /etc/rc.local

      加入如下内容

      1
      2
        route add –net 192.168.1.0/24 gw 10.0.0.129
        route add –net 192.168.2.0/24 gw 10.0.0.129
      

      写到配置里,重启重启系统会生效

route 添加静态路由常用参数

add 增加路由

del 删除路由

-net 设置到某个网段的路由

-host 设置到某台主机的路由

gw 出口网关 IP地址

dev 出口网关 物理设备名