我们经常会出现临时添加路由,或者是路由重启路由丢失等导致网络不通的情况,上网查发现很多介绍或者没有实验跟进导致理解的时候很费劲的情况,可能人家认为是比较简单的事情了,但是很多不尽然,老手也不一定能很快解决这样问题。所以这里还是以添加的实验结果为主。

route 输出项 说明

Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码,可以设定 netmask 决定网域的大小
Flags 标记。一些可能的标记如下:
  U — 路由是活动的,可以使用
  H — 目标是一个主机,H 该路由是到一个主机,也就是说,
目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,
而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合
  G — 路由指向网关
  R — 恢复动态路由产生的表项
  D — 由路由的后台程序动态地安装
  M — 由路由的后台程序修改
  ! — 拒绝路由
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 转发的网络设备即虚拟网卡名称

添加网段路由,想要只显示U

[root@ht23 k8snode]# route add -net 192.168.1.0 netmask 255.255.255.0 dev ens192

[root@ht23 k8snode]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192
flags:u
//意思是192.168.1.0网段全部可以通过
//Flags:U

添加主机路由,显示UH

[root@ht23 k8snode]# route add -host 192.168.1.1 dev ens192  //添加成功,不需要指定掩码注意

[root@ht23 k8snode]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 ens192 //显示UH,表示主机192.168.1.1这台机器,可以被ens192网卡转发出去.

添加网关路由,显示UG

[root@etcd2 system]#route add default gw 10.129.55.1

[root@etcd2 system]#route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.129.55.1
 [root@etcd2 system]#route del default gw 10.129.55.1

[root@etcd2 system]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.129.55.1 0.0.0.0 UG 0 0 0 ens192
//表示去往任何网段的数据包即所有目的地的数据包由网关10.129.55.1通过网卡ens192来转发
//添加了一个网关 ,Flags:UG

添加网段错误,不能指定ip

错误 -net 只能指定网段,不能指定具体ip
[root@nagios ~]# route add -net 211.211.10.69 netmask 255.255.255.0 dev ens192
route: netmask doesn't match route address
//正确方法,指定网段
[root@nagios ~]# route add -net 211.211.10.0 netmask 255.255.255.0 dev ens192

[root@ht23 k8snode]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface

211.211.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens192
//显示结果是Flags是U

添加主机路由错误

添加路由和删除路由时报错记录:

//添加路由,出错1,网卡不存在

[root@ht23 k8snode]# route add -host 192.168.1.1 dev eth0
SIOCADDRT: No such device //因为网卡名称不对
[root@ht23 k8snode]# route add -host 192.168.1.1 dev ens192  //添加成功

[root@ht23 k8snode]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 ens192

//显示UH,表示主机192.168.1.1这台机器,可以被ens192网卡转发出去.

添加一个主机路由,不能指定子网掩码

[root@ht23 k8snode]# route add -host 10.129.59.11 netmask 255.255.255.0 dev ens192
route: netmask 000000ff doesn't make sense with host route //正确的方法
[root@ht23 k8snode]# route add -host 10.129.59.11 dev ens192 [root@ht23 k8snode]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.129.59.11 0.0.0.0 255.255.255.255 UH 0 0 0 ens192
//显示UH
//如果你重复添加,则提示已存在

[root@ht23 k8snode]# route add -host 192.168.1.1 dev ens192
SIOCADDRT: File exists

//删除该主机路由

[root@ht23 k8snode]# route del -host 192.168.1.1 dev ens192

你要添加的网关不在你主机所在的网段

SIOCADDRT: No such process 解决方法:
比如你要添加的网关是10.128.51.1 但是本机没有10.128.51段的网卡
[root@ht23 k8snode]# route add 10.128.51.1/32 dev ens192
然后再
[root@ht23 k8snode]#route add default gw 10.128.51.1 实例演示:
[root@ht23 k8snode]# route add 10.128.51.1/32 dev ens192
[root@ht23 k8snode]# route add default gw 10.128.51.1
[root@ht23 k8snode]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.51.1 0.0.0.0 UG 0 0 0 ens19210.128.51.1 0.0.0.0 255.255.255.255 UH 0 0 0 ens192

在linux下永久添加静态路由

一、让路由重启服务器后生效:

1,在/etc/rc.local里面添加:

添加路由命令为:直接将在命令行操作的命令复制到该文件中,保存退出即可。

二、两种方式添加静态路由对比:

1、rc.local:

重启服务器生效;

重启网络服务,则静态路由失效;

rc.local是系统启动后最后运行的一个脚本,因此如果有如NFS需要网络才能挂载的服务需求,则该方式不适合;

2、static-routes:

重启服务器生效;

重启网络服务生效:

 

route -n 讲解的更多相关文章

  1. Route学习笔记

    前言 UrlRoutingModule.class:这块的代码关联了上一篇中路由部分的一个详细说明 一:Route的讲解 1. 路由模板匹配 添加路由: MapRoute 剔除的路由:IgnoreRo ...

  2. iptables的实战整理

    一.iptables使用场景:             内网情况下使用:在大并发的情况下不要开iptables否则影响性能 二.iptables出现下面的问题:             在yewufa ...

  3. html post

    post请求对应的html页面 页面效果 html代码 <html> <body> <form method="post" > First na ...

  4. 实例讲解react+react-router+redux

    前言 总括: 本文采用react+redux+react-router+less+es6+webpack,以实现一个简易备忘录(todolist)为例尽可能全面的讲述使用react全家桶实现一个完整应 ...

  5. IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

  6. uTenux——LED驱动讲解

    LED驱动讲解,对于一个嵌入式的工程师还是一个刚开是学习相关电子设计的朋友,对于LED的驱动问题应该不甚陌生.我所说的LED驱动并不是类似大功率LED照明的那个驱动,而是简单的控制器对LED的控制驱动 ...

  7. MVC中Controller和Action讲解上篇

    一般我们用mvc开发程序时一般需要三个步骤, 创建模型.创建控制器.创建视图 之前开发程序都是按照这样的步骤来开发的,也没有想过mvc的原理,比如route是怎么找到controller的,contr ...

  8. 一步步学习ASP.NET MVC3 (14)——Route路由

    请注明转载地址:http://www.cnblogs.com/arhat 由于今天是星期六,所以多写几篇,感觉前几天的忙碌没有及时发布文章,趁着周末老魏尽力的多写几篇文章.因为本系列基本上快结束了,所 ...

  9. 以helloworld为例讲解magento中控制器的工作

    1.下面介绍的前提是你已经安装了magento ,版本是1.9.1.0. 2.下面是实际步骤 ①在工程下面创建下面的文件目录 app/code/local/Magentotutorial/Hellow ...

随机推荐

  1. 从原理学习Java反序列化

    1 序列化与反序列化 1.1 概念 序列化: 将数据结构或对象转换成二进制串的过程 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程 1.2 使用场景 当你想把的内存中的对象状态 ...

  2. VuePress 博客之 SEO 优化(六)站长工具

    前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇接着 ...

  3. 查看mysql是否开启慢查询

    说明: slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) l ...

  4. k8s遇到invalid type for io.k8s.api.core.v1.PodSpec.containers

    报错 error: error validating "taskcenter-v4-deployment.yaml": error validating data: Validat ...

  5. 5月28日 python学习总结 CSS学习(一)

    1. CSS是什么 层叠样式表 --> 给HTML添加样式的 2. CSS的语法 选择器 { 属性1:值1; 属性2:值2; } 3. CSS引入方式 1. 直接写在HTMl标签里面 <p ...

  6. ubuntu忘记密码,用root修改Ubuntu密码

    今天突发奇想,想改一下ubuntu的用户名,仅仅修改了/etc/passwd中的用户名. 改完后没有用命令修改密码,直接reboot了. 结果悲剧了,登不进去了. 赶紧百度一下,结果发现,本宝宝看不懂 ...

  7. Java使用多线程异步执行批量更新操作

    import com.google.common.collect.Lists; import org.apache.commons.collections.CollectionUtils; impor ...

  8. python实现AES加密、解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AE ...

  9. 表单属性method的值get和post的区别?什么时候用get?什么时候用post?

    get和post的区别 一.安全性 因为get会将用户名和密码放在URL中,进而出现在浏览器的历史记录中,显然这种情况应该用post. 二.编码 get只能向服务器发送ASCII字符,而post则可以 ...

  10. Linux 中进程有哪几种状态?在 ps 显示出来的信息中, 分别用什么符号表示的?

    1.不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的.不可中断, 指进程不响应异步信号. 第 441 页 共 485 页2.暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响 ...