首页 > 代码库 > 2016.8.14 网络工程师之网关协议
2016.8.14 网络工程师之网关协议
1.路由器又叫做IP网关,网关协议就是用于网关之间交换路由信息的协议
2.自治系统:
(1)自治系统是由同构型的网关连接的因特网,自治系统内部的网关之间执行内部网关协议(IGP),互相交换路由信息
(2)IGP是自治系统内部专用的,为特定的应用服务,在自治系统之外是无效的;
(3)一个因特网也可能由不同的自治系统互连而成,例如若干个校园网通过广域网互连就是这种情况;在不同的自治系统之间采用外部网关协议(EGP)交换路由信息
3.外部网关协议:
(1)EGP以自治系统为节点,通告各个网关可到达哪些系统
(2)最新的外部网关协议叫做BGP,BGP4已经广泛的应用于不同的ISP的网络之间,成为事实上的Internet外部网关协议;
(3)BGP4是一种动态路由发现协议,支持无类别域间路由CIDR;BGP的主要功能就是控制路由策略,例如是否愿意转发过路的分组等
(4)BGP的4种报文,通过TCP(179端口)连接转发:
①打开 建立邻居关系
②更新 发送新的路由信息
③保持活动状态 对Open的应答/周期性地确认邻居关系
④通告 报告检测到的错误
(5)建立邻居关系:位于不同自治系统中的两个路由器首先要建立邻居关系,然后才能周期性地交换信息;建立邻居关系的过程是由一个路由器发送一个Open报文,另一个路由器若愿意接受则以Keepalive报文回答;Open报文中包含发送者的IP地址及其自治系统的标识,另外还有一个保持时间参数,即定期交换信息的时间间隔;
(6)邻居可到达性:这个过程维护邻居关系的有效性,通过周期性的互相发送Keepalive报文,双方都知道对方的活动状态;
(7)网络可到达性:每个路由器维护一个数据库,记录着它所有可到达的子网,当情况变化时用更新报文把最新信息及时地传送给其他BGP路由器;Update报文,包含两类信息:
①一类是要作废的路由器列表
②一类是新增路由的属性信息:
网络层可到达信息(NLRI)
经过的自治系统(AS_Path)
下一跳(Next-Hop)
(8)BGP的报文都要19个字节的固定长度头部,其中包括16个字节的标记(用于认证和同步),两个字节的报文长度和一个字节的类型字段
(9)BGP路由更新报文,字段:
①不可用的路由长度(两个字节):表示回收字段的长度;
②回收的路由(可变长):包含了从服务中撤销的路由的IP地址前缀列表;
③通路属性总长度(两个字节)
④通路属性(可变长):包含了与网络层可到达性信息字段中的IP地址前缀相关联的属性列表,例如路由信息的来源,路由优先级,实施路由聚合的BGP实体,以及在路由聚合时丢失的路由信息等;
⑤网络层可到达性信息(可变长)
4.内部网关协议:网关协议也叫做路由协议,是路由器之间实现路由信息共享的一种机制,它允许路由器之间交换路由信息维护各自的路由表;
(1)常用的内部路由协议:RIP(信息协议),OSPF(开放最短路径协议),IS-IS(中间系统到中间系统),IGRP(内部网关路由协议),以及增强的IGRP协议(EIGRP)
(2)路由信息协议:RIP采用距离矢量路由算法,适用于小型网络,因为它允许的跳步数不超过15步;
(3)RIPv1:
①RIPv1使用本地广播地址255.255.255.255发布路由信息,默认的路由更新周期为30s,持有时间为180s,也就是说,RIP路由器每30s向所有邻居发送一次路由更新报文
②如果在180s之内没有从某个邻居接收到路由更新报文,则认为该邻居不存在了,这时如果从其他邻居收到了有关同一目标的路由更新报文,则用新的路由信息替换已失效的路由表项,否则,对应的路由表项被删除;
③RIP以跳步数来度量路由费用,在RIP协议中,15跳是最大跳数,16跳是不可到达网络,经过16跳的任何分组都会被路由器丢弃;
④RIPv1是有类别的协议,这意味着配置RIPv1时必须使用A,B,C类IP地址和子网掩码
⑤对于同一目标,RIP路由表项最多可以有6条等费用的通路,虽然默认是4条,RIP可以实现等费用通路的负载均衡,这种机制提供了链路冗余功能。以对付可能出现的连接失效;
(4)RIPv2:基本还是一个距离矢量路由协议,但是有3方面改进
①使用组播而不是广播来传播路由更新报文。并且采用了触发更新机制来加速路由收敛,即出现路由变化时立即向邻居发送路由更新报文,不必等待更新周期是否到达;
②RIPv2是一个无类别的协议,可以使用可变长子网掩码,也支持无类别域间路由(CIDR)
③RIPv2支持认证,使用经过散列的口令字来限制更新信息的传播
(5)路由收敛和水平分割:
①路由收敛:每个路由表的后两项是通过交换路由信息学习到的
②距离矢量算法要求相邻的路由器之间周期性交换路由表,并通过逐步交换路由信息扩散到网络中所有的路由器,这种逐步交换过程如果不加限制,将会形成路由环路,使得各个路由器无法就网络的可达性取得一致;
③解决路由环路问题可以采用水平分割法,这种方法规定,路由器必须有选择地将路由表中的信息发送给邻居,而不是整个路由表,简单地说,一条路由信息不会被发送给该信息的来源
④带有反毒化的水平分割方案:把从邻居学习到的路由费用设置为无限大,并立即发送给那个邻居;采用反毒化的方案更安全一些,它可以立即中断环路;
(6)RIP报文格式:RIPv2协议封装在UDP数据报中发送,占用端口520,报文包含4个字节的报头,然后是若干个路由记录;RIP报文最多可携带25个路由记录,每个路由记录20个字节:
①命令:用于区分请求和响应报文
②版本:可以是RIP第一版或第二版,两种版本报文格式相同
③地址族标识符:对于IP协议,该字段为2
④路由标记:用于区别内部或外部路由,用16位的AS编号来区分从其他自治系统学到的路由
⑤网络地址:表示目标IP地址
⑥子网掩码:对于RIPv2,该字段是对应网络地址的子网掩码;对于RIPv1,该字段是0.因为RIPv1默认使用A,B,C类地址掩码;
⑧下一跳路由器地址:表示下一跳的地址
⑨距离:表示到达目标的跳步数
5.OSPF协议:一种链路状态协议,用于在自治内部的路由器之间交换路由信息;OSPF具有支持大型网络,占用网络资源少,路由收敛快等优点
(1)距离矢量协议发布自己的路由表,交换的路由信息量很大;链路状态协议与之不同,它是从各个路由器收集链路状态信息,构造网络拓扑结构图,使用Dijkstra的最短通路优先算法计算到达各个目标的最佳路由;
(2)链路状态协议与距离矢量协议发布路由信息的方式不同,距离矢量协议是周期性的发布路由信息,而链路状态协议是在网络拓扑发生变化时才发布的路由信息,而且OSPF采用TCP发送报文,每个报文都需要应答,因而通信更加可靠;
(3)OSPF协议引入了“分层路由”的概念。典型的链路状态协议都把网络划分为较小的区域,从而限制了路由器信息传播的范围;每个区域就如同一个独立的网络,区域内的路由器只保存该区域的链路状态信息,使得路由器的链路状态数据库可以保存合理的大小,路由计算的时间和报文数量都不会太大;OSPF主干网负责在各个区域之间传播路由信息;
(4)OSPF区域:每个OSPF区域被指定了一个32位的区域标识符,可以用点分十进制表示;OSPF的区域分为5种:
①标准区域:标准区域可以接收任何链路更新信息和路由汇总信息;
②主干区域:主干区域是连接各个区域的传输网络,其他区域都通过主干区域交换路由信息,主干区域拥有标准区域的所有性质;
③存根区域:不接收本地自治系统以外的路由信息,对自治系统以外的目标采用默认路由0.0.0.0
④完全存根区域:不接收自治系统以外的路由信息,也不接收自治系统内其他区域的路由汇总信息,发送到本地区域外的报文使用默认路由0.0.0.0.,是思科标准
⑤不完全存根区域:类似于存根区域,但是允许接收以类型7的链路状态公告发送的外部路由信息;
(5)OSPF网络类型:OSPF将路由器连接的物理网络划分为4种类型
**点对点网络:一对路由器用64Kb的串行线路连接,就属于点对点网络,在这种网络中,两个路由器可以直接交换路由信息;
**广播多址网络:以太网或者其他具有共享介质的局域网都属于这种网络,在这种网络中,一条网络信息可以广播给所有的路由器;
**非广播多址网络(NBMA):例如X.25分组交换网就属于这种网络,在这种网络中可以通过组播方式发布路由信息
**点到多点网络:可以把非广播网络当做多条点对点网络使用,从而把一条路由信息发送到不同的目标;
(6)在一个广播网络或NBMA网络中要选一个指定路由器(DR),其他的路由器都与DR建立毗邻关系,把自己掌握的链路状态信息提交给DR,由DR代表这个网络向外界发布;
(7)OSPF路由器:在多区域网络中,OSPF路由器可以按不同的功能划分为以下4种:
**内部路由器:所有接口在同一个区域内的路由器,只维护一个链路状态数据库
**主干路由器:具有连接主干区域接口的路由器;
**区域边界路由器ABR:连接多个区域的路由器,一般作为一个区域的出口,ABR为每一个连接的区域建立一个链路状态数据库,负责将所连接区域的路由摘要信息发送到主干区域,而主干区域上的ABR则负责将这些信息,发送到各个区域;
**自治系统边界路由器:至少拥有一个连接外部自治系统接口的路由器,负责将外部非OSPF网络的路由信息传入OSPF网络;
(8)链路状态公告(LSA):OSPF路由器之间通过链路状态公告交换网络拓扑信息;
LSA类型: 发送者: 传播范围: 描述:
1.路由器LSA; 任意OSPF路由器 区域内 路由器在区域内连接的链路状态;
2.网络LSA; DR; 区域内 指定路由器DR在区域内连接的各个路由器
3.网络汇总LSA ABR 主干区域 ABR连接的本地区域中的链路状态
4.ASBR汇总LSA ABR 主干区域 自治系统边界路由器ASBR的可到达性
5.外部LSA ASBR 除存根之外的其他区 自治系统之外的路由信息
6.组播LSA 用于建立组播分发树
7.NSSA LSA 连接到NSSA的ASBR 不完全存根区 到达自治系统之外的目标的路由可以由ABR转换为类型5的LSA
(9)OSPF的5种报文:通过TCP连接发送,以固定的时间间隔泛洪传播Hello报文,采用目标地址224.0.0.5代表所有的OSPF路由器;
1.Hello 用于发现相邻的路由器
2.数据库描述DBD 表示发送者的链路状态数据库内容
3.链路状态请求LSR 向对方请求链路状态信息
4.链路状态更新LSU 向邻居路由器发送链路状态公告
5.链路状态应答LSAck 对链路状态更新报文的应答
(10)OSPF报文头的格式:
1.版本:现在使用版本2;
2.类型:5种报文类型;
3.分组长度:整个OSPF报文的长度;
4.路由器ID:利用路由器环路接口(Loopback)的IP地址作为路由器的标识,如果没有环路接口IP地址,则选择最大的接口IP地址作为路由器标识;
5.区域ID:在多区域网络中,每一个区域指定一个区域ID
6.认证类型:OSPF支持不同的认证方法,对组播地址224.0.0.5发送的Hello分组要经过认证才能被接收;
(11)OSPF的优点:
1.链路状态协议使用了分层的网络结构,减少了LSA的传播范围,同时也减小了网络拓扑变化是影响所有路由器的可能性;
2.链路状态协议使用组播来共享路由信息,并且发布的是增量式的更新消息;
3.链路状态协议支持无类别的路由和路由汇总功能,可以使用VLSM和CIDR技术;路由汇总使得链路状态数据库减小,从而减小了运行SPF算法和更新路由表需要的CPU周期,也减少了路由器中的存储需求
4.使用SPF算法不会在路由表中出现环路,而这是距离矢量路由协议难以处理的问题;
2016.8.14 网络工程师之网关协议