HCIP
复习hcia的第2部分内容:
HTTP协议----超文本传输协议
是基于TCP协议(先建立TCP通道)进行工作,端口号80。
TCP----传输控制协议
是一种面向连接的可靠传输协议。
可靠性
-
确认----每收到一个报文,就需要进行一次信息确认。----依靠序列号、确认序列号以及确认标记位。
-
重传----超时重传,当一个数据段中的某一个数据报文丢失,会要求重新传输丢失的报文。----依靠序列号以及数据偏移量。
-
排序----一个数据段被分为多个数据包,从不同路径进行传输,最终达到目的地的顺序被打乱,需要重新排组。----依据序列号字段完成。
-
流控---滑动窗口-----通过调节窗口大小(无需等待确认就可以连续发送的数据的最大量)来对流量的流速进行控制。
面向连接
-
三次握手
-
四次挥手
应用层 | HTTP请求报文---请求方式:GET(请求网页信息) |
---|---|
传输层 | TCP;源端口:随机端口;目端口:80 |
网络层 | IP协议;源IP:PC;目IP:Web服务器 |
数据链路层 | 以太网协议;源MAC:连接服务器的接口;目MAC:服务器MAC |
应用层 | HTTP应答报文----应答状态码:200 |
---|---|
传输层 | TCP;源端口:80;目端口:请求报文中的源端口 |
网络层 | IP协议;源IP:Web服务器;目IP:PC |
数据链路层 | 以太网协议;源MAC:PC的网关接口;目MAC:PC |
应答状态码:
100 通知信息(访问超时,也就是服务器正在处理你的请求,只是访问量比较大,没处理过来)
200 成功访问
301 重定向
403 禁止的页面
404 页面无响应
500 服务器内部错误
503 稍后重试
静态路由
优点
1、安全
2、选路
3、资源占用
缺点
1、配置量大
2、维护困难
静态路由基本配置
方法一:ip route-static 192.168.2.0 24 12.0.0.2(在以太网中用MA)
需要递归来查找路由的出接口。(递归查找会消耗资源)
方法二:ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1(点到点的网络 P2P)
<span style="background-color:#f8f8f8"><span style="color:#333333"> 解决方式:
[r2-GigabitEthernet0/0/0]arp-proxy enable ---开启ARP代理
ARP代理思路:当接收到ARP数据包后,路由器会查看本地路由表,若本地路由表中存在目的IP地址(网络可达),此时该路由器会冒充IP地址来回答该ARP报文。
[r1]arp static 12.0.0.1 00e0-fc07-533c
静待配置arp</span></span>
路由器发送ARP的方式
-
以目的IP为ARP请求内容发送。
-
以下一跳IP地址为ARP请求内容发送。
方法三:ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1 12.0.0.2
写的参数比较多
方法四:ip route-static 192.168.2.0 24 23.0.0.3
<span style="background-color:#f8f8f8"><span style="color:#333333"> 下两跳-->多跳
需要提前铺垫好所有在递归查找过程中需要使用到的路由信息。需要把之前经过的所有路由补齐</span></span>
静态路由扩展配置
负载均衡---等价路由
目的相同,路由来源相同,开销相同,且下一跳不同。
手工汇总
减少路由表条目,加速设备查找路由速度。
缺省路由
[r3]ip route-static 0.0.0.0 0 LoopBack 0
路由黑洞
造成流量有去无回的状况。丢弃流量的路由器被称为黑洞路由器。
空接口防环
[r1]ip route-static 172.16.0.0 22 NULL 0
在黑洞路由器上编写一条指向空接口的汇总路由
浮动静态路由
作业
代理ARP场景
目的:为了让PC1与PC2在同一个广播域
静态路由与BFD联动
BFD---双向转发检测机制。
是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通情况。(任何一个协议都能与BFD共同使用)
<span style="background-color:#f8f8f8"><span style="color:#333333">[r1]bfd ----启动BFD协议
[r1]bfd aa bind peer-ip 10.1.12.1 ---创建BFD会话,会话名称为aa,对端IP为10.1.12.1
[r1-bfd-session-aa]discriminator local 10 本地标识符
[r1-bfd-session-aa]discriminator remote 20 对端标识符
注意R1和R2都要配bfd,且本地与对端标识符是相反的
[r1-bfd-session-aa]commit 提交配置
display bfd session all 查看bfd的全部会话
[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa ---将静态路由与BFD会话进行联动
</span></span>
缺省情况下,BFD会话每隔1000毫秒发送一次报文,当连续三次报文均无响应后,则BFD会话状态断开。与该BFD会话建立连接的协议会失效。
第二章,网络类型及数据链路层协议
网络类型是根据数据链路层所运行的协议及规则来划分的。
网络类型的分类
-
P2P----Point to Point ----点到点网络(一条链路上有且只有两个节点)
-
MA-----Multi-access Network----多点接入网络(一条链路上有多个节点)
-
BMA-----Broadcast Multi-access Network-----广播型多点接入网络(Broadcast---广播)
-
NBMA----Non Broadcast Multi-access Network----非广播型多点接入网络
-
数据链路层协议
MA网络
以太网协议---BMA
特点-----需要使用MAC地址对设备进行区分和标识。
BMA网络的构建方式:使用以太网线缆连接设备的以太网接口,形成的网络就是以太网网络,所运行的二层协议就是以太网协议。
(以太网线缆:双绞线,光纤)
(以太网接口:百兆以太网---Ethernet 千兆以太网---GigbitEthernet
万兆以太网----Ten GigbitEthernet)
NBMA---内容与IP课不牵扯
-
在现有技术只有ATM和FR可以实现
P2P网络
不需要MAC地址进行通讯。
P2P网络定义----当一个网络中只能存在两台设备,并且不允许第三台设备加入,这样的网络被称为P2P网络。
点到电网络的搭建:使用串口线缆连接设备的串线接口,形成的网络。
串口线缆:HDMI ,VGA
串线的GA标准
-
E1标准-----传输速率为2.048Mbps----欧洲标准
-
T1标准-----传输速率为1.544Mbps----北美标准
HDLC----高级数据链路控制协议
满足工业标准的标准HDLC协议。
<span style="background-color:#f8f8f8"><span style="color:#333333"> ISP根据SDLC(面向比特的同步数据链路控制协议)改进而来的HDLC协议。
同步----以帧为单位来传输数据
异步----以字节为单位传输数据</span></span>
非标的HDLC协议。
上述两种协议相互不兼容,思科设备默认采用的串线协议是非标的HDLC协议。
HDLC网络搭建
注意: 点到点网络是不需要ip地址来进行通讯的但是需要为上层应用服务
华为设备串口网络默认使用协议为PPP,而非HDLC。
[r1-Serial4/0/0]link-protocol hdlc ----在接口修改链路协议类型为HDLC Warning: The encapsulation protocol of the link will be changed. Continue? [Y/N] :y
串口线缆具备10秒钟的死亡时间。
HDLC接口地址借用
[r1-Serial4/0/0]ip address unnumbered interface LoopBack 0 ----从环回0接口借用IP地址
[r1]ip route-static 12.0.0.2 32 Serial 4/0/0 ---配置通往对端接口的路由信息。(两个路由器要互相配)
注意:用环回去借ip是极其稳定的,环回接口只要R1不出故障都不会影响到它(后面会经常用到)
在串线中无需配置接口IP地址,只需要从环回接口借用一个IP即可,但需要在对端设备上补充路由信息。且环回接口的IP地址配置为掩码32位,对端的路由信息编写主机路由。
PPP---点到点协议
优点
-
兼容性 (任何一种串型接口都支持ppp协议)
-
可移植性 (拨号上网)
-
速率快,因为PPP协议没有重传机制(但是开始建立会话连接的时候需要重传)
PPP会话的建立的3个阶段(ppp不是只有这3个协议,这些只是附属协议,ppp其实是一个大的框架)
-
链路建立阶段----LCP的协议
-
认证阶段---PPP认证(AAA的协议)----AAA就是认证,授权,计费的缩写
-
网络层协议协商阶段---NCP协商的协议
PPP链路链路过程
-
Dead阶段----物理层不可用阶段
-
Establish阶段----会进行LCP参数协商
-
Authenticate----认证阶段
-
该阶段不是必选项。(可有可无)
-
-
Network----NCP参数协商(协商ip地址是否合法,协商成功就正常使用)
-
Terminate阶段----该阶段在进行资源释放,若所有资源均被完全释放,则回到dead阶段。(双方要断开的阶段)
PPP数据帧结构
由于7E首尾都有,然后为了防止中间传输的数据携带7E因此就会对中间的7E进行转议
A:address C:control 协议就是看信息部分用的什么协议
LCP协议----链路控制协议(物理层)----完成PPP会话建立第一阶段的协商
NCP协议----网络控制协议----一系列协议的总称,完成PPP会话建立第三阶段时针对网络层协议进行协商。若网络层使用IP协议,则对应使用NCP协议中的IPCP(互联网协议控制协议)协议协商
LCP协议报文类型
-
链路配置报文
-
先发送request请求,然后对方看完之后正常情况会回复Ack确认报文,如果拒绝就会回复Nak(里面的参数都认识,但是里面的参数的数值不认可)和Reject(不知道发过来的是啥意思)
-
-
链路终止报文(为了跳过hdlc的10s死亡时间)
-
Terminater-Request
-
Terminater-ack
-
-
链路维护报文(检测底层链路是否成环)
-
Echo-Request---回波请求
-
Echo-Reply-------回波应答
-
链路建立阶段---LCP建立 (双向的)
<span style="background-color:#f8f8f8"><span style="color:#333333">1、MRU值----PPP数据帧所允许携带的最大数据单元,单位字节,默认值1500(MTU是最大传输单元,MSS最大传输段)
2、认证-----协商PPP会话建立第二阶段是否需要进行认证,以及使用何种方式认证。
3、魔术字-----用于检测链路中是否存在环路。</span></span>
协商过程
<span style="background-color:#f8f8f8"><span style="color:#333333"> A设备发送链路配置请求报文给对端,若没有收到对端回复的任何一个链路配置报文,则每隔3秒重传一次链路配置请求报文,如果连续10次发送链路配置请求,仍然没有收到回复报文,则认为对端不可用,停止发送报文。
如果对端不认可某些参数的数值,则回复的是NAK报文,该报文中将携带不认可的参数以及该参数的数值范围。本端收到该报文后,根据内容重新发送链路配置请求。
如果对端不认识某种参数,则回复Reject报文,该报文中携带不认可的参数。本端收到该报文后,删除该参数,并重新发送链路配置请求。</span></span>
认证阶段 (可以是单向,可以是双向)
PPP会话的建立是一次性会话,会话建立完成后,后续的修改不会影响到会话本身。
PPP本身不具备认证等功能,是通过调用AAA框架来完成的。
该认证可以是单向或者双向的。----一般实际应用汇总采用单向认证。
两种认证协议:
-
PAP-----密码认证协议
P2P是将需要认证的用户名和密码以明文的形式携带在数据报文中,发送给对端进行认证。
被认证方:R1
[r1-Serial4/0/0]ppp pap local-user huawei password cipher 123456 ----配置用户名和密码信息
认证方:R2
[r2-aaa]local-user huawei password cipher 123456 ----创建用户名和密码信息
[r2-aaa]local-user huawei service-type ppp ----修改服务类型
[r2-Serial4/0/0]ppp authentication-mode pap ----修改接口的认证方式
-
CHAP----挑战握手协议
认证双方通过对比摘要值的方式进行认证。
<span style="background-color:#f8f8f8"><span style="color:#333333"> 认证过程:
1、认证方先发送挑战报文,里面包含了认证方的用户名和一个随机值
2、被认证方收到该报文后,需要根据用户名信息查找对应密码,然后将密码信息与随机值一起做HASH运算得到摘要值,然后将该摘要值+用户名发送给认证方
3、认证方收到后,根据用户名信息查找本地密码信息,使用相同HASH算法进行计算,得出摘要值,将两个摘要值进行对比,若相同,则回复ACK报文;若不同,则回复NAK报文。
HASH----散列函数-----将任意长度的输入转换为固定长度的输出。(压缩技术)
特点:
1、相同输入,相同输出。
2、不可逆性。
3、雪崩效应或者蝴蝶效应
典型的HASH算法--->MD5(将任意长度转换为128位输出)</span></span>
配置
认证方
[r1-aaa]local-user admin password cipher 654321 [r1-aaa]local-user admin service-type ppp
[r1-Serial4/0/0]ppp authentication-mode chap
被认证方
[r2-Serial4/0/0]ppp chap user admin [r2-Serial4/0/0]ppp chap password cipher 654321
一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议并且正确配置用户名和密码信息。
网络层协议协商阶段---NCP协商
如果网络层使用的是IP协议,则需要使用IPCP协议进行协商。
-
协商内容
-
IP报文的压缩方式
-
IP地址
-
协商IP地址是否为可用IP地址
-
该IP地址是否与本地冲突。
-
-
-
协商过程
-
静态地址协商(双方均有ip地址)
-
-
-
如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同,则认为对端可以使用该地址。
-
一旦认可了对方的IP地址,则将会自动学习到达该地址的主机路由。
-
-
动态地址协商(一方没有ip)
-
-
-
配置方(给没有ip分配ip的那一方)
[r2-Serial4/0/0]remote address 1.1.1.1
获取方(没有ip的那一方)
[r1-Serial4/0/0]ip address ppp-negotiate
第三章 GRE和MGRE
VPN的几种技术
-
GRE
-
MGRE
-
DSVPN
-
MPLS VPN
-
IPSEC VPN
VPN---虚拟专用网络:是指依靠ISP或者其他NSP在公用网络基础设施之上构建的专用的安全数据通信网络,只不过这个专线网络是逻辑上的而非物理的。
-
虚拟---使用公共网络资源建立自己的私有网络
-
专用---用户按需构建(可以定做)
-
核心技术----隧道技术
GRE---通用路由封装
隧道技术----在隧道的两端,通过封装及解封装技术在公网上建立一条数据通道,使用这条数据通道进行数据传输。
GRE----是一种隧道封装技术,是一种标准的三层隧道技术,是一种点对点的隧道。
希望的流量走向
SIP:192.168.1.1 | DIP:192.168.2.1 | 数据 |
---|---|---|
真实的流量走向
SIP:12.0.0.1 | DIP:23.0.0.3 | 数据 |
---|---|---|
GRE粘合后的数据:
SIP:12.0.0.1 | DIP:23.0.0.3 | GRE SIP:192.168.1.1 | GRE DIP:192.168.2.1 | 数据 |
---|---|---|---|---|
配置 (双方都要配)
<span style="background-color:#f8f8f8"><span style="color:#333333">[r1]interface Tunnel 0/0/0 ----创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24(隧道接口里面的ip必须配私网ip)
[r1-Tunnel0/0/0]tunnel-protocol gre ----定义封装方式
[r1-Tunnel0/0/0]source 12.0.0.1 ----定义封装内容
[r1-Tunnel0/0/0]destination 23.0.0.3
[r1]ip route-static 192.168.2.0 24 192.168.3.2 ---补充路由信息 (双方都要补)</span></span>
GRE两端配置完成后,必须存在指向隧道的路由信息,否则数据无法被GRE进行封装,也就无法正常通讯。
GRE封装和解封装过程
-
设备从连接私网的接口接收到报文后,检查报文头部中目的IP地址字段,在路由表中查找出接口,如果发现出接口是隧道接口,则将报文发送给隧道模块进行处理。
-
隧道模块接收报文后,首先根据乘客协议的类型和当前GRE隧道的配置生成校验和参数,对报文进行GRE封装,即添加GRE头部信息。
-
然后,设备给报文添加传输协议报文头部,即IP头部。该IP报文头部的源地址就是隧道的源地址,目的地址就是隧道的目的地址。
-
最后,设备根据新添加的IP报文头部的目的地址,在路由表中查找相应的出接口,并发送报文,之后,封装后的报文将在公网环境下进行数据传输。
-
接收端设备从连接公网的接口收到报文后,首先会分析IP头部信息,如果发现协议类型字段值为47,则表示该上层协议为GRE协议,于是将报文交给GRE模块进行处理。
-
GRE模块去掉IP报文头部和GRE报文头部,并根据GRE报文头部中的协议类型字段,确定将该报文交于那个乘客协议进行处理。
-
Keepalive检测 (只需要在一端开启)
用于检测隧道对端是否可达。
-
如果对端不可达,隧道连接会及时关闭,避免形成数据空洞。
-
开启keepalive检测后,GRE隧道会定期向对端发送keepalive探测报文。
[r1-Tunnel0/0/0]keepalive ---开启keepalive检测功能
[r1-Tunnel0/0/0]keepalive period 5 retry-times 3
period--->代表发送周期
retry-times---->探测报文重传次数
如果在隧道一端开启了keepalive检测功能,无论对端是否配置keepalive,对端都会回复接收到的keepalive探测报文,即会向源发送一个回应报文。
MGRE---多点通用路由封装
MGRE这个逻辑拓扑是网络中存在多个节点,但是本身在发送数据时,还是依照点到点的数据发送,并不存在广播和组播行为,所以,这种网络结构可以近似的看做是NBMA网络,但其本质是p2p。
NHRP----下一跳解析协议
在私网中选择一个出口物理IP不会发生改变的设备作为NHRP的中心节点(NHS)。这样,剩下的分支都可以知道中心节点的隧道IP地址和物理IP地址。
然后,NHRP要求所有分支都需要将自己的物理接口IP地址和虚拟接口IP地址的映射关系发送给NHS。此时NHS会将所有分支的地址映射关系记载到动态的NHRP表中。当需要发送信息时,查看NHRP表进行数据封装。
Hub-Spoke架构
-
Hub就是服务端---中心节点
-
Spoke客户端-------分支节点
配置
R1~R4都要先写一条缺省指向ISP
HUB配置
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp ---修改接口封装协议为多点GRE (p2mp不属于网络类型)
[r1-Tunnel0/0/0]source 15.0.0.1 ---定义封装源
[r1-Tunnel0/0/0]nhrp network-id ? ----可选,若配置则需要将所有设备均修改为相同;默认值为0 INTEGER<1-4294967295> Nhrp network id
Spoke配置
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.2 24 [r2-Tunnel0/0/0]tunnel-protocol gre p2mp [r2-Tunnel0/0/0]source GigabitEthernet 0/0/0
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register ---分支向中心节点注册
中心的隧道IP 中心的物理IP
R2~R4都配完后首先检验隧道是否能通也就是ping虚拟ip或者在R1用 display nhrp peer all 来查看总公司与其它分公司的联系
然后还要将真实地址与隧道绑定起来(把R1去往2.0 3.0 4.0 的接口引入到Tunnel口里面)
同时R2~R4也要配通往1.0 下一跳为5.1(虚拟接口)
最后需要将各自的流量引入到隧道接口,使用静态路由方式进行配置。
、
DSVPN---动态智能VPN技术
装门为Hub-spoke架构来服务的
mgre+nhrp
Mgre隧道--->静态隧道(spoke到hub的)---永久存在、动态隧道(spoke-spoke)----有流量的时候就存在没有流量的时候就拆除
NHRP映射表
-
静态表项
-
由网络管理员手工配置
-
-
动态表项
-
由NHRP协议动态生成
-
hub节点通过nhrp注册报文提取到各个spoke的Tunnel地址和公网地址生成NHRP动态映射表
-
各个spoke通过nhrp解析报文提取对端spoke的Tunnel地址和公网地址生成NHRP映射表
-
老化时间---7200S
-
NHRP映射表的建立过程
建立spoke和hub之间的mgre隧道
-
spoke向hub注册请求
-
spoke将定时向hub发送NHRP注册请求报文,该报文中携带了spoke节点的tunnel地址和公网地址
-
-
hub向spoke注册应答
-
hub从NHRP注册请求报文中提取spoke节点的tunnel地址和公网地址,并生成NHRP映射表,进而建立hub与spoke之间的隧道。
-
并发送注册应答报文给spoke节点。
-
分支之间的路由学习
-
分支之间相互学习路由信息---非shortcut方式(消耗spoke的资源比较大,一般适用于小型网络)
-
分支的路由汇聚到总部----------shortcut方式
建立spoke与spoke之间的mgre隧道
根据分支之间的路由学习方式不同,NHRP映射表的生成过程也不同,故,分支之间的MGRE隧道建立方式不同。
-
非shortcut方式
-
源spoke可以学习到目的spoke的tunnel地址,因此,源spoke可以直接根据目的spoke的tunnel地址来查找目的spoke的公网地址,从而生成目的spoke的映射关系。
-
-
shortcut方式
-
所有spoke的路由下一跳均为hub的tunnel地址,源spoke无法学习到目的spoke的tunnel地址。因此,源spoke只能根据报文的目的地址来查找spoke的公网地址,会生成目的spoke的子网地址和公网地址的NHRP映射关系。
-
MGRE的非shortcut方式建立(分支)
MGRE的shortcut方式建立(写的是中心)
重定向:
<span style="background-color:#f8f8f8"><span style="color:#333333">hub
[r1-Tunnel0/0/0]nhrp redirect ----开启重定向功能。开启该功能后,会给源分支发送NHRP重定向报文,要求源分支向目的分支请求物理地址。从而构造NHRP映射关系。
spoke
[r2-Tunnel0/0/0]nhrp shortcut ----使能shortcut功能;如果为使能该功能,则分支节点在接收到重定向报文后,会忽略其内容。</span></span>
MGRE环境下的RIP网络
<span style="background-color:#f8f8f8"><span style="color:#333333"> 问题:因为RIP是以组播发送应答报文,而MGRE环境下是P2P通讯,实际上发送的是单播报文。因为是单播行为,分支会发送给中心;而中心不会发送报文,因为中心的NHRP映射表存在多种关系,不知道该给谁发送报文数据。
这就会导致所有分支均使用单播的方式给中心发送信息,中心学习到所有路由信息,但分支一条路由都学习不到。
中心:
[r1-Tunnel0/0/0]nhrp entry multicast dynamic ---开启伪广播功能
通过给所有分支分别发送一次单播数据包,以达到广播行为。
分支在中心开启为广播功能后,只能获取到中心的路由信息,但是无法获取到分支之间的路由信息。因为华为设备默认开启RIP的水平分割机制,导致中心不会从隧道接口将学来的分支路由发送给其他分支。
两种解决方式:
1.[r1-Tunnel0/0/0]undo rip split-horizon ---关闭水平分割机制---非shortcut (会有环路风险)
2.[r1-Tunnel0/0/0]rip summary-address 192.168.0.0 255.255.248.0 ---汇总方式解决--shortcut (可能会产生黑洞路由,所以要在R1补一条去往黑洞的路由)</span></span>
第四章,OSPF
常见的组织:
ISO(国际化标准组织)
IEEE(美国电子电气工程师协会)
IANA(国际数字分配组织)
IETF(国际互联网工程任务组)
OSPF基础
动态路由的评判标准
-
选路
-
占用资源
-
收敛速度
OSPF协议---开放式最短路径优先协议
-
适用范围---IGP
-
算法类型---链路状态型协议
-
使用算法---SPF算法---最短路径优先算法
<span style="background-color:#f8f8f8"><span style="color:#333333">OSPFv2与RIPv2对比
相同点:
1、都是无类别路由协议
2、均采用组播方式更新数据
3、均支持等开销负载均衡
不同点:
RIPv2仅适用于小型网络;OSPFv2可以应用在大中型网络中。(原因就是对于开销值的计算方式不同)</span></span>
OSPF区域划分---结构化部署
OSPF域----将一系列连续的OSPF路由器组成的网络称为OSPF域。
如果一台路由器的多个接口分别接入了不同的区域,则它将为每个区域分别维护一套LSDB。
多区域的设计限制了TOPO信息的洪泛,有效的将拓扑变化的影响控制在区域内部。
要求:
-
OSPF要求域中所有的非骨干区域都必须与Area 0相连。
-
骨干区域不能被分割。
OSPF区域结构部署规则的必要性
假定没有“所有非骨干区域都必须与骨干区域相连”规则
ABR设备(区域边界路由器)
-
至少连接两个以上的区域
-
连接的区域中至少有一个是区域0(骨干区域)
-
在骨干区域(区域0)中至少有一个活跃的邻居
作用:将A区域的拓扑转换成路由后,发送到B区域中。-----传递域间路由信息。
非骨干之间不允许直接相互发布区域间路由信息。
假定没有"骨干区域不能被分割"规则
OSPF规定:从非骨干区域收到的路由信息,ABR设备能接收该路由但不会使用这条路由信息(OSPF的区域水平分割原则)。----从一个区域学习到的路由信息,不能再传递回该区域。
总结
<span style="background-color:#f8f8f8"><span style="color:#333333">OSPF规定:
1、伪ABR设备---不允许转发区域间路由信息
2、真实ABR设备
能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域
能够将自己直连的骨干区域的的区域内路由信息传递给非骨干区域
能够将自己从骨干区域学习到的域间路由信息传递给非骨干区域</span></span>
OSPF路由器角色
-
内部路由器---IR
-
所有接口都属于同一个OSPF区域(R1,R4,R5)
-
-
区域边界路由器---ABR
-
骨干路由器---BR
-
接入Area 0的路由器(R1,R2,R3,R6)
-
-
AS边界路由器---ASBR(处于两个不同网络的边界)
-
工作在OSPF自治系统边界的路由器
-
负责将域外的路由信息引入到本域内。---默认不进行路由引入
-
并不是同时运行了多种路由协议的OSPF路由器就一定是ASBR,ASBR一定是将外部路由重发布到OSPF,或者是执行了路由重分发操作的路由器。
-
OSPF数据包
-
hello包
-
用来发现、建立OSPF邻居关系,周期保活。hello包发送的组播地址:224.0.0.5;10S发送一次;死亡时间:40S。
-
RID----全域唯一
-
配置方式
-
手工配置:满足32位二进制,且点分十进制表示,全域唯一。
-
自动配置:默认优选最大环回IP地址,没有环回则选择最大物理IP地址。
-
-
<span style="background-color:#f8f8f8"> 在启动OSPF进程前,必须有接口IP地址。若有IP地址,则在第一次启动OSPF进程时,会选取第一个配置的IP地址作为RID值。 在思科设备中,若没有IP地址,则OSPF启动失败。 在华为设备中,若没有IP地址,则OSPF启动后,RID为0.0.0.0 华为标准:状态最先UP的接口的IP地址作为RID RFC标准:(2328描述ospf的基本内容) 1、取loopback接口IP地址中最大的作为RID 2、取物理接口IP地址最大的作为RID。</span>
-
-
-
DBD包
-
数据库描述报文
-
报文中携带的是路径信息摘要。
-
避免重复更新。
-
-
LSR包
-
链路状态请求报文
-
请求获取未知的链路信息(LSA信息)
-
-
LSU包
-
链路状态更新报文
-
携带真实的LSA信息的数据包
-
-
LSAck包-----可靠性机制
-
链路状态确认报文(确认LSU报文中的LSA信息)
-
OSPF状态机(IP阶段有8种)
-
down---关闭----一旦启动OSPF进入下一个状态,并发送hello报文
-
init---初始化状态---收到的hello报文中存在自身的RID值,则进入下一个状态
-
2-way---双向通讯----邻居关系建立的标志。---稳定态。
-
条件匹配:匹配成功进入下一个阶段,匹配失败则停留在2-way状态,保持邻居关系,仅使用hello报文保活。
-
exstart---预启动---使用未携带LSA摘要信息的DBD报文进行主从关系选举,选举规则是RID值越大越优。
-
exchange---准交换----使用携带LSA摘要信息的DBD报文进行链路数据库共享。
-
loading---加载状态---邻居之间使用LSR/LSU/LSAck报文来获取完整的LSA信息。
-
full----转发状态----拓扑交换完成后进入该状态,标志着邻接关系的建立。---稳定态。
-
条件匹配
224.0.0.5 所有人都可以收取
224.0.0.6 只有DR和BDR才可以收取
选举规则:
-
比较接口优先级,0-255;默认值为1。越大越优。
-
比较RID值,越大越优。
非抢占模式----一旦选举成功,不因为新加入的设备而重新选举。
选举过程:
<span style="background-color:#f8f8f8"><span style="color:#333333">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选举之后进行。</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333"> Attempt:尝试状态 (只会在NBMA网络上出现)
在NBMA网络类型下,如果需要启动OSPF协议,需要使用peer命令指定邻居IP地址,否则不会发送hello报文,配置该命令后,邻居状态会进入到init。</span></span>
OSPF工作过程
-
启动配置后,OSPF将向本地所有运行OSPF协议的接口以组播224.0.0.5的方式发送hello报文,hello报文中RID值和接口优先级;此时路由器的状态进入到init。
-
当路由器收到的hello报文中存在本地的RID值(hello包中的邻居字段),会建立邻居关系----生成邻居表。
-
进入2-way状态,在2-way状态后执行条件匹配操作,若选举成功,则进入邻接关系建立过程;若选举失败,则停留在2-way状态,仅使用hello报文进行保活。
-
邻接关系建立
-
使用未携带摘要信息的DBD报文进行主从关系选举,RID值大的为主。主设备会先进入到下一个状态。
-
之后,从设备先发送携带摘要信息的DBD报文进行LSA目录信息共享。
-
主设备通过对比接收到的DBD报文中的摘要信息与自己本地的LSDB数据库信息,从而查找未知LSA。
-
通过发送LSR报文/LSU/LSAck报文获取完整的未知LSA信息。
-
当所有未知LSA信息均获取成功后,填充完整本地的LSDB。
-
-
当网络中所有设备获取到相同且完整的LSDB后,每台设备基于LSDB根据SPF算法生成有向图和最短路径树,之后根据计算结果获知网络中所有的未知网段的最短路径,然后将其添加到本地OSPF路由表中。
-
-
根据本地所有路由表信息(根据优先级),从而选择最优路由加载如全局路由表。
-
此时,网络收敛完成,仅进行Hello包周期保活。且每30min进行一次周期链路状态刷新。
OSPF基本配置
<span style="background-color:#f8f8f8"><span style="color:#333333">配完ip先ping直连,确保直连可以通
1、启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1
2、创建区域
[r1-ospf-1]area 0
3、宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.255.255.255---范围宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 ---精准宣告</span></span>
关闭日志的命令
[r1] undo info-center enable
OSPF查看表单的命令
display ospf peer 查看邻居表(查看邻居的详细信息rid,DR,BDR)
display ospf peer brief 查看邻居简表 (查看我的邻居有没有到full状态)
display ospf lsdb 查看ospf的数据库表单
display pspf routing 查看ospf的路由信息(存放是本身所有的ospf路由表信息)
display ip routing-table protocol pspf 查看全局路由表信息
OSPF报文格式
协议字段:89
OSPF报文头部
-
固定长度---24字节
-
-
版本---恒定值为2
-
类型字段----1(hello)2(DBD报文) 3(LSR)
-
报文长度---描述的是完整报文长度
-
路由器ID----路由器的OSPF协议中的RID值。
-
区域ID----发出该报文的接口所属于的区域的ID值。
-
校验和-----验证ospf整个报文的完整性
-
验证类型---先要保证验证类型相同第2步再保证认证数据相同
-
不认证---验证字段为0
-
明文(简单)认证---验证字段为1
-
MD5认证---验证字段为2
-
-
认证数据
-
用于报文认证的内容
-
如果认证类型为不认证,则该字段全用0填充。
-
Hello包(建立关系都要协商参数)
-
网络掩码(Network Mask)
-
该字段填充的是发送该hello报文的接口的掩码信息。
-
OSPF邻居关系建立过程中需要比对掩码信息,从而验证对端是否路由可达。---华为私有。
-
如果一方在接口上收到的hello报文中"网络掩码"字段与本接口不同,则忽略该hello报文,此时邻居关系无法建立。
-
-
如果两台OSPF路由器通过MA网络直连,则需要验证;若通过点到点网络则不需要验证该参数。
-
-
Hello间隔
-
接口周期性发送hello报文的时间间隔---单位为秒。
-
两台设备需要保证Hello时间间隔相同,否则邻居无法正常建立。
-
-
可选项(option)
-
该字段具有8个标记位,每一个标记置为1,则代表OSPF实现某种特性。
-
特殊区域标记。
-
-
路由器失效时间 (4倍hello时间)
-
指的是邻居路由器被视为无效之前,需等待收到对方hello报文的时间。---单位为秒
-
两台设备的该参数若不同,则邻居关系无法正常建立。
-
-
指定路由器----DR(填充的是路由器接口ip地址)
-
备份指定路由器----BDR(填充的是路由器接口ip地址)
所有的224.0.0.X格式的组播地址被称为本地链路组播,目标IP地址是本地链路组播的地址。且TTL值为1。所有的本地链路组播都存在与其对应的组播MAC地址,01-00-5e-0后23位为组播IP地址的后23位。
DBD包-----数据库描述报文
-
使用未携带数据的DBD进行主从关系选举
-
使用携带数据的DBD进行LSA摘要信息共享
-
使用未携带数据的DBD进行隐形确认机制
-
-
接口最大传输单元----MTU(限定一个链路上可以一次性传输报文的最大传输单元)
-
默认情况下,该字段值为0
-
华为默认不进行MTU值检测,可以开启该功能
-
[r1-GigabitEthernet0/0/0]ospf mtu-enable ---开启MTU检测机制,两端都需要开启。
-
如果双方都开启该功能,则进行MTU检测,若两边相同,则检测通过;若两边不同,则状态卡在exstart状态。
-
注意:MTU可以影响双方的邻接关系的建立
-
3个比特位:
-
I----主从关系选举
-
M----代表后续还存在DD报文
-
MS----代表是否为主设备
-
DD序列号
-
DD报文的序列号,在DD报文交互过程汇总,序列号逐次加一,用于确保DD报文传输的有序和可靠性。
-
DD序列号必须由Master路由器来决定,而从路由器只能使用Master路由器发送的DD序列号来发送自己的DD报文。----隐性确认机制。
-
DD报文的交互过程会一直持续,直到双方的LSA摘要信息全部发送完成。---本地的LSDB接收完成。
-
LSR包
链路状态类型、链路状态ID、通告路由器----LSA三元组,通过这三个参数可以唯一的标识出一条LSA信息。(通过三元组精确的询问需要哪一条LSA信息)
LSU包---链路状态更新报文(更新LSA)
LSAck包
显性确认机制
一个LSA头部就是20字节
OSPF的接口网络类型
接口网络类型指的是他的接口在哪种网络类型的工作方式
所谓的OSPF接口网络类型,实际上是指OSPF的接口在某种网络类型下的一种工作方式。
网络类型 | OSPF接口的网络类型(工作方式) |
---|---|
BMA | 类型:Broadcast;可以建立多个邻居关系;需要进行DR和BDR的选举;hello时间10S;dead时间40S |
P2P | 类型:P2P,只能建立一个邻居。不需要进行DR和BDR的选举;hello时间10S;dead时间40S |
环回接口 | P2P,华为设备定位P2P;该接口实际上没有真实数据的收发,也就意味着不需要进行DR/BDR选举,也不存在邻居关系。hello时间10S;dead时间40S;环回接口默认学习32位主机路由。 |
P2MP,可以建立多个邻居关系,不需要进行DR和BDR的选举;hello时间30S;dead时间120S;会学习邻居接口的主机路由。 | |
NBMA | NBMA,可以建立多个邻居关系,需要进行DR和BDR的选举;hello时间30S;dead时间120S;无法自动建立邻居关系(需要手工配置) |
Vlink;以单播形式发送hello报文。不需要进行DR和BDR的选举;hello时间10S;dead时间40S |
广播型多路访问类型---BMA (Broadcast广播)
<span style="background-color:#f8f8f8"><span style="color:#333333">[r3]display ospf interface GigabitEthernet 0/0/0 ---查看OSPF接口网络类型</span></span>
接口类型是Broadcast代表网络类型为BMA网络
Poll---轮询时间----在NMMA才能用(120s)也可以修改时间
Retransmit---重传时间(LSA的重传时间)(正常需要大于一个报文来回传输的时间)
Transmit Delay----传输延迟时间 1s(专门为LSA设置的)
OSPF在BMA类型的接口上通常以组播的方式发送hello报文、LSU报文以及LSAck报文。以单播的形式发送DD报文和LSR报文。
点到点类型(p2p)
两种网络速率,p2p链路是带宽
-
T1标准-----1.544
-
E1标准-----2.048
-
OSPF在网络类型为P2P的接口上以组播的方式发送所有OSPF数据报文。(因为P2P网络没有ip地址)
环回接口(虚拟接口)
华为特殊将环回接口的开销值定义为0。(因为定义为0不会收到实际带宽或者说外界因素的影响)
Type中的参数是由P2P进行填充,华为没有为该字段定位内容,而cisco则定义了一个loopback类型作为环回接口的类型。
所有通过OSPF学习到的环回接口的路由掩码信息都是32位。也就是每台设备学习到的路由条目是主机路由(掩码为32位的被称为主机路由)。该方式可以在保证路由信息的精准性的前提下,避免环路或者路由黑洞问题。
<span style="background-color:#f8f8f8"><span style="color:#333333">[r2-LoopBack0]ospf network-type broadcast ---修改环回接口网络类型为BMA;OSPF的邻居之间均需要修改。</span></span>
在DR和BDR选举时,会启动一个waiting计时器,该计时器的时间与dead时间相同,当计时器时间超时后,该接口会认为自己就是DR设备。----且设备会进入exstart状态。(如果超时会返回到2-way状态)
先要给R7,R8,R9写一条指向R10(ISP)的缺省路由,然后以R7为hub配MGRE的hub-spoke架构 然后给7,R8,R9配OSPF
问题:cost开销值到了1562 (解释:为了防止tunnel接口解封装与封装消耗太多的资源,因此把tunnel接口的开销值改大,让有很多条路可选的情况下去选择tunnel接口)华为将tunnel接口的传输速率定为64Kbps。(tunnel需要把虚拟数据传输到真实数那)
问题:为啥在R7的视角里只有R8,且状态处于Init,而R7启动了ospf但却是down状态
(解释:目前的环境是MGRE,但本质是P2P(是以组播发包的),但MGRE是类似于NBMA的网络,因此不能以组播形式发包)
解决方式:在中心hub开启伪广播功能
虽然现在R7和R8的关系到了full状态,但是现在又有了新的问题那就是R9接收不到信息(解释:因为MGRE本质是P2P,因此只能有一个邻居,因此与R8建立之后就不能与R9建立了)
解决方式:修改网络类型
在R7的隧道接口那里修改网络类型为BMA网络,修改成功后又出现了一个新的问题,那就是R7跟R9的状态是FULL,但是R7跟R8变成了2-way了,而在R8的视角里R7的状态是exstart
(解释:因为R7的接口是BMA网络因此要进行DR选举,而在tunnel隧道由于R9的rid大,因此选举R9为DR,然后R7就会认为和R9条件匹配成功了,然后R7就进入exstart,但是R9进入exstart的原因是R9的接口类型是P2P,所以不用进行主从关系选举,直接从2-way变成FULL,此时R7要和R8选BDR选举,但是R8的接口是p2p,他认为要和R7选DR但是R7已经选出DR了,但是R8并不认识R9,然后由于R8是p2p不需要进行DR和BDR选举就会直接进入exstart状态,但是对于R7来说,R7要收到hello报文来条件匹配来选BDR但是R8却到了exstart状态给R7发DBD报文,这与R7所需要的不一样,因此R7就卡在2-way状态了)
解决方式:把R7,R8,R9的接口类型全部改成BMA
然后此时R7跟R9和R7跟R8邻居关系都是FULL
但是此时又有了新的问题,R7的DR和BDR不对,DR变成R7我自己了
解释原因:R8和R9修改了网络类型,因此,整个网络只剩下R7一个人,导致R7自己变成了DR
解决方式:重启ospf进程 reset ospf 1 process
但此时又出现一个问题 在R8的视角里,R8是DR,BDR是R7,在R9的视角里DR是R9,BDR是R7,在R7的视角里,DR是R9和R8,BDR是R7
解释原因:R8和R9相互之间并不认识(但是隧道建立不起来,因为分支没有对方的路由)R8的视角下拓扑信息就只有R8和R7,同样R9的拓扑信息也只有R9和R7,因此R8和R9的LSA信息都不全,所以只需要
R7来作为DR设备,因此修改R8和R9的接口优先级,让他们放弃选举
解决方法:修改R8和R9的接口优先级,让他们放弃选举
然后重启ospf就正常了
在Hub-Spoke架构中,运行MGRE时,使用OSPF协议学习路由信息,需要将隧道接口的OSPF网络类型修改为BMA,全网均修改。且手工干涉DR选举,将DR选举在Hub节点。
Full—mesh架构
R1,R2,R3都作为中心,R1向R2和R3注册,R2向R1和R3注册,R3向R1和R2注册
问题:R1可以向r4和r5注册,R4不能向r1注册但可以向r5注册,r5可以向r1注册但不能向r4注册,然后display就查看注册不成功
解决方式:
关闭接口(物理接口和虚拟接口都行)shutdown,然后再注册,注册完成后再undo shutdown
点到多点类型(P2MP)
只能由网络管理员手工修改设置。
在P2MP网络中,接口通常以组播的方式发送hello报文,以单播的方式发送其余报文。
非广播型多路访问类型(NBMA)
只允许单播发送
帧中继:FR ATM
在NBMA网络中,邻居双方均需要手工指定自己的邻居,从而才可以发送出OSPF报文信息。在该接口网络类型下,所有的OSPF报文以单播的形式发送数据。
如何让两个路由器之间的收敛速度更快
-
修改ospf的死亡时间改快一点
-
把两个路由器之间从BMA换成p2p来加快收敛
OSPF的不规则区域划分
区域划分的要求:
-
所有非骨干都必须与骨干直接相连
-
骨干区域不能被分割
不规则区域主要有两种情况:
-
远离骨干的非骨干区域
-
-
不连续骨干区域
-
解决不规则区域的最佳方式----重新规划OSPF配置和内容,使得整个OSPF域满足区域划分的规则。
解决方案
第一种解决方法:
使用tunnel隧道 (在现实生活中很少用)
使用该方式解决不规则区域的问题。
-
可能产生选路不佳。
-
可能造成重复更新。
-
因为存在虚拟链路,R2和R3之间也需要建立邻居关系。导致他们之间维护的周期性数据将穿越中间区域,导致中间区域的资源消耗增加。
第2种解决方法:
虚链路---Vlink
专门为了解决OSPF不规则区域所诞生的技术。
思路:让真实的ABR设备给伪ABR设备进行一次担保,给予伪ABR设备传递路由的功能,或者说给予一个ABR设备的权限。
配置:
<span style="background-color:#f8f8f8"><span style="color:#333333">[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</span></span>
配置位置在于设备需要穿越的区域。虚链路的只能穿越一个区域。---原因在与配置的时候使用的是RID值,而RID值只能在同一个区域找到,设备无法跨越区域找到RID所对应的设备。
[r2]display ospf vlink ---查看vlink邻居关系(在普通的邻居表里面查不到)
Vlink被视为是骨干区域的一段延伸(Vlink永远属于Area 0)。
缺陷:
-
只能穿越一个区域
-
Vlink之间需要建立邻居,故会消耗穿越区域中的链路资源。
实际上,Vlink更多应用在一些修复次优路径或者骨干区域不健壮问题上。比如下面这个问题:
补充:tracert 目的ip地址 追踪去往该ip地址的路径
骨干链路单点故障问题
问题:下面这个图的骨干链路不健壮,比如area 0的R1和R2断了怎么办,还有就是R4到R3的0/0/1口需要从上面走,因为R4为ABR设备,他不会使用非骨干区域传来的路由信息,因此只需要在R4和R3之间拉一条Vlink就通通可以解决了
问题:下面这个图本来没有area 0 ,只需要在R2和R3之间连接一条Vlink来当作area 0就行了
Vlink环路问题
场景一
Vlink选择不恰当,可能会引发环路问题。----解决方式,在物理链路相连的两台设备上建立vlink。
场景二
解决思路:OSPF规定,Vlink所在的非骨干区域,不能传递汇总路由。也就是说,ABR设备不能向配置了vlink链路的区域传递汇总路由
第3种解决方式:
多进程双向重发布------最常用的解决方式
R3是ASBR设备
要重新配进程 ospf 2 router-id 3.3.3.3
配置
重发布操作:
<span style="background-color:#f8f8f8"><span style="color:#333333">[r3-ospf-1]import-route ospf 2 ---在进程1去引入ospf2
[r3-ospf-2]import-route ospf 1 ---在进程2去引入ospf1</span></span>
此时R3被称为ASBR设备,因为其运行在不同的网络中,且执行了重发布操作。
重发布就是在运行了不同协议或不同进程的边界设备上,将一种协议按照另一种协议的规则发布出去。
重发布操作在引入路由信息时,会清除掉该路由信息原本的(开销值)度量值,但是在引入时,该参数不能没有,故会赋予路由信息一个种子度量值。(种子度量值没有任何意义,只是填的一个参数)
OSPF对于域外路由信息的标识为O_ASE;优先级为150。(域内>域外)
补充:
问题:当中心没收到分支的注册信息,就比如中心后配置,分支先配置为了减少注册信息的时间 收敛快一点
解决方式:nhrp注册时间为1800s,把相关的tunnel接口关闭再打开就可以了,或者重新注册一遍
OSPF的LSA详解
LSA头部
-
链路状态老化时间 (就是之前的传输延迟时间所加的时间)
-
一条LSA的老化时间,16bit整数。
-
当该LSA被始发路由器产生时,该参数有效,且数值为0。之后随着该LSA在网络中被洪泛,老化时间逐渐累加。
-
一般情况下,老化时间不会超过1800S。(因为1800s是3分钟,3分钟周期链路刷新)
-
该参数存在最大老化时间---3600S。----当一条LSA的老化时间到达最大老化时间时,将被认定失效,从本地的LSDB中删除。(如果出现某些特殊情况导致没有收到刷新的报文,然后1800s就会被覆盖成0从而会出现最大老化时间)
-
在OSPF网络中,只有始发路由器能够提前使某条LSA老化,即有意识的清除该LSA信息。
-
组步调计时器
-
-
-
可选项----与hello报文内容相同
LSA的三元组信息:
-
链路状态类型-----本条LSA的类型,不同LSA类型在描述不同OSPF的信息
-
链路状态ID-----LSA的标识。不同的LSA类型,该字段内容含义不同。
-
通告路由器-----产生本条LSA的路由器的RID。
-
链路状态序列号----标识一条LSA的新旧
-
每台路由器在发送相同L SA信息时,序列号逐次加一。
-
序列号字段是4字节构成的。
-
-
序列号起始为0x80000001
-
序列号截止为0x7FFFFFFF
-
-
链路状态校验和
-
不仅验证完整性,而且参与到LSA的新旧关系比较中。
-
-
长度---LSA的总长度
判断LSA的新旧关系
OSPF使用链路状态序列号、校验和以及老化时间来判断LSA的新旧关系。
-
拥有较高链路状态序列号的LSA被认为是最新的LSA信息。
-
如果序列号相同,则比较校验和,拥有较大校验和的LSA被认为更新。
-
如果校验和与序列号均相同,则比较老化时间。
-
如果某条LSA的老化时间为3600S,则认为该LSA最新。
-
如果没有任何一条LSA老化时间为3600S,则比较两条LSA老化时间的差值。
-
如果差值大于15min,则认为老化时间小的LSA为更新
-
如果差值小于15min,则认为这两条LSA相同。
-
-
具体LSA信息表格:
类型 | LS ID | 通告者 | 作用范围 | 携带信息 |
---|---|---|---|---|
Type-1 LSA(Router) | 通告者的RID | 区域内所有运行了OSPF协议的路由器的RID | 单区域 | 本地接口的直连拓扑信息 |
Type-2 LSA(Network) | DR的接口IP地址 | 单个MA网络中DR所在的路由器的RID | 单区域 | 单个MA网络拓扑信息的补充信息 |
Type-3 LSA(Summary) | 路由信息的目标网络号 | ABR,在通过下一个ABR设备时会被修改为新的ABR设备的RID值 | ABR相邻的单区域 | 域间路由信息 |
Type-5 LSA(ase) | 域外路由的目标网络号 | ASBR的RID | 整个OSPF网络 | 域外路由信息 |
Type-4 LSA(asbr) | ASBR的RID | 与ASBR同区域的ABR设备,在通过下一个ABR设备时会被修改为新的ABR设备的RID值 | 除去ASBR所在区域的单区域 | ASBR的位置信息 |
Type-7 LSA(NSSA) | 域外路由的目标网络号 | ASBR,当离开NSSA区域后转换为5类 | NSSA区域 | 域外路由信息 |
Type-1 LSA---Router
LSA的Type名称为Router的LSA是一类LSA信息。每台路由器的所有属于相同区域的接口共用一个一类LSA信息。如果路由器连接在多个区域,则会在多个区域单独产生一条一类LSA信息来描述自己属于该区域的拓扑信息。(每台路由器只在一个区域发送一个)
-
V----代表该路由器是vlink链路的端点
-
E----该路由器为ASBR设备
-
B----该路由器为ABR设备(可以是真实的ABR也可以是伪ABR设备)
-
链路数量-----该字段指明该一类LSA包含了多少条Link。每条link均包含链路ID、链路数据、度量值等信息。
-
链路类型----该类型不是所谓的网络类型。
-
链路类型不同,导致链路ID和链路数据内容不同。
-
-
-
TOS数量-----TOS /TOS度量在新版的ospf中已经被删除了,意义是为了兼容老版本
-
度量值-----开销值
Type-2 LSA----Network
DR会在本区域内洪泛Type-2 LSA信息,来列举出接入该MA网络的所有路由器的RID信息,以及这个网络的掩码信息。2类LSA有且只有本区域的DR设备可以发送。
链路状态ID--->描述DR的接口IP地址。
通告路由器----也和其它人一样就是RID
总结:2类LSA就是补充一类LSA缺失的东西(主要就是掩码和邻居)
Type-3 LSA----Summary
链路状态ID--->目标的网络号
Type-3LSA中的开销值,指的是该LSA的通告者到达目的地的开销值。而接受这对于该路由信息在加入到路由表时的开销值等于LSA中的开销值加上本地到达该LSA通告者的开销值之和。
3类LSA传递路由信息的方式类似于距离矢量型协议的方式,通告者就是到达目标网段的下一跳。所以,接收者在收到三类LSA后,需要根据1类和2类LSA信息计算拓扑信息从而来寻找三类LSA的通告者。如果可以找到则本条3类LSA可用,如果递归不到,则忽略该3类LSA信息。
如果,通告者是所在区域的ABR设备,那么自然可以寻找到三类LSA的通告者,从而该路由可用。但当3类LSA信息跨区域传输时,接收者就无法递归到始发该3类LSA的通告者,因为不在同一个区域内部,无法使用1、2类LSA递归。故3类LSA在传输时,若需要跨越区域,则由每个区域的ABR重新构造一个新的描述相同目标网段的3类LSA信息发送。
总结:3类LSA在跨区域传输时,会先转发给下一个区域的ABR设备,然后该区域的ABR设备不是直接转发,而是经过自己的构造,再自己转换之后发给同区域的其它人。
Type-5 LSA----ase
由ASBR设备发送,在整个OSPF域中传播。传递的是域外的路由信息。
-
度量值----外部路由的开销值 (种子度量值)
-
该常量值为1。
-
<span style="background-color:#f8f8f8">[r4-ospf-1]import-route rip 1 cost 10 ---在重发布时修改种子度量值</span>
-
-
E位----用于表示外部路由使用的度量值类型
-
类型1---E位为0,则代表使用类型1。---域内所有设备到达目标网段的开销值等于本地始发出该条LSA的ASBR的开销值加上种子度量值。
-
类型2---默认---当一个域外的LSA信息使用该类型时,则域内所有设备到达域外目标网段的开销值都等于种子度量值。
-
<span style="background-color:#f8f8f8">[r4-ospf-1]import-route rip 1 cost 10 type 1 ---修改域外路由信息的开销值类型</span>
-
-
转发地址----FA (为了解决选路不佳,避免绕路)
-
在五类LSA中默认为0.0.0.0;当FA字段不为0.0.0.0时,则数据层面流量的转发依照转发地址进行数据传输。
-
当同时满足如下条件时,FA字段才被允许设定为其他值。
-
<span style="background-color:#f8f8f8">1、引入外部路由的ASBR在其连接外部网络的接口上激活了OSPF----这个接口同时运行了两个协议 2、该接口没有被配置为静默接口 3、该接口的网络类型为MA 4、在接口的IP地址在OSPF中被network命令激活</span>
-
-
-
外部路由标记
-
该参数只有外部路由信息才会携带,常被用于路由策略。
-
该字段在华为路由器默认为1。
-
<span style="background-color:#f8f8f8">[r4-ospf-1]import-route rip 1 tag ? ----设定外部路由标记 INTEGER<0-4294967295> Tag value</span>
-
缺陷:其它区域的路由器递归不到ASBR的位置,只有同区域的才能通过1类和2类LSA去递归ASBR的位置---这个缺陷依靠4类LSA来补充
Type-4 LSA----asbr
4类LSA的LS ID是ASBR的RID值。4类LSA又被称为ASBR汇总LSA,是一条到达ASBR的主机路由信息。4类LSA的任务就是辅助5类LSA完成验算过程,找到ASBR的位置。
Type-7 LSA----NSSA
7类LSA的报文格式与5类LSA相同。
(5类LSA的传播范围是整个ospf网络,而7类的传播只是在nssa的区域)
实际上7类就是5类只不过装修了一下而已
Options字段在五类LSA中,显示为E(代表可以洪泛五类LSA)。
<span style="background-color:#f8f8f8"><span style="color:#333333">N---代表允许处理7类LSA信息,仅在NSSA区域置为1
P---代表支持7转5操作,一般与N位共同使用。----该标记位加密,抓包看不到。</span></span>
5类LSA的默认的FA是0.0.0.0. 而FA不为0的一般是7类转5类的,也就是说7类的FA字段一般是ASBR的环回ip。
转发地址----应对选路不佳的情况,如果存在选路不佳的情况,则通告者会把最佳的下一跳放入转发地址中,接收者看到FA字段,则将不按照算法来计算下一跳,而直接使用转发地址作为下一跳。在7类LSA中,一般会使用通告者(ASBR)设备的环回接口IP地址作为转发地址。如果存在多个环回接口,则将使用最先宣告的地址作为转发地址;如果没有环回接口,则将使用物理接口作为转发地址。---华为的逻辑
路由撤销---不经过3600s老化时间去删除LSA
1类LSA撤销----通过序列号+1,校验和不变,老化时间=0的方式进行路由撤销。
2类LSA撤销
-
1,使用序列号+1的方式撤销路由(网络中还存在自己的邻居);
-
2,使用老化时间3600S进行路由撤销(网络中不存在自己的邻居)
3类LSA撤销-----使用老化时间3600S进行路由撤销,序列号不变。
5类/7类LSA撤销----使用老化时间3600S进行路由撤销,序列号不变。
总结:传递路由就用老化时间来撤销,传递拓扑信息就用序列号来撤销,2类则是分情况而定。
OSPF优化
OSPF的优化主要是为了减少LSA的更新量。
两种优化方式:
-
路由汇总---减少骨干区域的LSA
-
OSPF特殊区域---减少非骨干区域的LSA
OSPF路由汇总(路由聚合)
域间路由汇总----在ABR设备上部署
<span style="background-color:#f8f8f8"><span style="color:#333333">[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</span></span>
域间路由汇总只能在明细路由所在区域的ABR身上配置,不能在其余ABR上配置。执行完汇总操作后,只要站点内这条汇总路由所涵盖的明细路由中有一条是有效的,则会继续通告该汇总路由,当所有明细失效后,汇总路由会被撤销。----汇总并不会影响ABR设备自身的明细路由信息。
补充:学习到的LSA路由的优先级 域内(1,2类)>域间(3类)>域外(5,7类)
域外路由汇总---在ASBR上配置
[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0 ---域外路由汇总,在ASBR设备上进行
注意内容:所谓的最大开销值就是种子度量值。
种子度量值的类型
-
Type-2:汇总网段的开销值等于所有明细路由开销值最大值加1。
-
Type-1:汇总网段的开销值等于所有明细路由开销值最大值。
OSPF的特殊区域
第一大类:
1,不能是骨干区域;2,不能存在虚链路;3,不能存在ASBR设备
1.末梢区域(Stub Area)----网络最边缘的区域
如果将一个区域配置为末梢区域,则这个区域将不再学习4类和5类LSA。---ABR设备将不会在向该区域转发4类和5类LSA信息。---但是该区域还可能需要访问域外路由信息,故会自动生成一条指向骨干区域的三类缺省路由。
<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]stub
[r5-ospf-1-area-0.0.0.2]stub </span></span>
所有区域内的设备都必须配置为相同的特殊区域。(比如are 2作为末梢区域,那么are 2里面所有的设备都要配置stub这个命令)
2.完全末梢区域(Totally Stub)
在末梢区域的基础上,进一步拒绝学习3类LSA信息,仅保留3类缺省路由信息。
<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]stub no-summary ---完全末梢区域,只用在ABR上配置即可</span></span>
相当于不让ABR设备也就是R1发送3类LSA信息给R5
第二大类:1,不能是骨干区域;2,不能存在虚链路;3,必须存在ASBR设备
3.非完全末梢区域(NSSA)
注意:NSSA的优化不是在优化本地要接收的4,5类(本地要接收的4,5类都会变成7类)而是在拒绝即将从骨干区域接收的4,5类,但是拒绝了就无法学骨干区域那边的路由了,因此就会有ABR设备下放一条7类的缺省路由指向骨干区域
拒绝4类和5类LSA信息。因为该区域存在ASBR设备,故需要将域外路由信息引入到本区域,因为拒绝5类LSA的学习,所以只能以7类LSA的形式传递。之后,在7类LSA信息离开NSSA区域后,需要在转换为5类LSA进行传输。
将某区域配置为NSSA后,该区域的ABR设备会自动生成一条7类LSA描述的缺省路由信息,指向骨干区域。
工作过程:
配置代码:
做nssa和末梢区域一样,区域内的路由器都要配置
<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]nssa
[r5-ospf-1-area-0.0.0.2]nssa </span></span>
O_NSSA----7类域外路由信息的标记,默认优先级为150。
4.完全的非完全末梢区域(Tonally NSSA)
在拒绝4.5类的前提下拒绝3类
在NSSA区域的基础上,进一步拒绝三类LSA,自动产生一条3类缺省路由。
<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]nssa no-summary ----仅仅在ABR设备上配置</span></span>
在完全NSSA区域,会看到3类缺省和7类缺省,设备会选择3类缺省。(因为域间的优先级优于域外,多出来的7类的缺省路由可以用来防环)
这6类LSA在哪些区域会产生:
Type-1 | Type-2 | Tpye-3 | Type-4 | Type-5 | Type-7 | |
---|---|---|---|---|---|---|
常规区域 | √ | √ | √ | √ | √ | × |
stub | √ | √ | √ | × | × | × |
Totally stub | √ | √ | × | × | × | × |
NSSA | √ | √ | √ | × | × | √ |
Totally NSSA | √ | √ | × | × | × | √ |
注意:在Totally stub 和Totally NSSA中 的3类LSA虽拒绝了其它所有的3类LSA,但是会有一条ABR下 放的3类LSA缺省
NSSA的环路问题
场景一
场景二
总结:
-
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才能被转换
<span style="background-color:#f8f8f8"><span style="color:#333333">[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操作</span></span>
NSSA区域如果没有FA字段,将会有很大可能性因为7转5操作出现次优路径。
FA字段解决NSSA区域环路问题
注意:任何动态路由协议都是从哪个接口学到路由信息就从哪个路由接口发送出去
OSPF综合实验
第五章,重发布及路由策略
重发布
在同一个网络拓扑中,如果存在多种不同的路由协议,由于不同路由协议的机理不同,对路由的处理方式各不相同,这就会在网络中造成路由信息隔离,而在路由协议的边界设备上,将某种路由协议的路由信息引入到另一种路由协议中,这个操作叫做路由引入或路由重分发。----操作的技术叫做重发布。
意义:将独立的两种路由协议来实现路由共享
条件
-
必须存在边界设备-----同时连接两种协议(可以是静态也可以是动态的协议)或两个进程。
-
必须关注种子度量值---起始度量值。
规则
-
重发布技术的配置位置-----将A协议发布到B协议中,在边界设备的B协商上配置。
-
将A协议发布到B协议中,边界设备将会把所有的通过A协议学习到的路由以及边界设备在A协议上宣告的所有直连路由,全部共享到B协议中。----重发布的内容。
名词解释
点
-
单点----两个协议或两个进程之间仅存在一个边界设备。
-
双点----两个协议或两个进程之间仅存在两个边界设备。
-
多点----两个协议或两个进程之间仅存在多个边界设备。
向
-
单向----仅将A协议引入到B协议中
-
双向----A/B协议的路由共享
单点重发布
配置
-
A协议--->B协议
-
[r2-rip-1]import-route ospf 1-----将ospf引入到rip
在RIP中,种子度量值为0。
<span style="background-color:#f8f8f8">[r2-rip-1]default-cost 2 ----修改种子度量值,全局修改(注意:修改的是重发布进来的路由信息进行修改种子度量值) [r2-rip-1]import-route ospf 1 cost 5 ---针对本次重发布内容修改 当以上两条命令同时执行,则按照第二条规则匹配 [r2-ospf-1]default cost ? ---修改OSPF种子度量值,全局修改(注意:修改的是重发布进来的路由信息进行修改种子度量值)</span>
-
-
静态--->B协议
-
<span style="background-color:#f8f8f8">[r2]ip route-static 0.0.0.0 0 LoopBack 0 [r2]ip route-static 192.168.1.0 24 LoopBack 0 [r2-rip-1]import-route static---将静态路由引入到rip里</span>
在导入路由时,无法将任意一条缺省路由引入到网络中。
-
-
直连--->B协议
-
<span style="background-color:#f8f8f8">[r2-rip-1]import-route direct ---将直连路由引入到rip里</span>
引入直连时,除了与R1直连的网段(也就是B协议所在的直连),其余所有直连均会引入。
若边界设备进行了A协议--->B协议的重发布以及直连--->B协议的重发布,并且两次包含了相同的路由信息,则将会优先学习直连--->B的重发布信息。(直连优先)
-
双点重发布
路由回馈---某一条路由信息从A协议发布到其他协议,最终又被发布回A协议。---严重会引发环路问题。
在默认情况下,RIP和OSPF协议若进行双点重发布,由于两者的优先级不同,故第一台边界设备重发布动作结束后,会影响到其余边界设备的路由表。使得路由可能会被传回源协议当中。
华为为了解决路由回馈问题,将OSPF的域外路由信息的优先级定义为150(150高于华为体系下所有IGP协议的优先级)。
多点重发布必然存在的问题-----选路不佳。----因为重发布机制将路由引入到其他协议中时,将原本的开销值抹除,从而导致其他协议中设备对于该路由信息认知不全导致的。
路由策略----对路由信息进行修改
控制层流量和数据层流量
-
控制层流量----路由协议传递路由信息时产生的流量
-
数据层流量----设备访问目标地址时产生的流量
它们两传递方向相反,传递内容不同
所谓的路由策略----就是在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由表的生成,干涉选路的效果。
acl是针对数据层流量,路由策略是针对控制层流量
抓流量
ACL列表
ACL本身设计出来是为了抓取数据层流量,所以,设计了通配符来灵活的匹配数字特征。但是ACL没有办法匹配路由信息中的掩码特征,因此,ACL并不擅长于抓取控制层流量。
<span style="background-color:#f8f8f8"><span style="color:#333333">[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0-----抓取192.168.1.0/所有掩码 的信息</span></span>
因为ACL使用的是通配符,所以在抓取控制层流量时,无法更加精准的抓取某些流量。如果需要在192.168.1.0/24、192.168.1.0/25、192.168.1.0/26中抓取192.168.1.0/24路由信息,则ACL无能为力,会将三个路由信息均抓取到。
前缀列表(ip-prefix)
一个路由条目是由目的网络地址(前缀)及掩码长度(前缀长度)共同标识。
比如192.168.1.0/25中192.168.1.0 就是目的网络地址,/25指的是掩码长度。
IP前缀列表可以包含一条或多条语句,每条语句都使用一个十进制的序号(index)来标识。在创建一个IP前缀列表时,并未指定该语句的序号,则系统会为其自动添加一个序号,序号缺省值为10,步长为10。
前缀列表匹配规则:从上而下,逐一匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有的规则。
示例
<span style="background-color:#f8f8f8"><span style="color:#333333">假设:
a 172.16.0.0/16
b 172.16.0.0/24
c 172.16.0.0/30
d 172.16.1.1/32
1、ip ip-prefix aa index 10 permit 172.16.0.0 24 ----精准匹配172.16.0.0/24的路由信息,匹配a
2、ip ip-prefix bb index 10 permit 172.16.0.0 16 less-equal 24 ---匹配以172.16开头的路由信息,且掩码在16-24之间,匹配a和b
3、ip ip-prefix cc index 10 permit 172.16.0.0 16 greater-equal 24 ---匹配以172.16开头的路由信息,且掩码大于等于24,匹配b,c和d
4、ip ip-prefix dd index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 30----匹配以172.16开头的路由信息,且掩码大于等于24且小于等于30,匹配b,c
5、
[r2]ip ip-prefix ee index 10 deny 172.16.0.0 30
[r2]ip ip-prefix ee index 20 permit 172.16.0.0 24
---拒绝c允许b
6、ip ip-prefix gg index 10 permit 0.0.0.0 0 less-equal 32 ---匹配任意地址的信息
7、
[r2]ip ip-prefix ff index 10 deny 172.16.0.0 30
[r2]ip ip-prefix ff index 10 permit 0.0.0.0 0 less-equal 32----只拒绝c其它的都传过去
8、ip ip-prefix hh index 10 permit 0.0.0.0 0 greater-equal 32 less-equal 32---只匹配主机路由,也就是d
9、ip ip-prefix ii index 10 permit 0.0.0.0 0-----匹配缺省路由
实际工程中的写法:
ip ip-prefix hcip permit 172.16.4.0 22 greater-equal 24 less-equal 24 ---匹配172.16.4.0/24-172.16.7.0/24</span></span>
查看名字为aa的路由信息
做策略
在做任何策略时,在本地的入方向修改,会影响到自身对于路由信息的学习;而在本地的出方向修改,则会影响到他人对于路由信息的学习,而不影响自身。
偏移列表----cisco
偏移列表在华为中不属于策略,因为该工具是专门为了距离矢量型协议使用,用来修改开销值的操作。而华为只有一种距离矢量型协议---RIP。
<span style="background-color:#f8f8f8"><span style="color:#333333">1、抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
2、做策略---调用
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix huawei 5 ----metricin入方向,metricout出方向。</span></span>
如果在入方向去修改信息则会影响自身的路由信息,如果在出方向去修改信息则会影响其它人的路由信息
该策略为逐跳行为,效果可以叠加;整段路径中流量经过的多个接口均配置度量增加,最终为增加的总度量值。
过滤策略---filter-policy(分发列表---cisco)
只能对路由信息进行过滤,无法对LSA进行过滤。并且只能允许或拒绝,无法修改流量。
用acl来写
<span style="background-color:#f8f8f8"><span style="color:#333333">
1、抓流量
[r4]acl 2000
[r4-acl-basic-2000]rule deny source 23.0.0.0 0--拒绝23.0.0.0这条信息
[r4-acl-basic-2000]rule permit source any ---允许所有
2、调用---做策略
[r4-rip-1]filter-policy 2000 export GigabitEthernet 0/0/1 ----若不选择接口,则为全局调用,会匹配所有接口</span></span>
注意:过滤策略本身没有过滤能力,所以,需要依靠抓取流量的工具来执行拒绝动作。在过滤策略中,匹配的流量抓取工具如果没有放通流量,就会将所有流量拒绝。
用prefix来写
<span style="background-color:#f8f8f8"><span style="color:#333333">1、抓流量
[r2]ip ip-prefix aa deny 34.0.0.0 24---拒绝34.0.0.0这条信息
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32----允许所有
2、调用---做策略
[r2-rip-1]filter-policy ip-prefix aa export GigabitEthernet 0/0/0</span></span>
filter-policy对于向OSPF发布的路由进行过滤
<span style="background-color:#f8f8f8"><span style="color:#333333">1、抓流量
[r2]ip ip-prefix aa deny 192.168.1.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
2、做策略--调用
[r2-ospf-1]filter-policy ip-prefix aa export </span></span>
使用过滤策略对链路状态型协议进行路由过滤,仅仅是能够保证不将路由信息转换为LSA信息,从而进行过滤。但是该操作会影响到所有启动链路状态型协议的路由器,而非单独的某个路由器。----且过滤策略的配置位置必须是LSA的始发路由器。
对于五类LSA而言,过滤策略的调用方向必须为出方向。----本质是对五类LSA的生成做操作。
filter-policy对于OSPF接收的路由进行过滤
LSA是OSPF用于路由计算的关键信息,一台OSPF路由器会把网络中所洪泛的LSA存储在自己的LSDB中,并且运行SPF算法,进而计算出到达网络中各个网段的路由。而过滤策略(filter-policy)就是在路由器将所计算出的OSPF路由加载到路由表之前,对路由进行过滤。
<span style="background-color:#f8f8f8"><span style="color:#333333">1、抓流量
[r2]ip ip-prefix aa deny 192.168.1.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
2、做策略
[r2-ospf-1]filter-policy ip-prefix aa import ---在入方向做策略</span></span>
过滤策略应用在链路状态型协议中时,如果要拒绝本区域内的路由信息,则需要在入方向进行调用(拒绝将LSA生成路由信息);且因为LSA的传播要求全区域相同,故该策略在入方向仅可以影响本地,而不能影响后续设备。
注意:过滤列表可以在OSPF中使用,但是OSPF区域内部传递的是拓扑信息,所以,无法在出方向调用,只能在入方向调用,并且,调用的效果是仅将过滤抓取的流量信息不加表,而LSA还存在。
1/2类LSA | 3类LSA | 5/7类LSA | |
---|---|---|---|
调用方向 | 入方向 | 入方向 | 出方向 |
影响效果 | 仅影响本地 | 影响该3类LSA的通告者,以及后续的区域 | 影响除了ASBR以外的所有运行了OSPF协议的设备 |
过滤原因 | 阻止通过1类LSA从而生成路由信息 | 阻止通过1类LSA从而生成路由信息,没有路由信息即不会生成3类LSA信息。 | 阻止路由信息生成LSA信息 |
路由策略-----Route-Policy
路由策略匹配规则:从上而下,逐一匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有的规则。
<span style="background-color:#f8f8f8"><span style="color:#333333">要求:R2执行重发布操作,将RIP路由信息引入到OSPF中
192.168.1.0/24----过滤
192.168.2.0/24----修改种子度量值为10
192.168.3.0/24----修改开销值类型Type-1
192.168.4.0/24----修改开销值类型Type-1,且打上标记tag
12.0.0.0/24-------不做处理</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">1、抓取流量
要求1---[r2]acl 2000
要求1---[r2-acl-basic-2000]rule permit source 192.168.1.0 0
要求2---[r2]acl 2100
要求2---[r2-acl-basic-2100]rule permit source 192.168.2.0 0
要求3---[r2]ip ip-prefix aa permit 192.168.3.0 24
要求4---[r2]ip ip-prefix bb permit 192.168.4.0 24
2、做策略
要求1--[r2]route-policy huawei deny node 10 ---创建一个叫做huawei的路由策略,且节点为10
要求1--[r2-route-policy]if-match acl 2000 ---匹配acl 2000这个列表中的内容
要求2--[r2]route-policy huawei permit node 20----创建一个叫做huawei的路由策略,且节点为20
要求2--[r2-route-policy]if-match acl 2100----匹配acl 2100这个列表中的内容
要求2--[r2-route-policy]apply cost 10----修改种子度量值为10
注意:display lsdb ase 192.168.2.0 查看这个网络的5类LSA
要求3--[r2]route-policy huawei permit node 30
要求3--[r2-route-policy]if-match ip-prefix aa
要求3--[r2-route-policy]apply cost-type type-1
注意:display ospf routing 查看ospf路由表,可以看类型
要求4--[r2]route-policy huawei permit node 40
要求4--[r2-route-policy]if-match ip-prefix bb
要求4--[r2-route-policy]apply cost-type type-1
要求4--[r2-route-policy]apply tag 666---打上标记666
[r2]route-policy huawei permit node 100 ----创建一个空的路由策略节点,从而允许所有(不需要做任何操作)
3、调用
所有要求都是这1个[r2-ospf-1]import-route rip 1 route-policy huawei ---在引入路由时调用路由策略</span></span>
补充:
[r2-route-policy]apply preference 200 ---修改优先级为200
查看名叫华为的路由策略的信息
注意:
-
当不同路由具备不同修改操作时,使用不同工具进行流量抓取。
-
在抓取流量时,均使用permit操作
-
路由策路的名称相同
-
路由策略具备允许和拒绝两种匹配模式
-
路由策略的最后必须存在一个空表。(用来允许所有)
-
注意节点于节点之间是与关系,但是条件语句与执行语句是或关系