路由表的 flags 字段显示路由状态:
A 活动的休眠网关检测在路由上被启用。本字段只适用于 AIX 5.1 或更新版本。
U :Up.
H :路由至主机而不是网络。
G :路由至网关。 不带G表示不经过路由
D :路由通过重定向动态地创建。
M :路由通过重定向被修改。
L :链接级地址显示在路由项中。
c :对该路由的访问创建克隆路由。本字段只适用于 AIX 4.2.1 或更新版本。
W :该路由为克隆路由。本字段只适用于 AIX 4.2.1 或更新版本。
1 :协议特定路由标志 #1。
2 :协议特定路由标志 #2。
3 :协议特定路标志 #3。
b :该路由表示广播地址。
e :有绑定的高速缓存项。
l :该路由表示本地地址。
m :该路由表示多点广播地址。
P :锁住的路由。
R :主机或网络不能到达。
S :手工添加。
u :路由可用。
s :组路由的停止搜索选项在路由上被启用。

(1)Destination:目的IP地址或网络地址;
(2)Gateway:即下一站路由器,*表示无须经过下一站路由器就可以直接到达目的地址或目的网络;
(3)Genmask:子网掩码;
(4)Flags:标志字段,这里可能出现U,G,H,D,M,R等,U表示可用;G表示Gateway字段是个路由器,否则表示是个直接出口;H表示Destination是个主机IP地址,没有H表示Destination是网络地址;D表示该路由项由ICMP重定向报文创建;M表示该路由项由ICMP报文修改而来;R表示由动态选路协议恢复的路由项。
多数系统内核对路由表的实现都包含上述内容,其它字段视系统而定。
 
查看路由表的方法:
(1)netstat –r
(2)route
(3)查看相关文件:/proc/net/route
 

IP选路规则:
每当主机要发送IP数据包,都要先搜索路由表,以确定往哪个接口发送数据,并确定下一站路由器,具体的搜索过程如下
(1)搜索匹配的主机地址;
(2)搜索匹配的网络地址;
(3)搜索默认路由。
如果通过以上三个步骤之后都没有匹配的路由项(没有默认路由),则产生主机不可达或者网络不可达ICMP差错报文。
导致路由表发生改变的方法或原因:
(1)可以通过route add或者route del来增加或者删除路由项;
(2)ICMP重定向报文导致接收主机修改或者增加路由项;
(3)ICMP路由通告报文也往往会导致路由表发生变化;
(4)动态选路协议(RIP,OSPF等)导致路由表不断更新。
 
一般认为,主机在引导以后要广播或多播传送一份路由器请求报文。一台或更多台路由器响应一份路由器通告报文。另外,路由器定期地广播或多播传送它们的路由器通告报文,允许每个正在监听的主机相应地更新它们的路由表。
  路由器操作
  当路由器启动时,它定期在所有广播或多播传送接口上发送通告报文。准确地说,这些通告报文不是定期发送的,而是随机传送的,以减小与子网上其他路由器发生冲突的概率。一般每两次通告间隔450秒和600秒。一份给定的通告报文默认生命周期是30分钟。
  使用生命周期域的另一个时机是当路由器上的某个接口被关闭时。在这种情况下,路由器可以在该接口上发送最后一份通告报文,并把生命周期值设为0.除了定期发送主动提供的通告报文以外,路由器还要监听来自主机的请求报文,并发送路由器通告报文以响应这些请求报文。如果子网上有多台路由器,由系统管理员为每个路由器设置优先等级。例如,主默认路由器就要比备份路由器具有更高的优先级。
  主机操作
  主机在引导期间一般发送三份路由器请求报文,每三秒钟发送一次。一旦接收到一个有效的通告报文,就停止发送请求报文。主机也监听来自相邻路由器的请求报文。这些通告报文可以改变主机的默认路由器。另外,如果没有接收到来自当前默认路由器的通告报文,那么默认路由器会超时。只要有一般的默认路由器,该路由器就会每隔10分钟发送通告报文,报文的生命周期是30分钟。这说明主机的默认表项是不会超时的,即使错过一份或两份通告报文。

路由选择协议基础:
  使用协议来查找网络并更新路由表的配置就是动态路由。
名词解释:
AS(Autonomous System 自治系统):AS是基于共同管理域下的网络集合,在同一个AS中所有的路由器共享相同的路由表信息。
IGP(Interior Gateway Protocol 内部网关协议):用于同一个AS中的路由器间交换路由选择信息。
EGP(Exterior Gateway Protocol 外部网关协议):用于AS之间通信。
AD(Administrative Distance 管理距离):衡量接收来自相邻路由器上路由选择信息的可信度,0(最可信)到255(不使用该路由)之间。
提示:如有一个路由器接收到多条对同一远程网络的更新内容后,路由器首先检查AD,较低AD的路由条目会被放在路由表中。如果多条被通告到同一网络的路由具有相同的AD值,具有较低度量值的路由将被放在路由表中。如果多条被通告的路由具有相同的AD和相同的度量值,那么路由协议会对这一远程网络使用负载均衡。

静态选路:默认方式生成(直连接口),通过route增加,通过ICMP重定向生成(默认方式出错)。
动态选路:相邻路由之间的通信,以告知对方每个路由器当前所连接的网络。其改变的是选路策略,在路由表中动态的添加或删除信息。
自治系统AS内使用的路由协议称为:内部网关协议IGP,常用的是RIP、OSPF。

                 外部网关协议EGP,常用的是BGP。

网络--路由表&IP选路的更多相关文章

  1. [TCPIP] IP路由表及选路 Note

    TCP/IP IP路由表及选路 1.路由表信息 路由表一般包含信息:目的IP地址.下一站路由器的IP地址.标志. 为数据报传送指定的一个网络接口. 查看路由表信息mac-abeen:~ abeen$ ...

  2. TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

    1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统 ...

  3. TCP/IP详解之:IP选路 动态选路协议

    第九章 IP选路 netstat -rn 显示路由表 初始化路由表的两种方法: 方法1:在配置文件中指定静态路由(不常用) 方法2:运行路由守护程序 或者 使用ICMP路由器发现报文 没有到达目的地的 ...

  4. IP选路

    IP选路 1.概述      路由算法是用于获取路由表中的路由项目.它是路由选择协议的核心. 2.路由算法的分类      从路由算法能否随网络的通信量或拓扑自适应的进行调整变化来分,可以分为两类. ...

  5. 5.IP选路,动态选路

    1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统 ...

  6. TCP/IP学习20180805-数据链路层-IP选路

    转,原文链接https://blog.csdn.net/wh1511995112/article/details/51474692 IP选路 什么是IP选路? IP选路,即IP寻路,就是根据路由表中的 ...

  7. TCP/IP学习笔记(5)------IP选路

    静态IP选路 一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. D ...

  8. route-显示并设置Linux内核中的网络路由表

    route命令 网络配置 route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两 ...

  9. route---设置Linux内核中的网络路由表

    route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现. 在L ...

随机推荐

  1. redis list类型

  2. Thymeleaf模板引擎绕过浏览器缓存加载静态资源js,css文件

    浏览器会缓存相同文件名的css样式表或者javascript文件.这给我们调试带来了障碍,好多时候修改的代码不能在浏览器正确显示. 静态常见的加载代码如下: <link rel="st ...

  3. 如何提高mysql的安全性?

    1.如果 MySQL 客户端和服务器端的连接需要跨越并通过不可信任的网络,那么需要使用 ssh 隧道来加密该连接的通信.2.使用 set password 语句来修改用户的密码,先“mysql -u ...

  4. 关于Linux部分版本无法安装Chrome的问题

    在想要yum安装Chrome浏览器后发现安装没有相应的包,在查询后得知Chrome已经对Redhat和Centos等部分版本停止支持, 所以这些新版的系统中直接安装就显得有些困难了,那么从网上找到了一 ...

  5. C# is运算符

    一.C# is运算符 is运算符用于检查对象是否与给定类型兼容(兼容表示对象是该类型,或者派生于该类型). is运算符用来检查对象(变量)是否属于某种数据类型,如int.string.bool.dou ...

  6. 知识总结和记录——HTML

    文档结构 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U ...

  7. linux面试集

    shell:1.$# 和 $*之类的特殊变量 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n是一个数字,表示第几个参数.例如,第一个参数就是$1 $# 传递给脚本或 ...

  8. ethereum(以太坊)(六)--整型(int)

    pragma solidity ^0.4.20; /* uint8 uint16 ...uint256 int8 int16 int24 ..int256 uint => uint256 int ...

  9. php-5.6.26源代码 - opcode执行

    文件 php-5.6.26/Zend/zend_vm_execute.h ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS ...

  10. Delphi中DLL的创建和使用(转)

    Delphi中DLL的创建和使用     1.DLL简介:   2.调用DLL:   3.创建DLL:   4.两个技巧:   5.初始化:   6.例外处理.            1.DLL简介  ...