linux route命令深入浅出与实战案例精讲

http://blog.51cto.com/oldboy/1119453

深入浅出之-route命令实战使用指南

http://blog.51cto.com/oldboy/974194

本博文的视频讲解已发布:http://oldboy.blog.51cto.com/2561410/1119453

缘起:本文为老男孩linux培训第七次课前考试题及参考答案,有朋友在看完http://oldboy.blog.51cto.com/2561410/784625内容后,希望补充此内容,因此,发布如下,希望大家喜欢。完整试题及答案如下:

考试题一:linux下如何添加路由(百度面试题)

以上是原题,老男孩老师翻译成如下3道题。

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

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

c.如果添加一个主机路由?

请分别解答。

解答:route -net 172.16.1.0/24 gw 192.168.1.1

route 命令使用方法:

a.缺省网关路由

默认网关就是数据包不匹配任何设定的路由规则,最后流经的地址关口!网关按字面意思就是网络的关口,就相当于我们家里房子的门一样,如果外出就要经过房门,数据包也是一样。

本题的答案:

route del default gw 10.0.0.254

解答实践:

[root@oldboy ~]# route -n #==>查看路由表,netstat -rn也可以。

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

0.0.0.0         10.0.0.254      0.0.0.0         UG    0      0        0 eth0

#==>这里就是系统的默认网关信息,表示去任何地方(0.0.0.0),都发给10.0.0.254,因为是默认网关,所以,放在了最后一条。路由也是有顺序的,如果不符合任何一条规则就交给默认网关处理。

[root@oldboy ~]# route del default gw 10.0.0.254 #==>这个命令是删除默认的网关。

[root@oldboy ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

[root@oldboy ~]# route add default gw 10.0.0.254    #==>这个命令是添加默认的网关,也是本题的答案。

[root@oldboy ~]# netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         10.0.0.254      0.0.0.0         UG    0      0        0 eth0 #==>又回来了

[root@oldboy ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

0.0.0.0         10.0.0.254      0.0.0.0         UG    0      0        0 eth0 #这里就是添加的默认网关记录。

特别强调:实际上route add default gw 10.0.0.254 就相当于route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.254

b.网络路由:即去往某一网络或网段的路由

一般多网段之间互相通信,希望建立一条优先路由,而不是通过默认网关时就可以配置网络路由。还是拿房子比喻,你现在不是要出门,而是卧室,卫生间,去卧室就要经过卧室的门,去卫生间也要经过卫生间的门,这里的卧室和卫生间的门就可以认为是去往某一网段的路由,而不是默认路由(即房子的门。)

实际工作中会有需求,两个不同的内部网络之间互访,而不是出网访问,就是上面例子的情况。

本题的答案:

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

解答实践:

[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

10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0

192.168.1.0     192.168.1.1     255.255.255.0   UG        0 0          0 eth0 #==>这就是网络路由

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         10.0.0.254      0.0.0.0         UG        0 0          0 eth0

拓展:其他写法

[root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0  #==>指定设备而不是地址。

[root@oldboy ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.1.0     192.168.1.1     255.255.255.0   UG    0      0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

0.0.0.0         10.0.0.254      0.0.0.0         UG    0      0        0 eth0

[root@oldboy ~]# route del -net 192.168.1.0/24 dev eth0   

[root@oldboy ~]# route add -net 192.168.1.0/24 dev eth0   

[root@oldboy ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

0.0.0.0         10.0.0.254      0.0.0.0         UG    0      0        0 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 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@oldboy ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY=10.0.0.254

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

/sbin/route add -host 192.168.2.13 dev eth2

/sbin/route add -host 202.81.11.91 dev lo

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

route命令拓展:

删除一条默认路由:

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命令更详细的内容需要大家执行man route查看帮助,并仔细总结。

有关此题,我们谈下多网段生产环境网段划分及路由的解决方案(1000台机器划分网段方案)。我们能感受到route命令不同功能应用案例。

请参考 老男孩linux运维实战培训-生产环境大于254台机器网段划分及路由解决方案案例

(转)linux route命令深入浅出与实战案例精讲的更多相关文章

  1. linux route命令详解

    考试题一:linux下如何添加路由(百度面试题) 以上是原题,老男孩老师翻译成如下3道题. a.如何用命令行方式给linux机器添加一个默认网关,假设网关地址为10.0.0.254? b. 192.1 ...

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

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

  3. (转)linux route命令详解

    linux route命令详解 原文:https://www.cnblogs.com/lpfuture/p/5857738.html   &&   http://blog.csdn.n ...

  4. Linux操作系统之grub加密实战案例

    Linux操作系统之grub加密实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为grub设置明文密码案例 1>.修改"/boot/grub/grub. ...

  5. 微软BI SSIS 2012 ETL 控件与案例精讲课程学习方式与面试准备详解

    开篇介绍 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程从2014年9月开始准备,到2014年12月在 天善BI学院  ...

  6. 微软BI SSIS 2012 ETL 控件与案例精讲面试 200 问(SSIS 面试题,ETL 面试题)

    开篇介绍 本自测与面试题出自 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程,对于学完本课程的每一课时和阅读完相关辅助 ...

  7. Linux route命令详解和使用示例(查看和操作IP路由表)

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

  8. linux route命令学习

    route命令用于显示和操作IP路由表. 没有增加路由之前,route命令的结果如下, sh-# route Kernel IP routing table Destination     Gatew ...

  9. linux route命令的使用详解

    route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...

随机推荐

  1. ZOJ 2301 Color the Ball (离散化+线段树)

    题意:有从 1 开始递增依次编号的很多球,开始他们都是黑色的,现在依次给出 n 个操作(ai,bi,ci),每个操作都是把编号 ai 到 bi 区间内 的-所有球涂成 ci 表示的颜色(黑 or 白) ...

  2. 终极解决傻X阿里钱盾新手开店及老卖家复核身份证照片模糊无法对焦问题

    我小米3阿里钱盾认证拍照无法对焦,后来咨询客服,客服让买新的或借朋友的.然后百度了一下发现模糊现象不是个例,好多比较新的小米5,华为手机什么的也都模糊.真是幸庆,,差点就被客服带坑里去买新手机了. 然 ...

  3. [转]Apple耳机兼容非Mac设置

    转至:https://jingyan.baidu.com/article/6079ad0e99858228ff86db19.html 不兼容情况描述: 听音乐貌似只能听见伴奏的声音 解决方法: 第一种 ...

  4. 在GridView控件FooterTemplate内添加记录 Ver2

    中午有发表一篇博文<在GridView控件FooterTemplate内添加记录> http://www.cnblogs.com/insus/p/3269908.html 添加铵钮是放在F ...

  5. 动态合并Repeater控件数据列

    前天Insus.NET实现<动态合并GridView数据行DataRow的列>.今天再玩玩Repeater控件,功能也是动态合并某列栏位.Repeater控件跟GridView控件一样集成 ...

  6. git 使用那些事儿

    本文来自网易云社区 作者:孙有军 工欲善其事,必先利其器,git是一个开源的分布式版本控制工具,很多文章都写的太长,或者资料太多,难以一时间看完.在此总结了git的一些使用方式,因此该文不是鸿篇巨著, ...

  7. Orcale创建函数(function)

    Oraclec创建函数的语法规则 create or replace function  函数名 (参数名1 参数类型,参数名2 参数类型)  return number  is Result num ...

  8. loj #6261 一个人的高三楼 FFT + 组合数递推

    \(\color{#0066ff}{ 题目描述 }\) 一天的学习快要结束了,高三楼在晚自习的时候恢复了宁静. 不过,\(HSD\) 桑还有一些作业没有完成,他需要在这个晚自习写完.比如这道数学题: ...

  9. 20.包含min函数的栈

    题目描述:   定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路分析:   设置两个栈,一个push,一个放置最小元素. 代码: impor ...

  10. i++操作非原子的验证代码

    package incre; public class Incre { public static void main(String[] args) { class Count implements ...