三、数据包类型: Hello 用于邻居、邻接(毗邻)的发现,建立、周期保活 DBD 数据库描述 – 本地的数据库的目录 LSR 链路状态请求 – 基于本地未知的LSA信息进行查询 LSU 链路状态更新 – 用于传输各种LSA信息 LSack 链路状态确认 – 确认收到的DBD/LSU;
OSPF数据库扩展封装于3层报头;协议号89 ; 标准报头格式如上图;其中类型号1-5对应OSPF的5种包;不同种类的数据包基础报头一致,在data处不同(各自的信息;)
四、状态机 : Down 一旦本地启动OSPF协议,并发出hello包及可以进入下一个状态机; Init 初始化 本地接收到的hello包中,若邻居字段出现本地的router-id,进入下一个 状态; 2way 双向通讯 邻居关系建立的标志,双方互相认识,拥有对端的router-id; 条件:1)点到点网络直接进入下一个状态 2)MA网络将进行DR/BDR选举;非DR/BDR之间不能进入下一个状态;
Exstart 预启动 邻居间使用不携带数据库目录信息的DBD包进行主从关系的选举;RID数值大为主;主优先进入下一个状态机;避免同一时间的收发导致网络拥塞; Exchange 准交换 邻居间使用DBD共享数据库目录;需要ACK确认; Loading 加载 查看邻居发送过来的DBD,比对出本地未知的LSA,之后使用LSR询问对端,对端使用LSU来共享这些LSA信息,本地再LSACK确认; Full 转发 邻接关系建立的标志 邻居间LSBD一致; 五、区域划分规则: 1、星型拓扑 – 中心为骨干区域-0;非骨干区域大于0;所有非骨干区域必须连接到骨干区域; 2、必须存在ABR –区域边界路由器 默认合规的ABR,应该在连接非骨干区域的同时必须连接骨干区域; 六、基础配置 [r1]ospf 1 router-id 1.1.1.1 启动OSPF协议,可以定义进程号,默认为1,RID; 进程号仅具有本地意义;RID全网唯一,格式IPV4地址 地址生成权限—手写—环回最大数值—物理接口最大数值 宣告:激活协议 宣告内容 区域划分 [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 OSPF必须使用反掩码 反掩码(OSPF)和通配符(ACL)的区别:两者均为0关注,1不关注可变; 但反掩码只能前0后1、全0、全1; 通配符还可以0、1穿插;
1)当启动配置完成后,邻居间收发hello包,建立邻居关系,生成邻居表: [r2]display ospf peer [r2]display ospf peer brief Hello包 用于邻居、邻接关系的发现、建立、周期保活;
4个携带*号的参数,为邻居hello包中必须完全一致的参数,否则无法建立邻居关系; Hello 和dead time,区域ID,认证参数,末梢区域标识 华为设备还要求邻居间接口配置的ip地址中子网掩码必须一致; Hello time 10s或者30s; dead time为hello time 4倍
2)当邻居关系建立后,邻居间使用DBD来进行主从选举,以及数据库目录的共享 关于DBD包的扩展: 1、隐性确认 – 不适用确认机制的ACK包,而是在数据交互的过程中利用其他的参数来进行接收确认;OSPF协议的DBD包利用了序列号来完成隐性确认; 从使用主的序列号来确认接收到主的DBD; 2、关注DBD包中的描述字段 I 为1代表本地发出的第一个DBD M 为1代表不是本地最后一个DBD; MS 为1代表主,0代表从; 3、MTU值 OSPF协议要求邻接的接口MTU值必须完全一致,否则将无法建立邻接关系; 若不一致,正常卡在exstart或者exchange状态机下;部分厂商默认不关注该参数,若需要关注得管理员开启 –华为默认不关注 [r1]interface GigabitEthernet 0/0/1 [r1-GigabitEthernet0/0/1]ospf mtu-enable 开启关注
OSFP协议的邻接关系建立过程中,邻接间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA,最终完成LSDB同步;完善数据库表: [r1]display ospf lsdb
之后,每台运行OSPF协议的路由器,将基于本地的数据库,计算生成所有到达未知网段的路由,然后将其加载到路由表中: 默认在华为路由表中,优先级为10;度量使用cost值; Cost值=参考带宽/接口带宽 所参考带宽小于接口带宽,cost值为1; Osfp默认选择cost值之和最小为最短路径; 默认参考带宽为100M,所参考带宽小于接口带宽,cost值为1;可能导致选路不佳; 可以人为修改参考带宽 [r1]ospf 1 [r1-ospf-1]bandwidth-reference ? INTEGER<1-2147483648> The reference bandwidth (Mbits/s) [r1-ospf-1]bandwidth-reference 1000 注:所修改参考带宽,那么该网络中所有的设备均需修改;
3)关于DB/BDR选举 只有在MA网络中才需要进行DR/BDR选举,所有的非DR/BDR间不能建立邻接关系,避免重复更新;–切记在每一个MA网段中均需要选举DR/BDR;
规则: 1、比较参选接口的优先级,默认为1;0-255 大优; 为0代表不参选 2、所有优先级相同,比较参选设备的RID,数值大优; 另:在修改接口优先级后,由于选举非抢占,故不会马上产生效果; 通过重启所有参选设备的ospf进程,才能重新选举; [r1]interface GigabitEthernet 0/0/1 [r1-GigabitEthernet0/0/1]ospf dr-priority 3 reset ospf process Warning: The OSPF process will be reset. Continue? [Y/N]:y
七、OSPF的接口网络类型 –OSPF协议在不同网络类型的接口上其不同的工作方式 [r1]display ospf interface LoopBack 0 查看OSPF协议在某种接口上的工作方式
网络类型 OSPF接口网络类型 环回 p2p—无hello收发,主机32位路由共享 点到点—串线HDLC/PPP tunnel-GRE p2p—自动建邻,不选DR,hello time10s BMA – 以太网 Broadcast–自动建邻,选DR,hello time10s NBMA –帧中继、MGRE
由于MGRE为虚拟的NBMA环境,故ospf协议不能自动识别到;正常在NBMA网络中OSPF的接口工作方式应该为nbma方式;但在MGRE的接口上,ospf协议理解为普通的tunnel接口,使用了p2p的工作,该工作方式只能建立一个邻居关系; 故在华为设备中,在能够接收到伪广播的所有邻居中定义建议第一个邻居,忽略其他的邻居建立;在cisco的环境中,将实时与最新收到的伪广播hello包建立邻居关系; 处理方案: 1、该网段所有接口的ospf工作方式修改为Broadcast; [r1]interface Tunnel 0/0/0 [r1-Tunnel0/0/0]ospf network-type broadcast 在修改的过程中,由于Broadcast 与 p2p的hello time设计为一致10s,故当该网段多台设备中部分设备以及修改为Broadcast,但还剩余一些设备为p2p,将出现可以建立,但由于DR选举(Broadcast选DR/p2p不选DR),导致无法正常收敛,需求该网段所有接口均修改为Broadcast;
在修改所有接口的工作方式为broadcast后,还需要关注当前MGRE环境的拓扑情况; 若为全连网状结构—正常 若为部分网状结构或星型结构,将由于部分设备间没有邻居关系,导致对整个网络的认真不同,从而出现DR/BDR选举位置不统一(将中心点定为DR,不要BDR)
2、该网段所有接口的ospf工作方式修改为P2MP P2MP为手工方案,不是默认的类型;hello time30s;不选DR/BDR;自动建邻; 在物理的NBMA网络,比如帧中继可以解决下一跳问题,故为帧中继非全网结构拓扑最好的方案;但由于MGRE不是物理NBMA,而是逻辑NBMA,故不建议使用该方案。
数据抓包
|