目录
1. OSPF:开放式最短路径优先协议
- 无类别链路状态igp协议;
- 有周期更新(30min)+触发更新;
- 链路状态协议的更新量随着网络范围的扩展指数性的上升,因此ospf协议为了在中大型网络中工作,需要结构化的部署-区域划分、合理ip地址规划;
- 组播更新--- 224.0.0.5 224.0.0.6
1.1. ospf的5种数据包:
- Hello 邻居的发现,关系的建立;周期(10s)的保活 携带rid ;
- Dbd 数据库描述包;本地数据库目录;
- Lsr 链路状态请求;
- Lsu 链路状态更新;
- Lsack 链路状态确认
1.2. Ospf的7个状态机:
1.Down:一旦接收到的hello 包,进入下一个状态机。
2.Init 初始化: 一旦接收到的hello包中,存在本地的rid,进入下一个状态。
3.2way 双向通讯: 邻居关系建立的标志。关注条件:
4.Exstart 预启动: 使用不携带目录信息的DBD包,进行主从关系的选举;rid大为主,优先 进入下一个状态;解决了目录共享时的无序。
5.Exchange 准交换:使用携带目标信息的dbd包,共享本地数据库目录。
6.loading加载:查看完邻接的dbd信息后对比本地,然后基于本地未知的lsa进行查询;
使用lsr 向对端查询,
对端使用lsu来传输这些lsa信息,
本地收到后需要lsack来进去确认
7.Full:邻接关系建立的标志; 意味着邻接间数据库同步(一致)。
1.3. ospf的工作过程:
- 启动配置完成后邻居间开始收发hello包,hello包中将携带本地及本地所有已知邻居的rid,之后生成邻居表。邻居间需要关注是否可以成为邻接的条件,若不能建立为邻接将保持为邻居关系,仅hello包周期保活即可;
- 若可以建立邻接关系,将使用DBD进行本地数据库目录的对比;之后基于对比的结果,使用LSR/LSU/LSack来获取本地未知的LSA信息;使邻接关系间数据库(lsdb)完成同步(一致),生成数据库表;
- 之后本地基于lsdb,使用spf算法,生成有向图—>最短路径树——>计算本地到达所有未知网段的最短路径,将其加载到本地路由表中;收敛完成;
- 收敛完成后,邻居和邻接关系间均hello每10s保活;每30min一次邻接关系间周期数据库比对,保障一致。
1.4. 拓扑结构中的结构突变:
- 新增网段
- 断开网段
- 无法沟通 --- dead time 为hello time的4倍;在4次周期内未收到对端的hello包,将断开与其的邻居关系,并且删除通过该邻居计算所得路由;
名词解释:
- Lsa:链路状态,具体一条一条路由信息或拓扑信息;但它不是一个包,是存在lsu数据包中被携带。
- lsdb:链路状态数据库 – 所有lsa的集合。
2.基础配置
- 启动时可以定义进程号即RID(route-id)。默认进程为1,RID--格式为IPV4地址,全网唯一。 手工--->环回接口最大数值--->物理接口最大数值
- 宣告作用:1、激活端口 --- 可以收发ospf的信息; 2、被选中接口的 拓扑信息 可以共享给邻接; 3、区域划分(以0区域为中心,其余区域均围绕0区域)
- ospf在宣告时,需要使用反掩码(与子网掩码0、1位置相反),来匹配宣告的地址范围
[r1]ospf 1 router-id 1.1.1.1 ----定义进程号即RID(route-id)
[r1-ospf-1]area 0 ----区域划分
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 ---- 宣告。精确到每一位
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 ----范围为后八位
3.区域划分规则
- 星型结构 --- 编号0骨干区域(中心),大于0为非骨干区域(分支)。非骨干区域必须直连骨干区域。
- 必须存在ABR(区域边界路由器,即两个区域间互联的设备)
启动配置完成后,邻居间收发hello包,建立邻居关系,生成邻居表:
[r2]display ospf peer ----查看邻居关系
[r2]display ospf peer brief ----查看邻居简表
邻居关系建立后,通过关注条件。若匹配失败,保持为 邻居关系,仅hello包周期保活;若匹配成功可以建立为 邻接(毗邻)关系,邻接关系间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息,再完成本地的LSDB (数据库表);
[r2]display ospf lsdb ----查看数据库表
当数据库同步完成后,本地基于SPF算法,将数据库转换为有向图,再将有向图转换为树型结构,之后基于树形结构,以本地为起点到达所有未知网段的最短路径,加载到路由表中。
<r1>display ip routing-table protocol ospf ----查看ospf路由
ospf路由通道优先级为10;度量为cost值 ; cost值=开销值。
Ospf cost = 参考带宽/接口带宽 默认参考带宽为100M
ospf优选cost值之和最小,为最佳路径。若两条链路cost值之和相同,等开销负载均衡;
但是若接口带宽大于参考带宽,cost为1;将可能导致选路不佳,建议修改默认的参考带宽。
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000 ------修改参考带宽
切记:若修改参考带宽,全网需修改的一致;
4.扩展配置
1).DR/BDR选举:
邻居成为邻接关系的条件(与网络类型有关)-----网络类型:
- 点到点 -- 在一个网段内只能存在两个节点 -- 串线链路
- MA(多路访问) -- 在一个网段内的节点数量不限制;不仅是当下连接了几个节点,而是该网络类型允许最终连接多个节点;以太网中常有
- 点到点网络邻居关系直接成为邻接关系。
- 在MA网络中,将进行DR/BDR选举。在一个网段中仅DR/BDR与其他路由器为邻接关系,非DR/BDR之间为邻居关系。
选举规则:
- 先比较该网段所有参选设备接口的优先级,越大越优。
- 默认优先级为1。取值范围0-255,0标识不参选。
- 若所有参选者优先级相同,比较参选设备的RID,数值大优。
干涉选举:
- DR优先级最大,BDR次大。
- 切记:ospf的选举是非抢占性的。所以在修改完优先级后,需要所有路由器重启OSPF进程才会重新进行选举。
[r2]interface GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]ospf dr-priority 3 ----修改接口优先级
<r1>reset ospf process ----重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
- 无需重启进程方法:DR优先级修改为最大,BDR次大,其他设备修改为0。
2).区域汇总:
- OSPF协议不支持接口汇总,只能在ABR上将a区域拓扑计算所得路由,共享给b区域时进行汇总。
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0
- R2为一台连接区域0和其他区域的ABR。
- 以上操作为,R2将通过区域0学习到的拓扑计算所得的路由,传递给其他区域时进行汇总,汇总网段1.1.0.0/22
3).被动接口(沉默接口):
- 仅接收不发送路由协议信息。用于连接用户终端的接口,不得用于连接邻居路由器的接口,否则无法建立邻居关系。
[r2]ospf 1
[r2-ospf-1]silent-interface GigabitEthernet 0/0/0
4).认证 :
- 接口认证:在直连邻居或邻接的接口上配置,保障更新的安全
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
- 模式、编号、密码要求邻居间一致
5).加快收敛:
- 邻居间计时器 10s hello time 40s dead time
- 邻居间:修改本端的hello time,本端的dead time自动4被关系匹配。但ospf中邻居间的hello time和dead time必须完全一致,否则无法建立邻居关系。
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 5
6).缺省路由:
- 边界路由器上配置后,将自动向内网下放一条缺省路由,之后内网设备将自动生成缺省路由指向边界.
[r4]ospf 1
[r4-ospf-1]default-route-advertise always