1.写文章去了解某个命令完全是兴起,并没有下定决心去学哪一套课程,目前的状态仍然是犹豫中,废话不多说进入正文,九月二十七这天看到了route命令,发现对路由这个命令很陌生,陌生到根本不知道它是用来干什么的,更别说什么参数之类的,随即找了若干博客,可是看不太懂,他们或许自己明白了,言语表达能力不行,亦或是我的理解能力有问题?so,anyway!看到了老男孩在12年写的博客,写的很明白、很清晰,故写此博客。

2.先来三道题:

a.如何用命令行方式给linux机器添加一个默认网关,假设网关地址为10.0.0.254?

route add default gw 10.0.0.254

b.192.168.1.0网段, 192.168.1.1网关的某一服务器想连入172.16.1.0/24段,该如何添加路由?

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0

c.如何添加一条主机路由?

route add -host 192.168.2.13 dev eth2

3.缺省网关路由,第一道题考的就是这个,在linux里缺省就是默认意思,英文名--迪佛特(default),默认网关就是数据包不匹配任何设定的路由规则(或者是匹配不到),最后流经的地址关口。

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1
0.0.0.0 172.16.8.1 0.0.0.0 UG 0 0 0 eth1

第一行表示你所在的网段是172.16.8.0,若数据传送目标是在本局域网内通信,则可直接通过eth1转发数据包;

第四行表示数据传送目的是访问Internet,则由接口eth0,将数据包发送到网关172.16.8.1,route -n (-n 表示不解析名字,列出速度会比route 快),表示去任何地方(0.0.0.0),都发给10.0.0.254,因为是默认网关,所以放在了最后一条。路由也是有顺序的,如果不符合任何一条规则就交给默认网关处理;

route del default gw 172.16.8.1           ==>这个命令是删除默认的网关

route add default gw 172.16.8.1   ==>这个命令是添加默认的网关,也是a题的答案

route add default gw 172.16.8.1 就相当于route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.8.1

U Up表示此路由当前为启动状态;H Host,表示此网关为一主机;G Gateway,表示此网关为一路由器。

4.网络路由:即去往某一网络或网段的路由, 实际工作中会有需求,两个不同的内部网络之间互访,而不是出网访问,就是b题的情况。

[root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

SIOCADDRT: 网络不可达 #==>当连不通地址192.168.1.1时,无法添加路由。

[root@oldboy ~]# ifconfig eth0:0 192.168.1.1/24 up #==>添加一个IP别名用于临时测试,如果永久生效最好加双网卡或写入到配置文件。

[root@oldboy ~]# ifconfig eth0:0 #==>查看添加的IP别名(网络里把这种多IP的方式称为子接口)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:65:A4:FD 

          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

再来添加去192.168.1.0的数据包,交给192.168.1.1处理。

[root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

[root@oldboy ~]# netstat -rn   #==>和route -n很像。

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

172.16.8.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1

192.168.1.0     192.168.1.1     255.255.255.0   UG        0 0          0 eth1 #==>这就是网络路由
拓展:其他写法
[root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1 #==>指定设备而不是地址。 [root@oldboy ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
总结: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 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 del -net 192.168.1.0/24 dev eth0
特别强调:以上配置在重启网络时都会失效,那么如何让它永久生效呢?
方法一:

vi /etc/sysconfig/network-scripts/route-eth0  #默认不存在此文件

加入如下内容:

192.168.1.0/24 via 192.168.1.1

方法二:

vi /etc/sysconfig/static-routes  #默认不存在此文件

加入如下内容:

any net 192.168.1.0/24 gw 192.168.1.1

方法三:

vi /etc/rc.local

加入如下内容:

route add -net 192.168.1.0/24 gw 192.168.1.1
提示:写到配置里,重启网络服务和重启系统都会生效! PS: 方法一推荐生产环境使用
提示:方法三写到/etc/rc.local里只在开机时加载,当手工重启网络后会失效,但是重启系统后会生效!
如果是配置默认路由网关可以在网卡配置里:
[root@Linkdood ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-Auto_eth1
GATEWAY=172.16.8.1

5.主机路由:就是去往某个主机地址如何配置路由

/sbin/route add -host 192.168.2.13 dev eth1

/sbin/route add -host  202.81.11.91 dev eth1

例如:keepalived或heartbeat高可用服务器对之间的使用单独网卡接心跳线通信就会用到以上主机路由。

删除一条默认路由:

route del default gw 10.0.0.254

删除一条静态路由:

route del -net 目标网络 netmask

如:route del -net 192.168.1.0/24 或route del -net 192.168.1.0 netmask 255.225.255.0

删除一条主机路由:

route del -host 192.168.1.10 dev eth0

route命令走一波的更多相关文章

  1. 路由知识之ip route 命令中的疑惑

    1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...

  2. linux route命令的使用详解 添加永久静态路由 tracert traceroute

    linux route命令的使用详解 添加永久静态路由  tracert  traceroute route -n    Linuxroute  print  Windows traceroute  ...

  3. CentOS里route命令详解

    Route 功能简述:linux系统中的route命令能够用于IP路由表的显示和操作.它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0.当使用"add&q ...

  4. 每天一个linux命令(53):route命令

    Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...

  5. Debian 8(Jessie) 安装pptp-linux (PPTP客户端), 以及route命令说明

    命令, 这里定义这个pptp的连接名称为hcoffice #安装 sudo apt-get install pptp-linux #用户名和口令 sudo vim /etc/ppp/chap-secr ...

  6. 每天一个linux命令:route命令

    Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...

  7. route命令

    Linux系统的route 命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器, ...

  8. window route 命令

    使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command][Destination] [mask Netmask ...

  9. 每天一个linux命令(45):route命令

    Linux系统的route 命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需 要一台连接两个网络的路由器 ...

随机推荐

  1. Java中集合类

    一.Collection Collection 接口用于表示任何对象或元素组.想要尽可能以常规方式处理一组元素时,就使用这一接口.Collection 在前面的大图也可以看出,它是List 和 Set ...

  2. POI读word doc 03 文件的两种方法

    Apache poi的hwpf模块是专门用来对word doc文件进行读写操作的.在hwpf里面我们使用HWPFDocument来表示一个word doc文档.在HWPFDocument里面有这么几个 ...

  3. 洛谷 P1514 引水入城

    这次不说闲话了,直接怼题 这道题用bfs其实并不难想,但比较困难的是怎么解决满足要求时输出蓄水厂的数量.其实就像其他题解说的那样,我们可以用bfs将它转化成一个区间覆盖问题,然后再进行贪心. 首先枚举 ...

  4. 不安装oracle客户端用sqlplus连接数据库

    在不安装oracle客户端情况下用sqlplus连接数据库: 1.去官网下载 http://www.oracle.com/technetwork/topics/winx64soft-089540.ht ...

  5. java在线聊天项目1.1版 ——开启多个客户端,分别实现注册和登录功能,使用客户端与服务端信息request机制,重构线程,将单独的登录和注册线程合并

    实现效果图: eclipse项目中初步整合之前的各个客户端和服务端的窗口与工具类,效果如下图: 已将注册服务器线程RegServer功能放到LoginServer中,使用客户端与服务端的request ...

  6. Spring框架context的注解管理方法之二 使用注解注入基本类型和对象属性 注解annotation和配置文件混合使用(半注解)

    首先还是xml的配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  7. windows 下phpstudy 升级mysql版本5.7

    今天在导入sql文件的时候遇到了sql执行错误.最后找到原因是因为mysql版本过低,导致出错 原因:在执行sql的时候出现了两次CURRENT_TIMESTAMP ,最后得知在5.7版本之前都是不支 ...

  8. (23)zabbix单位符号Unit symbols

    概述 在zabbix里面,我们不需要使用大数字来,例如我们可以不使用86400来表示一天,这个数字又不容易理解也容易出错.用什么办法来解决大数字问题呢?我们可以使用单位来简化,例如简化zabbix触发 ...

  9. 无法解析具体reference那个同名文件

    公司平台,如果src和gen文件系统中有同名文件.reference时会根据depend.cfg文件优先reference遇到的同名文件.这样如果存在同名文件且引用顺序不对就会有莫名的bug. 像rt ...

  10. 《零基础入门学习Python》【第一版】视频课后答案第003讲

    测试题答案: 0. 以下哪个变量的命名不正确?为什么? (A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM(C)选项不正确,因为 Python 中的变量名不能以 ...