复习:
OSI参考模型 (ISO国际联合组织)
应用层----人机交互接口
表示层---格式化数据
会话层---建立,维护,管理会话连接
传输层----建立,维护,管理端到端的连接
网络层---IP逻辑寻址,路由选择
数据链路层---控制网络层与物理层之间的通讯
物理层----比特流传输
端口号:1--1023(固定端口) 1024--49151(注册端口) 49152--65536(动态端口)
ARP协议:通过一种地址获取另一种地址
TCP/IP模型
将OSP上三层统一为应用层,将下两层统一为网络接口层(即四层模型----TCP/IP标准模型)
五层模型----TCP/IP对等模型
PDU数据单元
跨层封装
目的:提高封装和解封装的速度,加快传输效率
跨四层封装---应用在直连路由设备之间
跨三,四层封装----应用在直连交换设备之间 STP
DNS服务----53号端口
URL--资源定位符 如:http://www.baidu.com;80/news/index.html/
DNS基于UDP或TCP的53号端口传输数据
UDP:报文最大长度为512字节,当DNS查询报文超过512字节,协议内的TC标记会为1,则使用TCP传输数据
HTTP协议----超文本传输协议
基于TCP协议,端口号80(TCP---传输控制协议)
以太网的数据包默认MTU值:1500 最大65535 最小:68(IP为20-60 传输层UDP的大小为8)
TCP ---传输控制协议
一种面向连接的可靠传输协议
可靠性:
确认:每收到一个报文,就需要进行一次信息确认。依靠序列号,确认序列号以及确认标记位。
重传:超时重传,当一个数据段中的某一个数据报文丢失,会要求重新传输丢失的报文。依靠序列号以及数据偏移量(偏偏仪)
排序:一个数据段被分成多个数据包,从不同路径进行传输,最终达到目的地的顺序被打乱,需要重新排组。依靠序列号完成。
流控(滑动窗口):通过调节窗口大小来对流量的流速控制。(无需等待确认就可以连续发送的数据最大量)
PMTU:路径MTU
当A给D传输数据时,且数据包携带DF=1(DF=1会表明不进行分片),会发送一个1500字节的数据包,但C到D的数据传输的数据包的最大是1000字节,此时数据到不了D,则C会给A回复数据不可达,还会携带MTU为1000,则A会重新发送一个数据包为1000的字节
静态路由:
优点:安全 选路 资源占用
缺点:配置大 维护困难
配置
方法一:需要递归,消耗资源(一般用在以太网中)
方法二:用了这个方法后,ping不通R2的0/0/1接口(R1不会发送ping报文),请求0/0/1的接口ARP,发送广播报文(只能看到IP信息)(一般用在点到点网络)
ARP会请求下一跳和目的两种。用方法二后会R1会以为是目的的网关会直接申请目的的IP,此时会失败(用ARP代理)
此时是R1先查表并在在出接口构造数据包发送,R1会找目的
但由R1转发数据时会失败,此时假如目的IP不是自己则会查表转发而下一跳是自己0/0/1的接口IP,就会发送ARP请求12.0.0.1,不会成功
解决办法
[r1]arp static 12.0.0.1 00e0-fc07-533c
在R1的0/0/1接口配置R2的0/0/0接口的MAC地址)
方法三:会把前两种方法结合使用
方法四
:ip route-static 192.168.2.0 24 23.0.0.3 ip route-static 23.0.0.0 24 12.0.0.2(都在R1上配置) 要递归
扩展配置
等价路由:叠加带宽,还有备份的功能
条件:等价路由:目的地相同,来源相同,优先级(路由器发现方式),
路由器有个接口可以把路由器当pc用来测试
路由汇总:(作用:减少路由条目,加速设备查找路由速度)利用CIDR(即子网汇总)将连续的网段汇总成一个大的网段
汇总的潜规则:母网相同(即开始时网络位相同),掩码相同
路由黑洞:在手工汇总时,可能会包含一些网络不存在的网段,造成流量有去无回的现象,浪费设备与链路资源
缺省路由:
空接口防环:打破循环:TTL null 0
代理ARP 使两台的pc认为他们是同广播域
PC不配置网关(不需要网关)
在R1和R3的0/0/0接口开启ARP代理功能
静态路由与BFD联动
BFD---双向转发检测机制
是一种全网统一的检测机制,用于快速检测,监控网络中链路或者IP路由的转发连通情况
两边都要配置
配置等价路由后
假如R1和SW1的链路断了,则R1会换成R1和R3的链路
但SW1和R2的链路断了后R1不知道则R1不会换链路,造成数据不同
解决方法:配置BFD(即会用报文进行保活 以毫秒为单位)
缺省的情况下,BFD会话每隔1000毫秒发送一次报文,当连续三次报文都无响应后,则BDF会话状态断开。与该BDF会话建立连接的协议会失效。
查看
网络类型及数据链路层协议
网络类型是根据数据链路层所运行的协议及规则来划分的
网络类型分类
1,P2P(Point to Point )------点到点网络
2,MA(Multi-access Netwark)----多点接入网络
MA:1.BMA(Broadcast Multi-access Netwark)----广播型多点接入网络
2.NBMA(Non Broadcast Multi-access Netwark)---非广播型多点接入网络
数据链路层协议
MA网络
以太网协议----BMA
特点:需要使用MAC地址对设备进行区分和标识
BMA网络的构建方式:使用以太网线缆连接设备的以太网接口,形成的网络就是以太网网络,所运行的二层协议就是以太网协议
一个接口后面有一个芯片,(芯片是提前规划好运行什么协议)进而形成什么网络(假如是关于以太网的协议则会形成以太网)
Ethermet ----以太网 GigEthermet(GE)-----千兆以太网 Ten-- GigEtherme----万兆以太网
Serial----串口接口(用于P2P网络)N
以太网核心技术:频分技术
频分技术:指一个铜线可以发送不同频段的数据,且不同的频段互不干扰(数据并行发送)
P2P网络-----不需要MAC地址进行通讯
P2P网络定义:当一个网络只能存在两台设备,并且不允许第三台设备加入,这样的网络叫P2P网络
点到点网络的搭建:使用串口线缆连接的设备的串线接口,形成的网络
串线接口
串线的标准
1,E1标准---传输速率为2.048Mbps-----欧洲标准
2,T1标准----传输速率为1.544Mbps----北美标准
HDLC--高级数据链路控制协议(在串线中)
满足工业标准的标准HDLC协议
ISP根据SDLC(面向比特的同步数据链路控制协议)改进面来的HDLC协议。同步----以帧为单位来传输数据
异步----以字节为单位传输数据
HDLC:面向比特的同步数据链路协议
非标的HDLC协议
标准HDLC协议与非标准HDLC协议不兼容
思科设备默认采用的串线协议是HDLC协议
华为的是ppp协议
数据链路层此时封装的是HDLC协议
HDLC网络搭建---不要MAC地址和IP
华为设备串口网络默认使用协议为PPP,而非HDLC
[r1-Serial4/0/0]link-protocol hdlc ---在接口修改链路协议类型为HDLC
双方都要修改(不修改会因为协议不同而导致数据不通)
串口接口的死亡时间为10秒
HDLC的接口地址借用(即接口不用配置IP可以借用IP地址进行网络测试)
双方都要配置路由信息
在串线中无需配置接口IP地址,只需要从接口借用一个IP即可,但协议在对端设备补充路由信息,且环回接口IP地址配置为掩码32位,对端的路由信息编写主机路由
(假如路由器上只有一个环回可以同时借用路由器上的不同接口)
PPP---点到点协议(有认证 ,授权 ,计费功能)
优点:
1,兼容性
2,可移植性
3,速率快(因为没有重传机制(是对数据的,不是对会话的))
PPP会话的建立
1,链路建立阶段---LCP
2,认证阶段----PPP认证(AAA框架)
3,网络层协议协商阶段---NCP协商
Dead---物理层不可用阶段
Establish----会进行LCP参数协商
Authenticate----认证阶段 (该阶段不是必选项)
Network-----NCP参数协商 (如果双方通讯结束要断开就进入下个阶段)
Terminate阶段----会进行资源释放,诺所有资源被完全释放,则会到dead阶段
ppp数据帧结构
F:标志位
A:IP地址
协议会代表IP等还会代表LCP和NCP协议
LCP协议-----链路控制协议-----完成ppp会话建立第一阶段的协商
NCP协议----网络控制作用-----系列协议的总称,完成ppp会话建立第三阶段时针对网络层协议进行协商 (诺网络层所以IP协议,则对应所以NCP协议中的IPCP(互联网协议控制协议)协议协商
LCP协议报文类型
1,链路配置报文
2,链路终止报文
Terminater-Request
Terminater-ack
3,链路维护报文-----检测底层链路有没有成环
1.Echo-Request-----回波请求
2.Echo-Request----回波应答
链路建立阶段---LCP建立
MRU值-----ppp数据帧所允许的最大数据单元,单元字节,默认位1500
认证----协商ppp会话建立第二阶段是否需要进行认证,以及使用任何方式认证
魔术字----用于检测链路中是否存在环路
A会给B发送一个随机数,B也会生成一个随机数,如果B接收到的随机数和自己的相同则B会给A发送NAK报文,此时A会再次随机生成一个随机数发送,B也会重新生成一个随机数,如果还相同会再重复一次,三次过后是相同,则B会回复Reject报文(即有环路)
如果随机数不相同,则证明没有环路
协商过程---双向
双向:B会认可A,B也会发送数据让A认可B
A设备发送链路配置请求报文给对端,诺没有收到对端回复的任何一个链路配置报文,则每隔3秒重传-次链路配置请求报文,如果连续10次发送链路配置请求,仍然没有收到回复报文,则认为对端不可用,停止发送报文
如果对端不认可某些参数的数值,则回复的是NAK报文,该报文中将携带不认可的参数以及该参数的数值范围。本端收到该报文后,根据内容重新发送链路配置请求。
如果对端不认可某种参数,则回复Reject报文,该报文中携带不认可的参数,本端收到该报文后,副除该参数,并重新发送链路配置请求。
认证阶段---可以单向或双向
ppp会话的建立是一次性会话,会话建立完成后,后续修改不会影响会话本身
ppp本身不具备认证等功能,是通过调用AAA框架来完成的
一般实际应用汇总用单向
PAP---密码认证协议
P2P是将需要认证的用户名和密码以明文的形式携带在数据报文中,发送给对端进行认证
ppp一次性会话(即协商建立后,后面让双方的认证类型不同但依然可以正常通讯)
CHAP----挑战握手协议
认证双方通过对比摘要值得方式进行认证
认证过程: 1、认证方先发送挑战报文,里面包含了认证方的用户名和一个随机值
2、被认证方收到该报文后,需要根据用户名信息查找对应密码,然后将密码信息与随机值一起做HASH运算得到摘要值,然后将该摘耍值+用户名发送给认证方
3、认证方收到后,根据用户名信息查找本地密码信息,使用相同HASH算法进行计算,得出摘要值,将两个摘要值进行对比,若相同,则回复ACK报文:若不同,则回复NAK报文
HASH(散列函数)----将任意长度得输入转换为固定长度得输出 (是不可逆得过程)
特点: 1,相同输入,相同输出
2,不可逆
3,蝴蝶效应
网络层协议协商阶段----NCP协商
如果网络层使用的是IP协议,则需要使用IPCP协议进行协商
协商内容:1,IP报文的压缩方式 2,IP地址(1.协商IP地址是否为可用IP地址 2。该IP是否与本地冲突)
协商过程
1,静态地址协商---双发都有IP地址
如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同,则认为对端可以使用该IP地址
一旦认可了对方的IP地址,则将会自动学习到达该地址主机路由
动态地址协商-----一端没有IP地址
B给A的IP是手工配置的,不是自动给的
GRE和MGRE
VPN.--虚拟专用网络:是指依靠ISP或者其他NSP在公用网络基础设施之上构建的专用的安全数据通信网络,只不过这个专线网络是逻辑上的而非物理的。
虚拟---使用公共网络资源建立自己的私有网络
专用---用户按需构建
核心技术----隧道技术
GRE---通用路由封装 47
封装公有IP
隧道技术-----在隧道的两端,通过封装及解封装技术在公网上建立一条数据通道,使用这条数据通道进行数据测试
GRE------是一种隧道封装技术,是一种标准的三层隧道技术,是一种点对点的隧道
GRE封装与解封装过程
1.隧道模块接收报文后,首先根据乘客协议的类型和当前GRE隧道的配置生成校验和参数,对报文进行GRE封装,即添加GRE头部信息。
3.然后,设备给报文添加传输协议报文头部,即IP头部。该IP报文头部的源地址就是隧道的源地址,目的地址就是隧道的目的地址。
4.最后,设备根据新添加的IP报文头部的目的地址,在路由表中查找相应的出接口,并发送报文,之后,封装后的报文将在公网环境下进行数据传输。
5.接收端设备从连接公网的接口收到报文后,首先会分析IP头部信息,如果发现协议类型字段值为47,则表示该上层协议为GRE协议,于是将报文交给GRE模块进行处理。 1.GRE模块去掉IP报文头部和GRE报文头部,并根据GRE报文头部中的协议类型字段,确定将该报文交于那个乘客协议进行处理
配置:双方都要配置
Keepalive检测 5秒发送一次
用于检测隧道对端是否可达
如果对端不可达,隧道回及时关闭,避免形成数据空洞
开启keepalive检测后,GRE隧道会定期(5秒)向对端发送keepalive
在隧道接口使用
MGRE
NHRP----下一跳解析协议
在私网中选择一个出口物理IP不会发生改变的设备作为NHRP的中心节点(NHS)。这样,剩下的分支都可以知道中心节点的隧道IP地址和物理IP地址
然后,NHRP要求所有分支都需要将自己的物理接口IP地址和虚拟接口IP地址的映射关系发送给NHS。此时NHS会将所有分支的地址映射关系记载到动态的NHRP表中。当需要发送信息时,查看NHRP表进行数据封装。
Hub-Spoke架构
Hub就是服务器----中心节点
Spoke客户端----分支节点
DSVPN---动态智能VPN技术
MGRE+NHRP
Mgre隧道:
1,静态隧道(spoke到hub的)
2,动态隧道(spoke到spoke)
NHRP映射表
1,静态表项(不会死亡)
网络工程师手动配置
2,动态表项
由NHRP协议动态生成
hub节点通过nhrp注册报文提取到各个spoke的Tunnel地址和公网地址生成NHRP动态映射表
各个spoke通过nhrp解析报文提取对端spoke的Tunnel地址和公网地址生成NHRP映射表
老化时间---7200S
NHRP映射表的建立过程
建立spoke向hub之间的mgre隧道
1,spoke向hub注册
spoke将定时向hub发送NHRP注册请求报文,该报文中携带了spoke节点的tunnel地址和公 网地址
2,hub向spoke注册应答
hub从NHRP注册请求报文中提取spoke节点的tunnel地址和公网地址,并生成NHRP映射 表,进而建立hub与spoke之间的隧道。
并发送注册应答报文给spoke节点。
分支之间的路由学习
1,分支之间互相学习路由信息-----非shortcut方式
2,分支的路由汇聚到中心(hub)-----shortcut方式
建立spoke与spoke之间的mgre隧道
根据分支之间的路由学习方式不同,NHRP映射表的生成过程也不同,故,分支之间的MGRE隧道建立 方式不同
1,非shortcut方式
源spoke可以学习到目的spoke的tunnel地址,因此,源spoke可以直接根据目的spoke的 tunnel地址来查找目的spoke的公网地址,从而生成目的spoke的映射关系
2,shortcut方式
所有spoke的路由下一跳均为hub的tunnel地址,源spoke无法学习到目的spoke的tunnel地 址。因此,源spoke只能根据报文的目的地址来查找spoke的公网地址,会生成目的spoke的 子网地址和公网地址的NHRP映射关系
MGRE的非shortcut方式
在MGRE配置完成的基础上配置
MGRE的shortcut方式
在MGRE配置完成的基础上配置
spoke都要配置(即各个分支都要配置)
MGRE环境下的RIP网络
因为RIP是以组播发送应答报文,而MGRE环境下是P2P通讯,实际上发送的是单播报文。因为是单播行 为,分支会发送给中心;而中心不会发送报文,因为中心的NHRP映射表存在多种关系,不知道该给谁发送报文 数据。
这就会导致所有分支均使用单播的方式给中心发送信息,中心学习到所有路由信息,但分支一条路由都学 习不到。
在MGRE配置完成下配置
中心:
[r1-Tunnel0/0/0]nhrp entry multicast dynamic ---开启伪广播功能 通过给所有分支分别发送一次单播数据包,以达到广播行为
分支在中心开启为广播功能后,只能获取到中心的路由信息,但是无法获取到分支之间的路由信息。因为 华为设备默认开启RIP的水平分割机制,导致中心不会从隧道接口将学来的分支路由发送给其他分支。
[r1-Tunnel0/0/0]undo rip split-horizon ---关闭水平分割机制---非shortcut方式
[r1-Tunnel0/0/0]rip summary-address 192.168.0.0 255.255.248.0 ---汇总方式解决----shortcut方式
OSPF
由IEPF开发
OSPF基础
动态路由的批评标准
1,选路
2,占用资源
3,收敛速率
OSPF-----开放式最短路径优先协议
适应范围----IGP
算法类型----链路状态型协议
私有算法----SPF算法---最短路径优先算法
OSPFv2与RIPv2对比
相同点: 1、都是无类别路由协议 2、均采用组播方式更新数据 3、均支持等开销负载均衡
不同点: RIPv2仅适用于小型网络;OSPFv2可以应用在大中型网络中。
OSPF区域划分-----或结构化部署
OSPF域----将一系列连续的OSPF路由器组成的网络称为OSPF域
如果一台路由器的多个接口分别接入了不同的区域,则它将为每个区域分别维护一套LSDB
好处: 多区域的设计限制了TOPO信息的洪泛,有效的将拓扑变化的影响控制在区域内部。
要求:
-
OSPF要求域中所有的非骨干区域都必须与Area 0相连。(如果没有则容易形成环路)
-
骨干区域不能被分割(
OSPF区域结构部署规则的必要性
ABR设备(区域边界路由器)
-
至少连接两个以上的区域
-
连接的区域中至少有一个是区域0(骨干区域)
-
在骨干区域中至少有一个活跃的邻居
作用:将A区域的拓扑转换成路由后,发送到B区域中。-----传递域间路由信息。
ABR设备(区域边界路由器)
至少连接两个以上的区域 。连接的区域中至少有一个是区域0(骨干区域) 。在骨千区域中至少有一个活跃的邻居
作用: 将A区域的拓扑转换成路由后,发送到B区域中。-----传递域间路由信息
非骨干之间不允许直接相互发布区域间路由信息。
OSPF规定:从非骨干区域收到的路由信息,ABR设备能接收该路由但不会使用这条路由信息(OSPF的区域水平分割原则)。----从一个区域学习到的路由信息,不能再传递回该区域。
总结:
OSPF规定: 1、伪ABR设备---不允许转发区域间路由信息 2、真实ABR设备 能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域 能够将自己直连的骨干区域的的区域内路由信息传递给非骨干区域 能够将自己从骨干区域学习到的域间路由信息传递给非骨干区域
OSPF路由器角色
-
内部路由器---IR
-
所有接口都属于同一个OSPF区域
-
-
区域边界路由器---ABR
-
骨干路由器---BR
-
接入Area 0的路由器
-
-
AS边界路由器---ASBR
-
工作在OSPF自治系统边界的路由器
-
负责将域外的路由信息引入到本域内。---默认不进行路由引入
-
并不是同时运行了多种路由协议的OSPF路由器就一定是ASBR,ASBR一定是将外部路由重发布到OSPF,或者是执行了路由重分发
操作的路由器OSPF数据包
-
OSPF数据包
在hello报文
-
用来发现、建立OSPF邻居关系,周期保活。224.0.0.5;10S;40S。
-
操作的路由器RID---全域唯一
-
配置方式:
-
1,手工配置:满足32位二进制,且点分十进制表示,全域唯一
-
2,自动配置:默认优选最大环回IP地址,没有环回则选择最大物理IP地址
-
在启动OSPF进程前,必须有接口IP地址。若有IP地址,则在第一次启动OSPF进程时,会选取第一个配置的IP地址作为RID值。
-
在思科设备中,若没有IP地址,则OSPF启动失败。 在华为设备中,若没有IP地址,则OSPF启动后,RID为0.0.0.0
-
华为标准:状态最先UP的接口的IP地址作为RID RFC标准: 1、取loopback接口IP地址中最大的作为RID 2、取物理接口IP地址最大的作为RIDDBD包
DBD包
-
数据库描述报文
报文中携带的是路径信息摘要
避免重复更新(即减少数据的传输)
-
LSR包
链路状态请求报文
请求获取未知的链路信息
-
LSU包
链路状态更新报文
携带真实LSA信息的数据包
-
LSAck包
链路真实状态确认报文(确认收到LSA信息,不是确认收到LAU信息)
OSPF状态机
OPFdown---关闭----一旦启动OSPF进入下一个状态,并发送hello报文
-
init---初始化状态---收到的hello报文中存在自身的RID值,则进入下一个状态
-
2-way---双向通讯----邻居关系建立的标志。---稳定态。
条件匹配:匹配成功进入下一个阶段,匹配失败则停留在2-way状态,保持邻居关系,仅使用hello报文保活。
-
exstart---预启动---使用未携带LSA摘要信息的DBD报文进行主从关系选举,选举规则是RID值越大越优。
-
exchange---准交换----使用携带LSA摘要信息的DBD报文进行链路数据库共享。
-
loading---加载状态---邻居之间使用LSR/LSU/LSAck报文来获取完整的LSA信息。
-
full----转发状态----拓扑交换完成后进入该状态,标志着邻接关系的建立。---稳定态
条件匹配
选举规则:
-
比较接口优先级,0-255;默认值为1。越大越优。
-
比较RID值,越大越优。
非抢占模式----一旦选举成功,不因为新加入的设备而重新选举。
过程:
1、DR、BDR的选举是通过hello报文来实现,选举过程发生在2-way状态之后。
2、路由器将自己接口的DR优先级填写到hello报文中。
3、华为DR修改方式:在接口视图下,ospf dr-priority
4、DR优先级为0的接口不具备DR和BDR的选举资格。
5、当接口激活OSPF后,首先检查接口连接网络上是否存在DR,如果存在,则接收已存在的DR设备(因为非抢占性),否则拥有最高DR优先级的设备接口将成为DR,当优先级相同,则拥由最大RID的路由器接口将成为DR。
6、BDR的选举过程与DR相同,但是在DR选举之后进行。
Attempt:尝试状态(在NBMA下) 在NBMA网络类型下,如果需要启动OSPF协议,需要使用peer命令指定邻居IP地址,否则不会发送hello报文,配置该命令后,邻居状态会进入到init。
OSPF工作过程
1,启动配置后,OSPF将向本地所有运行OSPF协议的接口以组播224.0.0.5的方式发送hello报文,hello报文中RID值和接口优先级;此时路由器的状态进入到init。
2,当路由器收到的hello报文中存在本地的RID值(hello包中的邻居字段),会建立邻居关系----生成邻居表。(邻居关系建立后的瞬间就生成LCDB(链路数据库表))
3,进入2-way状态,在2-way状态后执行条件匹配操作,若选举成功,则进入邻接关系建立过程;若选举失败,则停留在2-way状态,仅使用hello报文进行保活。
条件匹配:选举主从设备,选举规则,RID大的为主,比较接口优先级(优先值对比不同路由信息,开销值对比相同的路由信息)
4,邻接关系建立
使用未携带摘要信息的DBD报文进行主从关系选举,RID值大的为主。主设备会先进入到下一个状态。
之后,从设备先发送携带摘要信息的DBD报文进行LSA目录信息共享
主设备通过对比接收到的DBD报文中的摘要信息与自己本地的LSDB数据库信息,从而查找未知LSA。
通过发送LSR报文/LSU/LSAck报文获取完整的未知LSA信息。
当所有未知LSA信息均获取成功后,填充完整本地的LSDB。
5,当网络中所有设备获取到相同且完整的LSDB后,每台设备基于LSDB根据SPF算法生成有向图和最短路径树,之后根据计算结果获知网络中所有的未知网段的最短路径,然后将其添加到本地OSPF路由表中。
6,根据本地所有路由表信息,从而选择最优路由加载如全局路由表。
7,此时,网络收敛完成,仅进行Hello包周期保活。且每30min进行一次周期链路状态刷新。
当A和B已经建立了邻接关系后,B的一个环回或有网段断了后,B会触发更新,用LSU报文向外发送数据,告诉A。
OSPF报文格式
OSPF报文头部(固定24字节)
-
路由器ID----路由器的OSPF协议中的RID值。
-
区域ID----发出该报文的接口所属于的区域的ID值。
-
认证类型
-
不认证
-
明文(简单)认证
-
MD5认证
-
-
认证数据
-
用于报文认证的内容
-
如果认证类型为不认证,则该字段全用0填充
-
Hello包
网络掩码(Network Mask)
-
该字段填充的是发送该hello报文的接口的掩码信息。
-
OSPF邻居关系建立过程中需要比对掩码信息,从而验证对端是否路由可达---华为私有
-
如果一方在接口上收到的hello报文中"网络掩码"字段与本接口不同,则忽略该hello报文,此时邻居关系无法建立
-
如果此时已经建立了邻接关系但修改了一个路由器的掩码信息,则该路由器会立即断开OSPF连接回到dowe状态,而对端路由器会等到死亡时间后才断开连接
-
如果两台OSPF路由器通过MA网络直连,则需要验证;若通过点到点网络则不需要验证该参数
Hello间隔
-
接口周期性发送hello报文的时间间隔---秒
-
两台设备需要保证Hello时间间隔相同,否则邻居无法正常建立
-
如果建立了邻接关系后,修改Hello时间,要同时修改该区域的Hello时间,否则会引起邻居震荡,或无法建立邻居
可选项(option)
-
该字段具有8个标记位,每一个标记置为1,则代表OSPF实现某种特性。
-
特殊区域标记
路由器失效时间
1,指的是邻居路由器被视为无效之前,需等待收到对方hello报文的时间。---秒
2,两台设备的该参数若不同,则邻居关系无法正常建立。
DBD报文
接口最大传输单元----MTU
默认情况下,该字段值为
华为默认不进行MTU值检测,可以开启该功能
**[r1-GigabitEthernet0/0/0]ospf mtu-enable ---开启MTU检测机制,两端都需要开启。**
如果双方都开启该功能,则进行MTU检测,若两边相同,则检测通过;若两边不同,则状态卡在exstart状态
可选项:
I表示主从关系选举
M表示后续还有DBD报文
MS表示是否为主设备(MS为0表示从设备,为1表示主设备)
BDB序列号
DD报文的序列号,在DD报文交互过程汇总,序列号逐次加一,用于确保DD报文传输的有序和可靠性
DD序列号必须由Master路由器来决定,而从路由器只能使用Master路由器发送的DD序列号来发送自己的DD报文 ----隐性确认机制
DD报文的交互过程会一直持续,直到双方的LSA摘要信息全部发送完成。---本地的LSDB接收完成
LSR报文
链路状态类型、链路状态ID、通告路由器----LSA三元组,通过这三个参数可以唯一的标识出一条LSA信息
LSAck包
显性确认机制。头部:20字节
OSPF的接口网络类型
ospf接口网络类型,实际上是指ospf的接口在某种网络类型下的一种工作方式
**[r3]display ospf interface GigabitEthernet 0/0/0 ---查看OSPF接口网络类型**
OSPF在BMA类型的接口上通常以组播的方式发送hello报文、LSU报文以及LSAck报文。以单播的形式发送DD报文和LSR报文
点到点类型
此时有且只有一个邻居
OSPF在网络类型为P2P的接口上以组播的方式发送所有OSPF数据报文
用组播的原因在于点到点可以没有IP地址,所以用组播
环回接口
华为特殊将环回接口的开销值定义为0。
定义为0是在于修改了参考带宽不会影响环回
Type中的参数是由P2P进行填充,华为没有为该字段定位内容,而cisco(思科)则定义了一个loopback类型作为环回接口的类型。
所有通过OSPF学习到的环回接口的路由掩码信息都是32位。也就是每台设备学习到的路由条目是主机路由。该方式可以在保证路由信息的精准性的前提下,避免环路或者路由黑洞问题
**修改接口网络类型:[r2-LoopBack0]ospf network-type broadcast**
把环回的接口网络类型改为broadcast(即MA网络),此时通过OSPF学习到的环回接口路由掩码是24位(这样可以更加模拟用户网段),但要进行DR和BDR
在DR和BDR选举时,会启动一个waiting计时器,该计时器的时间与dead时间相同,当计时器时间超时后,该接口会认为自己就是DR设备。----且设备会进入exstart状态。(因为没有办法选主从,所以才停在exstart,但超过一定时间会返回2-way)
此时R7为中心,但类型为p2p类型是一个点到点的网络类型,此时只能与一个路由器建立邻接关系,但此时R7不会发送hello报文(因为p2p类型的,而此时有两个设备),所以要开启R7的伪广播功能,此时会与R8建立邻接关系但不会和R9建立任何关系(即R9发送的hello包R7不会接收)
解决办法:修改网络类型,所以设备都要修改(修改成broart类型,BMA,要进行DR和BDR选举
如果修改R7只修改一个,则一个要进行DR和BDR的选举,就会根据RID进行主从关系选举,此时R7会看到R9的RID大会直接认为R9是DR,所以此时和R9正常建立关系而认为R8是BDR,但R8不认识R9,则R8只能和R7进行BDR选举,但R8是p2p类型的不需要进行DR和BDR的选举,此时R7会卡在2-way状态,R8会卡在extart状态
如果都修改网络类型了,但R8和R9不认识,所以此时在R8的视角里认为自己是DR,在R9的视角里认为自己是DR,R7都为BDR,因为他们之间学习不到路由,所以不能建立tunnle隧道
解决办法:手工让R8和R9放弃DR选举
cost(开销值):因为tunnle接口会进行数据的封装和解封装和转发到真实接口的功能,华为把开销值改大,因为不希望有 其他可选的路由情况下选择tunnle接口(因为会封装和解封装会消耗资源)
华为将tunnel接口的传输速率定为64Kbps。
在Hub-Spoke架构中,运行MGRE时,使用OSPF协议学习路由信息,需要将隧道接口的OSPF网络类型修改为BMA,全网均修改。且手工干涉DR选举,将DR选举在Hub节点
full--mesh的架构,即都为中心,各个路由器都相互注册
点到多点的类型(p2mp)
只能由网络管理员手工修改设置。
配置即把网络类型改为p2mp
在P2MP网络中,接口通常以组播的方式发送hello报文,以单播的方式发送其余报文
非广播型多路访问类型(NBMA)
在NBMA网络中,邻居双方均需要手工指定自己的邻居,从而才可以发送出OSPF报文信息。在该接口网络类型下,所有的OSPF报文以单播的形式发送数据。
OSPF的不规则区域划分
-
所有非骨干都必须与骨干直接相连
-
骨干区域不能被分割
不规则区域主要有两种情况:
-
远离骨干的非骨干区域
-
不连续骨干区域
解决不规则区域的最佳方式----重新规划OSPF配置和内容,使得整个OSPF域满足区域划分的规则。
使用tunnel隧道,让R3成为ABR设备
使用该方式解决不规则区域的问题。
-
可能产生选路不佳。
(R3传递信息给R5再传给R2的开销值为3,如果传递给R6再传给R2的开销值为97,但此时R3传给R2的开销值为1653)即选择了tueele隧道,因为R3传递的路由信息,而R5和R6传递给R2的路由信息属于域内传递,则R2此时只接收但不用
-
可能造成重复更新。
因为发送给R1或R2时R5和R6也会传递给R2,发送给R4时,R5和R6也会传递给R3
-
因为存在虚拟链路,R2和R3之间也需要建立邻居关系。导致他们之间维护的周期性数据将穿越中间区域,导致中间区域的资源消耗增加
配置:宣告的时候要宣告在area0
虚链路---Vlink
专门为了解决OSPF不--规则区域所诞生的技术。
思路:让真实的ABR设备给伪ABR设备进行一次担保,给予伪ABR设备传递路由的功能,或者说给予一个ABR设备的权限
配置
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 ----建立Vlink邻居,该参数为邻居的RID值
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
配置:在区域1配置
配置位置在于设备需要穿越的区域。虚链路的只能穿越一个区域,,,-,,,--原因在与配置的时候使用的是RID值,而RID值只能在同一个区域找到,设备无法跨越区域找到RID所对应的设备。
[r2]display ospf vlink ---查看vlink邻居关系
Vlink被视为是骨干区域的一段延伸(Vlink永远属于Area 0)
缺陷:
-
只能穿越一个区域
-
Vlink之间需要建立邻居,故会消耗穿越区域中的链路资源
没有重复关系,因为Vlink为虚拟的隧道只是授权给R3,让R3有ABR的功能
实际上,Vlink更多应用在一些修复次优路径或者骨干区域不健壮问题上。
骨干链路单点故障问题
在R3和R4上配置Vlink,,如果区域0的R1和R2的链路断了,此时不会出现问题(即解决了骨干链路不健壮的问题)
如果R4去R3的0/0/1接口也可以用Vlink,不用侥路
Vlink环路问题
场景一
Vlink选择不恰当,可能会引发环路问题。----解决方式,在物理链路相连的两台设备上建立vlink。(即在R3和R4上配置Vlink)
场景二
在R2做汇总,则会发送给R3,,而R4也手工汇总也会把自己的汇总发送给R3,此时R3会接收到两个汇总,发送时会发送给R2和R4
解决思路:OSPF规定,Vlink所在的非骨干区域,不能传递汇总路由。也就是说,ABR设备不能向配置了vlink链路的区域传递汇总路由
多进程双向重发布
把区域0和区域1配置进同一个进程,把区域2为一个进程
配置
[r3-ospf-1]import-route ospf 2 ----引入OSPF进程2的信息
[r3-ospf-2]import-route ospf 1
此时R3被称为ASBR,因为其运行在不同的网络中,且执行了重发布操作。
重发布就是在运行了不同协议或不同进程的边界设备上,将一种协议按照另一种协议的规则发布出去**。
重发布操作在引入路由信息时,会清除掉该路由信息原本的度量值,但是在引入时,该参数不能没有,故会赋予路由信息一个种子度量值。
OSPF对于域外路由信息的标识为O_ASE;优先级为150。
在同一个区域种R1和R3为同一个RID,此时可以正常和R2建立邻接
但在有环回时或有其他路由建立在路由器上时,R1会给R2发送LSU,而R2接收到后会回复ACK报文给R1,同时R2也会发送LSU给R3,而此时R3自己是RID为1.1.1.1是的,R3此时会觉得这个报文信息错误,会发送LSU来纠正,而R2也会发送给R1,而R1则认为我的信息没有错误,也会进行发送LSU纠正,这时会频繁引起邻居震荡
但经过一段时间后R1和R3会有其中一台路由器会自动修改RID,从而会进行正常建立连接(但此时的DR都是R2)
如果RID的相同,此时手动配置R2放弃DR选举,此时会引起长时间邻居震荡,华为设备会在15分钟后强行将DR给R2
OSPF的LSA详情
查看命令:dispiay ospf lsdb
LSA头部
链路状态老化时间
一条LSA的老化时间,16bit整数。(即65535),在本地产生LSA的信息时,就会产生该老化时间
-
当该LSA被始发路由器产生时,该参数有效,且数值为0。之后随着该LSA在网络中被洪泛,老化时间逐渐累加。
-
一般情况下,老化时间不会超过1800S(即周期链路刷新)
该参数存在最大老化时间---3600S(即刷新时始发路由器没有发出新的LSA来更新时间或路由器没有接收到,此时就会超过1800s,但不会超过3600s)。
当一条LSA的老化时间到达最大老化时间时,将被认定失效,从本地的LSDB中删除
在OSPF网络中,只有始发路由器能够提前使某条LSA老化,即有意识的清除该LSA信息。
组步调计时器(240s)
路由器上连接着很多的信息,且其他的路由器的每条LSA的老化时间都不同,此时该网络中就会无时无刻有LSA的老化时间更新的LSA报文,所以就会有组步调时器的240s来缓存一下让 在这段时间内的LSA老化时间超过1800s的LSA报文一起打包发送(即到1800s时不会立刻发送)
可选项----与hello报文相同
-
链路状态类型-----本条LSA的类型,不同LSA类型在描述不同OSPF的信息
-
链路状态ID-----LSA的标识。不同的LSA类型,该字段内容含义不同。
-
通告路由器-----产生本条LSA的路由器的RID。
-
链路状态序列号----标识一条LSA的新旧
-
每台路由器在发送相同LSA信息时,序列号逐次加一。
-
序列号起始为0x80000001
-
序列号截止为0x7FFFFFFF
-
-
链路状态校验和:参与到LSA的新旧关系比较中。
长度---LSA的总长度
判断LSA的新旧关系
OSPF使用链路状态序列号、校验和以及老化时间来判断LSA的新旧关系。
-
拥有较高链路状态序列号的LSA被认为是最新的LSA信息。
-
如果序列号相同,则比较校验和,拥有较大校验和的LSA被认为更新。
-
如果校验和与序列号均相同,则比较老化时间。
-
如果某条LSA的老化时间为3600S,则认为该LSA最新。
-
如果没有任何一条LSA老化时间为3600S,则比较两条LSA老化时间的差值。
-
如果差值大于15min,则认为老化时间小的LSA为更新
-
如果差值小于15min,则认为这两条LSA相同。
-
-
LSA的洪范到边界路由去的时间不能超过15分钟
类型
链路类型----该类型不是所谓的网络类型。
-
**链路类型不同,导致链路ID和链路数据内容不同
Type-1 LSA
LSA的Type名称为Router的LSA是一类LSA信息。每台路由器的所有属于相同区域的接口共用一个一类LSA信息。如果路由器连接在多个区域,则会在多个区域单独产生一条一类LSA信息来描述自己属于该区域的拓扑信息。
V----代表该路由器是vlink链路的端点
E----该路由器为ASBR设备
B----该路由器为ABR设备
链路数量-----该字段指明该一类LSA包含了多少条Link。每条link均包含链路ID、链路数据、度量值等信息
Type-2 LSA
type的名称为network
DR会在本区域内洪泛Type-2 LSA信息,来列举出接入该MA网络的所有路由器的RID信息,以及这个网络的掩码信息。2类LSA有且只有本区域的DR设备可以发送
链路状态ID--->描述DR的接口IP地址
Type-3 LSA
type的名称为summary
Type-3LSA中的开销值,指的是该LSA的通告者到达目的地的开销值。而接受这对于该路由信息在加入到路由表时的开销值等于LSA中的开销值加上本地到达该LSA通告者的开销值之和。
3类LSA传递路由信息的方式类似于距离矢量型协议的方式,通告者就是到达目标网段的下一跳。所以,接收者在收到三类LSA后,需要根据1类和2类LSA信息计算拓扑信息从而来寻找三类LSA的通告者。如果可以找到则本条3类LSA可用,如果递归不到,则忽略该3类LSA信息
如果,通告者是所在区域的ABR设备,那么自然可以寻找到三类LSA的通告者,从而该路由可用。但当LSA信息跨区域传输时,接收者就无法递归到始发该3类LSA的通告者,因为不在同一个区域内部,无法使用1、2类LSA递归。故3类LSA在传输时,若需要跨越区域,则由每个区域的ABR重新构造一个新的描述相同目标网段的3类LSA信息发送
Type-5 LSA
type的命令名称为ase,由ASBR设备发送,整个OSPF域中传播,传递的是路由信息
度量值----外部路由的开销值
该常量值为1。(即种子度量值)可修改
**[r4-ospf-1]import-route rip 1 cost 10 ---在重发布时修改种子度量值**
E位----用于表示外部路由使用的度量值类型
类型1---E位为0,则代表使用类型1。---域内所有设备到达目标网段的开销值等于本地始发出该条LSA的ASBR的开销值加上种子度量值。
类型2---默认---当一个域外的LSA信息使用该类型时,则域内所有设备到达域外目标网段的开销值都等于种子度量值。
**[r4-ospf-1]import-route rip 1 cost 10 type 1 ---修改域外路由信息的开销值类型**
Options字段在五类LSA中,显示为E(代表可以洪泛五类LSA)。
外部路由标记
用于区分路由是否是外部的路由
华为默认为1
可以修改
r4-ospf-1]import-route rip 1 tag ? ----设定外部路由标记
转发地址---FA
在五类LSA中默认为0.0.0.0,当FA字段不为0.0.0.0时,则数据层面流量的转发依照转发地址进行数据传输地址----FA
作用:在R1的路由器上导入RIP的网络,此时的FA(即转发地址)的默认为0.0.0.0,即域内的信息要出去需要找到R1,在由R1转发出去,但由图可以看出由R2转发出去会更好,而由R1转发出去就会形成选路不佳,此时把FA修改为R3的接口IP地址就可以发送给R2,由R2转发出去
当同时满足如下条件时,FA字段才被允许设定为其他值。
1、引入外部路由的ASBR在其连接外部网络的接口上激活了OSPF
2、该接口没有被配置为静默接口
3、该接口的网络类型为MA
4、在接口的IP地址在OSPF中被network命令激活
Type-4 LSA
type的名称为asbr
作用:辅助type-5(即域内的其他路由递归不到R4的位置,此时需要4类来辅助找到R4即ASBR)
4类LSA的LS ID是ASBR的RID值。4类LSA又被称为ASBR汇总LSA,是一条到达ASBR的主机路由信息。4类LSA的任务就是辅助5类LSA完成验算过程,找到ASBR的位置。
4类LSA服务多条5类(即不管5类有多少条但服务的4类只有一条)
Type-7 LSA
7类LSA的报文格式与5类LSA相同。只能在NASS区域传播
Options字段在五类LSA中,显示为E(代表可以洪泛五类LSA)。
N---代表允许处理7类LSA信息,仅在NSSA区域置为1 P---代表支持7转5操作,一般与N位共同使用。----该标记位加密,抓包看不到
转发地址----应对选路不佳的情况,如果存在选路不佳的情况,则通告者会把最佳的下一跳放入转发地址中,接收者看到FA字段,则将不按照算法来计算下一跳,而直接使用转发地址作为下一跳,在7类LSA中,一般会使用通告者(ASBR)设备的环回接口IP地址作为转发地址。如果存在多个环回接口,则将使用最先宣告的地址作为转发地址;如果没有环回接口,则将使用物理接口作为转发地址
路由撤销
1类LSA撤销:通过序列号+1,校验和不变,老化时间为0的方式进行路由撤销(即发送一条不包含断开的路由信息的新LSA)
2类LSA撤销:1、使用序列号+1的方式撤销路由(网络中还存在自己的邻居);2、使用老化时间3600S进行路由撤销(网络中不存在自己的邻居)
3类LSA撤销:使用老化时间3600S进行路由撤销,序列号不变
5类LSA撤销:使用老化时间3600S进行路由撤销,序列号不变。
OSPF优化
优化主要为了减少LSA的更新数量
-
路由汇总---减少骨干区域的LSA
-
OSPF特殊区域---减少非骨干区域的LSA
1,OSPF路由汇总(路由聚合)
域间路由汇总----在ABR设备上部署
[GS-R2-ospf-1-area-0.0.0.1]abr-summary 192.168.0.0 255.255.224.0 ---汇总位置必须是路由信息的来源区域
[GS-R3-ospf-1-area-0.0.0.2]abr-summary 192.168.32.0 255.255.224.0
域间路由汇总只能在明细路由所在区域的ABR身上配置,不能在其余ABR上配置。 执行完汇总操作后,只要站点内这条汇总路由所涵盖的明细路由中有一条是有效的,则会继续通告该汇总路由,当所有明细失效后,汇总路由会被撤销----汇总并不会影响ABR设备自身的明细路由信息。
域外路由汇总---在ASBR上配置
配置
[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0 ---域外路由汇总,在ASBR设备上进行
注意:所谓的最大开销值就是种子度量值。
-
Type-2:汇总网段的开销值等于所有明细路由开销值最大值加1。
-
Type-1:汇总网段的开销值等于所有明细路由开销值最大值。
2,OSPF特殊区域
第一大类:1,不能是骨干区域;2,不能存在虚链路;3,不能存在ASBR设备
第二大类:1,不能是骨干区域;2,不能存在虚链路;3,必须存在ASBR设备
第一大类
末梢区域(Stub Area)
如果将一个区域配置为末梢区域,则这个区域将不再学习4类和5类LSA。---ABR设备将不会在向该区域转发4类和5类LSA信息。---但是该区域还可能需要访问域外路由信息,故会 自动生成一条指向骨干区域的三类缺省路由
配置
[r1-ospf-1-area-0.0.0.2]stub
[r5-ospf-1-area-0.0.0.2]stub---即所以末梢区域的路由器都要配置
所有区域内的设备都必须配置为相同的特殊区域
完全末梢区域(Totally Stub)
在末梢区域的基础上,进一步拒绝学习3类LSA信息,仅保留3类缺省路由信息
配置
[r1-ospf-1-area-0.0.0.2]stub no-summary ---完全末梢区域,在ABR上配置即可
第二大类
非完全末梢区域 (NSSA) type-7(7类)
拒绝4类和5类LSA信息 因为该区域存在ASBR设备,故需要将域外路由信息引入到本区域,因为拒绝5类LSA的学习,所以只能以7类LSA的形式传递。之后,在7类LSA信息离开NSSA区域后,需要在转换为5类LSA进行传输
此时R3把7类转换为5类,再向外发送,此时在其他路由看来R3就成为ASBR,但此时要发送给R4才能转发给域外,此时其他的FA(即转发地址)会为R4的IP地址(转换成5类的原因在于其他路由要递归发出者路由即下一跳,5类有4类的辅助,所以直接转换成5类)
即减少了4类的发送和其他路由来访问的5类和4类
将某区域配置为NSSA后,该区域的ABR设备会自动生成一条7类LSA描述的缺省路由信息,指向骨干区域
[r1-ospf-1-area-0.0.0.2]nssa
[r5-ospf-1-area-0.0.0.2]nssa
完全的非完全末梢区域(Totally NSSA)
在NASS的基础上拒绝3类LSA,自动产生一条3类缺省路由
[r1-ospf-1-area-0.0.0.2]nssa no-summary ----在ABR设备上配置
在完全NSSA区域,会看到3类缺省和7类缺省,设备会选择3类缺省。
NSSA换路
产生原因:RTC此时会在MSSA区域进行5类转7类下发LSA,此时RTA进行3类下发缺省,此时RTB会接收到俩条缺省,他会用3类的缺省路由,而RTA也会接收到RTC发送的7类缺省路由,此时就会产生环路
而华为设备就自动在RTA产生一个7类LSA
而其他有些设备要手动配置
总结
-
NSSA区域的七类LSA实际上是需要ASBR或者ABR自己下发的。
-
如果多台设备均下发7类缺省路由成功,则虽然都会受到LSA信息,但是并不会将其他路由器发布的路由加载到本地路由表中。因为始终相信自己的缺省路由是最好的。
-
而对于第一台发布7类缺省路由的设备而言,会认为自己身上已经具备一条去往外部区域的路由,并且本地作为通告者,那么当其接收到其他设备发送的7类缺省路由,也不会进行学习。-----该逻辑解决了NSSA环路问题
-
华为的解决方案:保留了NSSA区域由ABR设备产生的7类LSA缺省路由
OSPF规定:在NSSA区域中,可能同时存在多个ABR,为了防止路由环路的产生,边界路由器之间不计算对方发布的缺省路由信息。
NSSA负载分担解决次优路径问题
OSPF对于7转5操作有严格规范:
-
P比特位用于告知路由器该Type-7 LSA是否需要被转换。
-
转换路由器是NSSA区域中RID值最大的ABR设备。
-
只有P比特位和FA字段不为0的Type-7 LSA才能被转换
[r3-ospf-1-area-0.0.0.1]nssa suppress-forwarding-address ---在进行7转5时,抑制FA字段
[r1-ospf-1-area-0.0.0.1]nssa translator-always ---强制开启进行7转5操作
NSSA区域如果没有FA字段,将会有很大可能性因为7转5操作出现次优路径