我们可以用route命令来显示和操作本机的IP路由表。我们知道,要实现不同子网之间的通信,需要连接这些网络的路由器或者网关来实现ip数据包的转发。而路由,就是指当一个IP数据包从来源主机送到目的主机,所要经过的网络路径.
我们来看看route命令的基本参数和用法,在处理一些网络故障时,这个工具可能会被用到.
*********************************
*@author : xiaoyi.lee
*********************************
1 命令格式
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
2 命令说明
Route命令是用于操作基于内核的ip路由表,主要作用是创建一个静态路由以实现IP数据包的转发。
当我们使用"add"或者"del"参数时,本机的路由表被修改.当然,如果只是想显示路由表当前的内容,直接输入route即可。
3 命令参数
-n 不解析名字,以数字形式显示
-v 显示详细的route信息
-c show more information
-F 显示发送信息
-C 显示路由Cache
-f 清除本机的路由表
-p 与 add 命令一起使用,可以使路由具有永久性。
add 添加一条新路由
del 删除一条路由
-net 目标地址是一个网络
-host 目标地址是一台主机
netmask 当添加一个网络路由时,需要使用网络掩码,子网掩码用于和网段IP做与运算,从而得知具体的网络IP
gw 路由数据包要通过的网关。注意:网关和本机处于同一个网络,而且还要本机能够联通到这个网关才能实现转发
metric 设置路由跳数,即tty数,每进过一个路由器,都会被减掉1.如果为0了,则这台router会丢弃这个IP包并回送一个 ICMP目标网络不可达的响应包,通知主机转发失败.
4 命令演示
演示1 查看本地路由表
root@lixiaoyi-dev:/home/lixiaoyi# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 192.168.10.1 0.0.0.0 UG 1024 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
192.168.10.0 * 255.255.255.0 U 0 0 0 eth0
简单说明:第一条时默认gateway,当要前往的IP不在本子网时,会查找路由表确定要通过哪一个端口发送数据包
演示2 添加一条路由,然后再删除它
root@lixiaoyi-dev:/home/lixiaoyi# route add -net 192.168.15.0 netmask 255.255.255.0 dev eth0
root@lixiaoyi-dev:/home/lixiaoyi# route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.10.1 0.0.0.0 UG 1024 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
root@lixiaoyi-dev:/home/lixiaoyi# route del -net 192.168.15.0 netmask 255.255.255.0
root@lixiaoyi-dev:/home/lixiaoyi# route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.10.1 0.0.0.0 UG 1024 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
演示3 如何屏蔽转发数据到一个指定的网络
root@lixiaoyi-dev:/home/lixiaoyi# route add -net 192.168.15.0 netmask 255.255.255.0reject
root@lixiaoyi-dev:/home/lixiaoyi# route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.10.1 0.0.0.0 UG 1024 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.15.0 - 255.255.255.0 ! 0 - 0-
可以看到最后面那一条路由记录已经失效了,显示为了!
演示4 删除和添加设置默认网关
如下面设置和删除默认网关192.168.1.1, 默认网关(0.0.0.0)就是在不知道往哪里转发数据包时,自动转向的这个地址,一般是带路由功能的设备. 命令的演示, 这里就不截图了,毕竟比较简单,如下:
root@lixiaoyi-dev:/home/lixiaoyi#route del default gw 192.168.1.1
root@lixiaoyi-dev:/home/lixiaoyi#route add default gw 192.168.1.1
演示5 如何永久保存修改的route配置信息
但是要注意的是,要想永久保存修改记录要使用配置文件才能做到.
在Linux中,有两个文件可以设定默认网关,如下:
(1)设置默认网关在整个系统中生效:
root@lixiaoyi-dev:/home/lixiaoyi# vim /etc/sysconfig/network
GATEWAY=XXX.XXX.XXX.XXX
(2)在网卡配置文件中设定默认网关:
root@lixiaoyi-dev:/home/lixiaoyi# vim /etc/sysconfig/network-scripts/ifg-xxx (xxx=如eth0)
GATEWAY=XXX.XXX.XXX.XXX
说明:当这两个文件中的GATEWAY(网关)值不同时,会以网卡配置文件(2)的GATEWAY为准。
(3) 当然我们还可以手动修改每一个网络route配置文件,来加入静态路由,文件位置如下:
/etc/sysconfig/network-scripts/route-eth0 #手动修改配置文件设定静态路由所存储的位置
/etc/sysconfig/networking/devices/route-eht0 #使用图形化工具配置的静态路由其配置文件所存放的位置
注意:如果你找不到这两个文件,说明你的主机目前还没有连接到多个网段
我们可以设置如下,比如设置为都转向192.168.0.1,IP后面的24表示采用24位子网掩码,即使用255.255.255.0
root@lixiaoyi-dev:/home/lixiaoyi#vi/etc/sysconfig/network-scripts /route-eth0
192.168.2.0/24 via 192.168.0.1
192.168.3.0/24 via 192.168.0.1
192.168.4.0/24 via 192.168.0.1
192.168.5.0/24 via 192.168.0.1
192.168.6.0/24 via 192.168.0.1
最后,再补充说明一下会在整个系统中生效的网络设置参数,我们可以查看 /etc/sysconfig/network这个文件,其中的4个参数会在整个Linux系统中生效
文件: /etc/sysconfig/network
1 NETWORKING = yes|no #定义是否提供网络功能,yes为提供,no为不提供
2 HOSTNAME = 主机名称 #修改后必须重启电脑
3 GATEWAY = 网关IP地址 #这个参数也可以在网卡配置文件中定义
4 NISDOMAIN = NIS服务器名称 #用户名验证服务器地址
另外,要修改dns服务器ip,找到文件: /etc/resolv.conf
vim打开它, 如添加: nameserver 202.96.133.250
再# service network restart ,重启网络服务即可
以上,是我自己关于route的一些基础知识的总结笔记, author: xiaoyi.lee