目录
预备工作 :
基础配置 :
先启动 OSPF 的进程 :
创建区域 :
宣告 :
查看三张表
邻居表 :
数据库表 :
路由表 :
以下示拓扑为 OSPF 示范 :
第一步确定有几个广播域, 第二步给广播域分配网段
AR1 , R2 ,R3 的环回分别是 1.1.1.0/24 2.2.2.0/24 3.3.3.0/24
预备工作 :
先给三台设备分配 IP :
R1 :
[Huawei]sysname r1
[r1]interface g 0/0/0
[r1-GigabitEthernet0/0/0]ip address 12.0.0.1 24
[r1-GigabitEthernet0/0/0]int l0
[r1-LoopBack0]
[r1-LoopBack0]ip address 1.1.1.1 24
R2 :
[Huawei]sys r2
[r2]
[r2]interface g 0/0/0
[r2-GigabitEthernet0/0/0]ip address 12.0.0.2 24
[r2-GigabitEthernet0/0/0]int l0
[r2-LoopBack0]
[r2-LoopBack0]ip address 2.2.2.2 24
[r2-LoopBack0]int g 0/0/1
[r2-GigabitEthernet0/0/1]ip address 23.0.0.1 24
R3 :
[Huawei]sys r3
[r3]int g 0/0/0
[r3-GigabitEthernet0/0/0]ip address 23.0.0.2 24
[r3-GigabitEthernet0/0/0]int l0
[r3-LoopBack0]ip address 3.3.3.3 24
基础配置 :
先启动 OSPF 的进程 :
启动的方式也很简单,就是 OSPF 1 即可,这个 1 就代表着 进程号
进程号 ( 1-65535 ) 均可
一般来讲 OSPF 1 就结束了,就是 进程肯定是启动了
但是,前面我们不是也讲了, OSPF 是需要 Router ID 的,
而按照上示中执行,不是不可,是采取系统默认的角度 就直接给分配了 Router ID
可以看到的是,当我们启动 OSPF 进程,并没有手动命名 Router ID 的时候,
我们使用 display ospf routing 命令 可以直接看到,系统是给 Router ID 分配了的~!!
而我们一般建议 是手动命名的,
所以具体的操作应是 进程启动的同时 也把 Router ID 给命名了
===>>>
手工配置 RID 在启动时就直接配置 ~!!
怎么给 RID 取值呢 ?
===>>>
有环回接口,就先取环回接口的 IP , 环回接口有多个,就取数值最大的那一个。
要是没有环回,那就以接口 IP 为 RID值
注 : 回忆一下,RIP 在配置时,第二步是 选择版本,那对于OSPF 来说 还需要选择嘛 ?
是不需要的~!!
OSPF 是有三个版本不假,但在 IPV4 领域只有两个,V1 和 V2
而 V1 就没出来,所以对于 IPV4 领域来讲 就是进入的 V2 版本 ~!!
对于 OSPF V3 版本来说,启动进程是 OSPFV3 来启动的~!!
OSPF 还有一个点就是 区域划分 ~!!!
蓝色为 区域0, 橙色为区域 1
区域中心为 蓝色区域,这是 OK 的, ABR 为 R2
就是 R2 的环回 2.2.2.2 我们划到 区域0 这边 ,当然了,是都可以的,
放 骨干区域能更合适点 ~!
但是,诸如上面区域划分阐述的那样,问题是啥呢 ??
问题是,区域怎么划分,你拿嘴怎么说都成,就是这设备是怎么知道 哪个是哪个的区域呢?
怎么告诉设备就很重要
===>>>
就是说,你要划分区域,那你得先要有区域呀~!!
以 R1 举例,R1 简单,因为 R1 里的所哟接口都在 区域0 里~!
那你就得首先要有 这个 区域 0 呀 ~!!
创建区域 :
R1 :
如此,区域 0 就创建好了 ~!!
区域创建好后,那接下来的问题是啥呢 ??
===>>>
就是说,你区域是有了,那你这个设备( R1 ) 是哪些接口属于这个 区域 0 呢?
当然了,按照上示,R1 所有的接口都是属于 区域0 的
可以,没问题,但是 区域0 是怎么知道 它有那些接口属于他呢 ??
换言之,对于 R2 来言,有一部分接口属于 区域0 有一部分接口属于 区域1
那也就是说 R2 是有两个 区域的,
那哪些接口属于 区域0 哪些又属于 区域 1 呢??
===>>>
和 RIP 一样, OSPF 也有 宣告 ~!!!
宣告 :
RIP 有宣告, OSPF 也是有宣告的~!!
宣告的作用 : 激活接口,发布路由
OSPF 的宣告不是在进程里宣告,是在对应的区域进行的宣告 ,你接口在哪个区域里,那
就在对应的区域进行宣告。
R1 :
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
这就是 R1 的 area 0 区域 0 的宣告
当然,你看完之后,肯定就会提疑问, 这个 0.0.0.255 是个干啥的 ??好奇怪~!
===>>>
0.0.0.255 即是 反掩码 ~!!
反掩码 : 它与掩码刚好相反,他也是由连续的 0 和 1 组成,32 位二进制 。
怎么个反法呢
===>>>
它的规则就是 0对应的位不可变,而1 对应的位 可变 ~!!
以上示解释 :
12.0.0. 0
0.0. 0. 255
就相当于, 0对应的位置 ,那就是 12.0.0 是不能变的,而后面 255 对应的0
是可变的( 255 就是 1 嘛,是转化成 十进制后成 255 的嘛 )
所以,也就是说 255 对应的 0 是可以发生变化的~!!
我们宣告的目的 是为了 激活接口, 就相当于划分了 一个范围,目的就是激活
这个范围内的接口依照反掩码的规则划分了范围,
范围就是 12.0.0.0 ~ 12.0.0.255 ( 因为最后一组 是允许发生变化的 )
有了反掩码就是比较自如了,你可以控制某个范围,这个范围也可大,也可小
甚至你都可以 直接精确到某一个 IP ,这都是可以通过 反掩码来实现的~!!
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
这呢就意味着 直接精确到 1.1.1.1 这个 IP 了 ( 上示是给 R1 的 1.1.1.1 接
口 激活的 )
所以,设置反掩码,就是 会使得 宣告 很灵活了 ~!!
至此, R1 的配置就结束了,我们接下来 处理 R2 和 R3
R2 :
在 R2 所有接口的 IP 配置过后,我们来给他进行 OSPF 相关配置
与 R1 同理,先启动 OSPF 进程,并顺手配置 RID
===>>>
[r2]ospf 1 router-id 2.2.2.2
接着,创建区域 :
由于 R2 的区域涉及到两个部分,当然啦,无伤大雅洛,你涉及 100 个区域,也是
一个一个来的呗,不急,跟他耍耍~!!!
我意思,咱就先弄 区域0,再弄区域1
区域 0 的接口 有一个 0/0/0, R2 不是还有一个 环回接口嘛,我们把这个 环回接口
也弄到 区域 0 里
[r2-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
我们在 R2 里, 区域0 上,宣告了 12.0.0.0 这个网段范围
随后,就发生了一些 奇妙的变化
===>>>
会产生日志
由于我们之前,先在 R1 上 已经对 区域0 进行宣告了 ,所以会产生了日志
这个日志里面,将 OSPF 的整个过程状态,都反应了出来 ~!!
主要就是, R1 的 0/0/0 和 R2 的 0/0/0 是直连的,并且被宣告都是同一网段,
接口就被激活,就可以收发 OSPF 数据,就会收发 HELLO 包了,自然而然就会
进行一系列的 OSPF 的过程了 ~!!
我们再对 R2 的 环回接口进行激活 ( 也是在 区域0 )
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
我们采用了 精准激活的方式,就是没有宣告哪个范围,直接就是 2.2.2.2 这 1个 IP 地址
我们再给 R2 的区域1 进行 宣告 ,这次 接口的范围我们又设置大了一点儿
就都试试嘛 ~!!
在前面,都可以看到, area 区域 后面是 0.0.0.1
他本质也是 32位二进制构成的; 可以是 十进制 表示,也可以是 点分十进制
至此, R2 的配置就结束了,我们再给 R3 一配置就结束了
R3 :
同样,先来启动进程并且 配置 RID
接着 划区域,宣告
宣告完后,就OSPF 就开始了自己的工作过程,产生了日志
至此, 针对于 本拓扑, 要实行 OSPF 协议的基本配置,就结束了 ~!!
总结 : 就是 针对 OSPF 的实现, 就贯穿三个步骤
# 启动进程,并手动 赋值 RID (也可以自动 赋值 RID ,但建议手动 )
# 划分区域
# 进行宣告
接下来,就看看 那三张表 ~!!
查看三张表
三张表 : 邻居表, 生成数据库表, 路由表
邻居表 :
以 R1 上的 邻居表 为例 :
查看邻居表 :
[r1]display ospf peer
第一行显示 本设备的信息 即 进程 1 , RID 为 1.1.1.1
然后 Neighbors 就是展示 邻居的信息了
===>>>
就是说这个邻居 是在 区域 0 建立的邻居
区域 0, 接口 12.0.0.1 (即是 g 0/0/0 这个接口的邻居,这个接口的 IP 是 12.0.0.1 )
邻居的信息 :
即 AR1 的邻居,根据拓扑,就可以看到是 AR2
RID 为 2.2.2.2 地址为 12.0.0.2 (即与 AR1 0/0/0 这个接口 直连网段对应接口的IP
即 AR2 的 0/0/0 接口IP )
State : 状态,为 Full 状态,即 邻接关系 ( AR1 与 AR2 为邻接关系 ) ~!!
Mode : 模式的意思, Nbr 就是邻居, 即 邻居是主人 ( 就是 邻居是主 的意思 )
即 2.2.2.2 是主人 ( 因为 RID 大呀 )
Priority : 也是 优先级的意思( 先不详解 )
DR, BDR : 也先不解释,后面再讲
MTU : 最大传输单元 ( 显示 值为 0 ,当然这是不可能的,是因为 华为设备默认没有开
启 MTU 检测功能,所以 先显示为 0 )
Dead timer : 死亡计时器
剩下的就是一些 不太重要的参数了 ~!!
当然,上示也有好多参数我们不太用的到,所以,有个命令可以 简约汇总下
查看邻居关系简表 :
[r1]display ospf peer brief
===>>>
数据库表 :
R1 :
查看数据库表
[r1]display ospf lsdb
在之前,我们讲过 数据库表存放的是 LSA 信息, 而 LSA 信息相比于 路由信息,内容是很
大的,而现在 好像显示的内容不算很多 ~!
是这样的, 上示 显示的每一行 都是一条 LSA 信息, 有五条 LSA 信息 ;
而每一条 LSA 信息 是可以展开的,上示显示的是一个目录而已,并没有显示完整~!!
而我们要想看每一条LSA展开的信息
===>>>
依旧是 display ospf lsdb 然后再 Type 类型, 再 Linkstate ID ,这样就查看的是某一条具体
的 LSA 信息了 ~!!
里面的细节,我们后面再讲,先清楚 具体某一条 LSA 展开的查询方法 ~!!
路由表 :
R1 :
[r1]display ip routing-table protocol ospf
可以看到的是, OSPF 的优先级 是 10 ,而静态是 60 , RIP 是 100
这就说明 华为设备对 OSPF 的信任 比 对 人的信任都高 ~!!
Cost 就是 OSPF 的开销 , 在之前就讲过, OSPF 是以 带宽作为 开销值 评判标准
上示 显示 Cost 是 1, 2 ; 那这个开销值是咋 算出来的呢 ?
===>>>
那 开销值 是 越大越好,还是越小越好 ;
肯定是 越小越好;
那 带宽 是越大越好,还是 越小越好 ;
肯定是 越大越好
===>>>
那就是说,要把一个 越大越好的值 给转变成 越小越好
那就是 通过 反比例 来转换 ~!!
所以, Cost 开销值 : Cost = 参考带宽 / 真实带宽
华为设备 默认 参考带宽 为 100Mbps ,而这个 默认参考带宽 也是可以人工修改的 ~!
修改默认参考带宽
===>>>
后面的单位 ( Mbits/s ) 这个 bits/s 就是 比特每秒 即 bps 前面还有一个 M 即 兆
可修改的范围 是 1-2147483648 还蛮大的~!!
上示,显示,我们修改的值是 1000
因为 默认参考带宽 值较小,在目前传输速率都比较大的情况下,会出现选路不佳的情况,
可以将参考带宽改大来改善该问题。
注意 : 一台路由器 参考带宽修改了,则所有的路由器的参考带宽就都得修改成一样的值
因为,要靠这个评判标准( Cost )开销值来选路的,所以要保持 Cost 值 一致~!