OSPF—开放式最短路径优先协议
基本概念
- 协议适用范围—IGP
- 链路状态型协议—传递拓扑
- 传递真实掩码信息—无类别路由协议
- OSPF版本
- OSPFv1
- OSPFv2—IPv4
- OSPFv3—IPv6
- SPF算法
- OSPF传递的是LSA信息(链路状态通告)
- OSPF更新方式
- 触发更新
- 周期链路状态刷新-----30min
- OSPF更新地址—组播
- 224.0.0.5/224.0.0.6
- OSPF开销值===参考带宽/实际带宽(参考带宽默认为100Mbps)
- OSPF进行跨层封装----基于IP协议进行封装,协议号89
OSPF区域化结构
基本概念
- OSPF为了适应大中型网络环境,进行了结构化部署-------区域划分
- 区域划分特点
- 区域内部传递拓扑信息,区域间传递路由信息。
- 区域划分是基于路由器接口的。
- 区域编号-----32bit
- 区域0-----骨干区域
- 非骨干区域-----非0区域
- 区域划分规则
- 所有非骨干区域都必须与骨干区域相连
- 骨干区域唯一
- 区域编辑路由器-----ABR
- 同时属于多个区域且至少有一个接口属于区域0。
- 在骨干区域中至少存在一个活跃的邻居。//如果与区域0的接口断开,则不会向像该路由器发送拓扑信息;只需拥有一个激活的路由器与之相连即可。
OSPF数据包类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HGkLhKiX-1679891794872)(C:\Users\86186\Pictures\screenshots\屏幕截图 2023-03-22 193246.png)]
- Hello报文
- 用来周期性发现、建立、保活OSPF邻居关系。
- 10s发送一次Hello报文,来确认邻居的存在
- 如果一个Dead Time内没有收到邻居发送给自己的Hello报文,则认为邻居不存在,Dead Time一般为Hello时间的四倍,默认情况为40s。
- Router-ID-----RID
- 全域唯一,标识路由器的身份
- 使用IP地址的表示形式
- DBD报文
- 数据库描述报文。
- 包含了所有拓扑的目录信息。
- LSR信息
- 链路状态请求报文
- 请求获取未知的链路信息(LSA信息)
- LSU报文
- 链路状态更新报文
- 携带有真正的LSA信息
- LSAck报文
- 链路状态确认报文
OSPF七种状态
- Down----关闭状态------一旦启动OSPF协议,则发出Hello报文,进入下一状态
- Init-----初始化状态-----当收到的Hello报文中,存在本地RID值时,进入下一状态
- 2-way-----双向通讯状态-----邻居关系建立的标志
条件匹配:匹配成功则进入下一阶段,失败则停留在邻居状态。
- Exstart-----预启动状态----使用未携带信息的DBD报文进行主从关系选举,RID大的为主
- Exchange-----准交换-----使用携带目录新的DBD包进行目录分享
- Loading-----加载状态----邻居间使用LSR/LSU/LSAck三种报文来获取完整的拓扑信息
- Full-----转发状态-----拓扑信息交换完成后进入该状态-----邻接关系建立的表示
条件匹配
-
设备接口角色
- 指定路由器-----DR
- 备份指定路由器-----BDR
- 其他路由器—DRother
-
角色之间的关系
- DR与BDR----邻接
- DR与DRother----邻接
- BDR与DRother—邻接
- DRother与DRother----邻接
-
OSPF条件匹配的情况
- 在以太网网络中-----必须进行条件匹配
- 在点到点网络中-----不需要进行条件匹配
-
选举规则
- 优先级,默认为1,0-255,越大越优
- RID,越大越优
-
选举范围
- 一个广播域,进行一次条件匹配。
-
条件匹配属于非抢占模式-----一旦选举成功,不会因为新加入的设备而重新选举。
OSPF工作过程
- OSPF协议启动后,路由器A向本地所有启动了OSPF协议的直连接口,使用组播地址224.0.0.5发送Hello报文。
- 该Hello报文中携带了本地的全域唯一的RID值。
- 当对端路由器B接收到该报文后,也会回复Hello报文
- 该Hello报文中携带了A的RID值
- 此时,A与B建立邻居关系,并生成邻居表
- 邻居关系建立后,邻居之家进行条件匹配,匹配失败则停留在邻居关系,仅使用Hello报文保活。
- 若匹配成功,则可以开始建立邻居关系
- 邻接间共享DBD报文,将本地与邻接之间的DBD报文进行对比,查找本地没有的LSA信息,之后使 用LSR来询问,对端使用LSU回复具体的LSA信息,之后本地使用LSAck报文进行确认。
- 该过程全部完成后,生成数据库表(LSDB)。
- 在之后,本地基于数据库表,启用SPF算法,计算到达所有未知网段的最短路径,然后将其加载到 本地的OSPF路由表中。
- 并将OSPF路由表中的部分路由加载到本地全局路由表中。
- 此时,路由器完成路由收敛工作。
- 最后,使用hello报文进行周期保活,并且每30min进行一次链路状态刷新。
基本配置
- 启动OSPF协议,配置进程号(仅具有本地意义),手工配置RID值
- 若没有配置RID值,则设备自动生成(环回接口最大IP》物理接口最大IP)
- [r1]ospf 1 router-id 1.1.1.1
- 配置区域
- [r1-ospf-1]area 0
- 宣告:激活接口,发布拓扑或路由
- 宣告网段
- [r1-ospf-area-0.0.0.0]network 1.1.1.0 0.0.0.255
- 反掩码:32位二进制,使用点分十进制表示,由连续0+连续1
- 接口宣告方式-----精准宣告
- [r1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0
- 宣告网段
- OSPF邻居表
- [r2]display ospf peer —查看OSPF邻居
- [r2]display ospf peer brief —查看OSPF邻居简表
- OPSF数据库表
- [r2]display ospf lsdb -----查看OSPF数据库表
- OSPF路由表
- [r2]display ospf routing ----查看OSPF路由表
- OSPF优先级=====10
- reset ospf ! process -----重置OSPF进程
OSPF扩展配置
-
修改OSPF默认参考带宽
-
[r2-ospf-1]bandwidth-reference 10000 ----修改参考带宽,两端均需要修改
-
修改接口优先级,从而干涉条件匹配
- [r1-GigabitEthernet0/0/0]ospf dr-priority 10 —在接口修改优先级
- [r1-GigabitEthernet0/0/0]ospf dr-priority 0 —修改优先级为0,代表放弃选举
-
手工汇总
- 必须在ABR上配置
- 汇总的明细是路由来源在哪个区域,进入那个区域进行配置
-
缺省路由
- 在边界设备上
- [r1-ospf-1]default-route-advertise -----非强制性下发,要求边界路由器中存在缺省路由才 可以下发
- [r1-ospf-1]default-route-advertise always -----强制性下发,不要求本地存在缺省路由
-
静默接口
- 不接受也不发送hello报文,与RIP的静默接口不同。
- [r3-ospf-1]silent-interface GigabitEthernet 0/0/1
-
接口认证
-
[r1-GigabitEthernet0/0/0]ospf authentication-mode ?
md5 Use MD5 algorithm -----MD5认证
null Use null authentication -----不认证----OSPF默认情况
simple Simple authentication mode ------简单认证----明文认证
-
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
-
[r2-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
-
-
加快收敛
-
[r3-GigabitEthernet0/0/0]ospf timer hello ? -------一端修改,另一端必须修改,若不修改, 则会导致邻居关系无法建立。
INTEGER<1-65535> Second(s)
-
ACL技术-----访问控制列表
(一种策略)
对于网络中的流量而言,通常由两种处理方式
- 允许
- 拒绝
ACL的原理
- 配置了ACL的网络设备会根据事先设定好的报文匹配规则对经过该设备的报文进行匹配,然后对报文执行预先设定好的处理动作
- ACL功能
- 访问控制:对设备的流入或者流出接口上,匹配流量,然后执行设定的动作
- permit ----允许
- deny ----拒绝
- 抓取流量:因为ACL经常会与其他协议共同使用,所以ACL一般只做匹配流量的作用,而对应的动作由其他协议完成
- 访问控制:对设备的流入或者流出接口上,匹配流量,然后执行设定的动作
- ACL匹配规则
- 自上而下,逐条匹配,匹配上则按照预先设定的动作执行,不再向下匹配。
- 华为设备ACL访问控制列表最后隐含条件:允许所有。
- Cisso设备访问ACL访问控制列表最后隐含条件:拒绝所有
- ACL分类
- 基本ACL
- 只能基于IP报文的源IP地址定义规则
- 编号:2000-2999
- 高级ACL
- 可以基于IP报文的源IP地址、目的IP地址、IP报文协议字段、IP报文长度、TCP源目端口号、UDP源目端口号等一系列信息来定义规则。
- 二层ACl
- 编号4000-4999
- 用户自定义ACL
- 5000-5999
- 基本ACL
需求一
- 要求PC1可以访问192.168.2.0/24,而PC2不可以。
- 基本ACL配置位置应尽量靠近目标。
- 由于基本ACL仅关注数据包中的源IP地址;故配置时尽量靠近目标,避免对其他目的地址访问 产生误伤。
- 基本ACL配置
- 创建ACL列表
- [r2]acl 2000
- [r2-acl-basic-2000]
- 设定规则
- [r2-acl-basic-2000]rule deny source 192.168.1.2 0.0.0.0 ----拒绝192.168.1.2的地址 通过
- 通配符:0代表不可变,1代表可变;0和1可以随意穿插。
- 使用通配符可以精准匹配某一个IP地址或多个IP地址或网段。
- [r2-acl-basic-2000]rule permit source any ----允许所有,在ACL的最后配置
- [r2]display acl 2000 ----查看ACL配置
- [r2-acl-basic-2000]rule 8 permit source 192.168.1.1 0.0.0.0
- 序列号----序列号用于规定ACL规则的顺序,匹配时,从小到大匹配。
- 华为默认步长为5。方便插入或删除规则。
- 调用列表
- [r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
- 一个接口的一个方向只能调用一张ACL列表;但是一张ACL列表可以在不同的地方多次 调用。
- 创建ACL列表
拒绝192.168.1.2和192.168.1.3
192.168.1.00000010
192.168.1.00000011
0.0.0.00000001=====0.0.0.1
拒绝192.168.1.0/24网段中的所有单数IP地址
192.168.1.0000 0001
192.168.1.0000 0011
192.168.1.0000 0101
192.168.1.0000 0111
...
192.168.1.1111 1111
0.0.0.1111 1110
需求二
-
要求PC1可以正常访问PC3和PC4,而PC2只能访问PC3,不能访问PC4.
-
高级ACL配置位置应尽量靠近源点。
- 由于高级ACL对流量进行了精确的匹配,可以避免误伤,所以调用时应该尽快靠近源,减少链 路资源你的占用。-----不需要再网络中进行无用传输。
-
高级ACL配置
-
创建ACL列表
-
[r1]acl 3000
[r1-acl-adv-3000]
-
-
添加规则
- [r1-acl-adv-3000]rule deny ip source 192.168.1.2 0.0.0.0 destination 192.168.2.2 0.0.0.0
- [r1-acl-adv-3000]rule permit ip source any ----允许所有
-
调用
- [r1-GigabitEthernet0/0/1]traffic-filter inbound acl 3000
-
需求三
-
要求R1能够ping通R2的环回,但是不能通过telnet 环回的方式登录R2
-
[r2-acl-adv-3000]rule permit tcp destination 2.2.2.2 0.0.0.0 destination-port eq telnet
-
[r2-acl-adv-3000]rule deny tcp destination 12.0.0.2 0.0.0.0 destination-port eq telnet
-
[r1]acl 3100
-
[r1-acl-adv-3100]rule deny tcp source 12.0.0.1 0.0.0.0 destination 2.2.2.2 0.0.0.0 destinationport eq 23
-
[r1-GigabitEthernet0/0/1]traffic-filter outbound acl 3100
ACL如果配置在流量的发出者本地,则不会对该流量生效。