route 管理路由表
要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。
查看路由信息
route [-n/-ee]
观察用的参数:
-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示
显示信息说明
标题 | 说明 |
Destination | 目标网段或者主机 (本机的数据要发送的目的地:子网或主机),与Genmask组成一个网段 |
Gateway | 网关地址 (如果是默认网关,网关的地址必须和自己的主机上的其中一块网卡在同一子网),* 表示目标是本主机所属的网络,不需要路由 |
Genmask | 网络掩码(如果目标网络的的子网掩码为255.255.255.255,说明目标是一台主机;如果子网掩码为’0.0.0.0’ 说明该路由是默认路由) |
Flags | 标记; |
Metric | 路由距离,到达指定网络所需的中转数 |
Ref | 恒为0,路由项引用次数 |
Use | 此路由项被路由软件查找的次数 |
Iface | 该路由表项对应的输出接口,即eth0,eth1等网络接口名 |
查看参数说明
参数 | 说明 |
-c | 显示更多信息 |
-n | 不解析名字 |
-v | 显示详细的处理信息 |
-F | 显示发送信息 |
-C | 显示路由缓存 |
配置静态路由
命令
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
参数说明
参数 | 说明 |
add | 添加一条路由规则 |
del | 删除一条路由规则 |
-net | 目的地址是一个网络 |
-host | 目的地址是一个主机 |
target | 目的网络或主机 |
netmask | 目的地址的网络掩码 |
gw | 路由数据包通过的网关 |
dev | 为路由指定的网络接口 |
示例:
添加默认网关 为10.0.0.1
route add default gw 10.0.0.1
删除默认网关
route del default gw 10.0.0.1
添加到主机的路由
route add -host 192.168.10.2 dev eth3
删除到主机的路由
route del -host 192.168.10.2 dev eth3
添加到网络的路由
route add -net 192.168.55.0 netmask 255.255.255.0 eth3
删除到网络的路由
route del -net 192.168.55.0 netmask 255.255.255.0 eth3
设定指定的网段不可到达
route add -net 10.0.0.0 netmask 255.0.0.0 reject
route del -net 10.0.0.0 netmask 255.0.0.0 reject
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
若要向带有 255.255.0.0 子网掩码和 10.27.0.1 下一跃点地址的 10.41.0.0 目标中添加一个永久路由
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1
若要向带有 255.255.0.0 子网掩码、10.27.0.1 下一跃点地址且其成本值标为 7 的 10.41.0.0 目标中添加一个路由
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
若要删除以 10. 起始的 IP 路由表中的所有路由
route delete 10.*
若要将带有 10.100.0.0 目标和 255.255.0.0 子网掩码的下一跃点地址从 10.100.0.1 修改为 10.100.0.254
route change 10.100.0.0 mask 255.255.0.0 10.100.0.254
192.168.1.0网段(源头),192.168.1.1网关(途径)的某一服务器想连入172.16.1.0/24段(目的地),如何添加路由?
route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
在源头主机上执行上述命令设定,数据途径哪台主机,到达目的地网段
gw(途径主机的IP)的设定必须和源头主机IP必须在同一网段!!!
以上的配置只都是在命令行,临时生效,重启网络或机器后失效;
如果要永久生效必须写入到配置文件中:有3种方式
方法一:
vim /etc/sysconfig/static-routes #默认不存在此文件
加入如下内容:
any net 192.168.1.0/24 gw 192.168.1.1
方法二:
vim /etc/sysconfig/network-scripts/route-eth0 #默认不存在此文件
加入如下内容:
192.168.1.0/24 via 192.168.1.1
以上两种方式,重启网络服务和重启系统都会生效!
方法三:
vim /etc/rc.local
加入如下内容:
route add -net 192.168.1.0/24 gw 192.168.1.1
这种方式重启网络服务将会失效,但重启机器生效