本文主要是介绍问鼎OSPF(3)-完善机制沐邻里,帅将兵民如父兄,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问鼎OSPF
- 问鼎OSPF目录
- 一、由接口演七般变化 众网元借奇功应不同链路
- 1、OSPF接口
- 2、OSPF接口状态机
- 二、邻居间奏琴瑟和鸣 八般变化助LSA交互
- 1、OSPF邻居
- 2、OSPF邻居状态机
- 广播网络
- NBMA网络
- 点到点/点到多点网络
- 三、X网点大阵终成 少年联手小将再踏征途
问鼎OSPF目录
1、问鼎OSPF(1)-互联Route群雄争,OSPF 出横空
2、问鼎OSPF(2)-初涉路由显神通,治军四方拥
鲜衣怒马惊草风,
身若劲松气如虹。
一朝踏尽寒霜雪,
剑破长空化游龙。
“这诗说的正是白袍小将。广播链路一战,世人皆识得白袍小将,即便与我们的军师OSPF相比,亦有过之而无不及。那一战,白袍小将恍若天神,携雷霆万钧之势冲入敌阵,好不威风! ”说书人眉飞色舞,口沫横飞。台下看客目瞪口呆,一脸沉醉。
自广播链路大捷已过三日。虽说众人都很高兴,但是连番的几次大战,亦是让不少人生了疲惫之心。网管听得OSPF的报告,便命三军稍作休整,恢复元气。这一日,OSPF与攻打广播链路一众将士相约于X网点有名的醉仙楼,谈天说地,把酒言欢。
“军师,莫要听那说书人瞎说。这种人就一样本事,喜欢夸夸而谈。”说话的人剑眉星目,英武不凡,对军师的语气很是恭敬。
“呵呵,将军莫要自谦,若非有你,我们不知要折损多少将士,才能攻下广播网络。”答话人白衣胜雪,神色如常。
“哎呀哎呀,大哥和军师你们怎么突然都变得如此清高了。哎呦哎呦,冷死了。”这时候突然窜出来一个小姑娘,那小姑娘一身水绿裙裳,扎着个马尾,宛若白玉的小脸上生着一双秀丽的大眼睛,乌黑的眼珠在里边滴溜溜的打着转。而那双顾盼撩人的大眼睛忽闪忽闪,带着微微上翘的长睫毛上下跳动,真是好生俏丽。
“噗。”终于有人忍不住,笑出声来,而席间的氛围也轻松了起来。
“小妹你又胡说,若无军师,我们这些兄弟怎受得主公如此赏识。你这么不懂规矩,以后也不知道哪家小哥敢要你。”白袍小将苦笑摇头。
“哼哼,我谁都不嫁,我…我就一辈子赖上你了!”难得的,小丫头嫩的小脸上透出了一点红。
“哈哈哈哈,原来我们的小妹心有所属了。”众人哈哈大笑,跟着起哄。
“你们也跟着胡闹!” 白袍小将言间讪讪,为了掩饰尴尬,干咳一声。忽又觉得好久没如此开心过,既而也跟着放声大笑。一时间,众人言笑晏晏,似是忘了Internet上那繁多的战事,那繁多的忧愁。
一、由接口演七般变化 众网元借奇功应不同链路
酒过三巡,白袍小将见时机成熟,便对OSPF正色道:“多谢军师提拔,方有我今日成就。原先籍籍无名一网元,如今却管理一方广播链路,竟然还有了DR这个名号,此等恩情,没齿难忘!”
“呵呵,非也。名利皆虚妄,这是家师教导我的,今天我也对你这样说,”OSPF摆了摆手,然后又对其他众人道:“还有你们也莫要看轻自己。常言道,此一时彼一时,你们可知道我传予你们的功法,人人皆能生出七般变化?将军当得DR、小妹当得BDR,你们也能当得。教你们七般变化,就是让你们顺势而为,莫说广播链路、NBMA链路,P2P/P2MP链路也当应付得了。”
“哦?竟有如此威能?”白袍小将很是惊奇。
“怎么?不信吗?且看看你的OSPF接口状态。”言罢OSPF含笑不语。
白袍小将心怀忐忑,查看了自己的OSPF接口,竟发现其上颜色由赤及紫,七般状态,交错变化,持续时长不一而足。
“军师,这?”
“莫慌,待我慢慢说来……”
1、OSPF接口
通过第一篇&第二篇,我们知道OSPF是链路状态协议,运行OSPF的设备间通过交互链路状态信息(即LSA),最后每台OSPF设备都形成一个链路状态数据库(即LSDB),从而知道整张网络的拓扑信息。而这些链路信息最初的源头肯定都是OSPF设备本身相连的本地链路信息,那么这些信息又是从哪里获得的呢?答案是与链路直连的OSPF接口。
我们可以通过display ospf interface查看OSPF接口信息。

在上面的信息中,通过其中一些描述链路基本状况的字段,就可以了解OSPF接口相连的链路信息。
- 1)
Router ID:设备的ID,第二篇中介绍到的,保证设备在OSPF网络的唯一性。 - 2)
Area:接口所在的区域ID。关于区域ID,在第四篇中会详细介绍。 - 3)
Interface:接口的基本信息,包括接口的IP地址、接口编号。始发于这个接口的OSPF报文将把这个IP地址作为源地址。 - 4)
Cost:接口开销值,即此接口发送出去的数据包在链路中传输需要花费的开销值。
OSPF在生成SPF时,就是依据这些链路开销值,选出最优的数据转发链路。 - 5)
Type:接口类型,即这个接口相连的链路类型,包括P2P、P2MP、广播或NBMA。
当然,还有别的如维持邻居关系相关的等其他的信息,比如第二篇里的Dead Timer。
- 6)
Priority:设备接口在选取DR和BDR时的优先级。其值越大,优先级越高。 - 7)
DesignatedRouter:接口所在广播网络/NBMA网络上的指定设备,即DR。一般用连接这个广播网络/NBMA网络的接口地址表示。比如192.168.23.0/24这个广播网络/NBMA网络的DR是相连接口地址为192.168.3.2的设备。 - 8)
BackupDesignatedRouter:接口所在网络上的备份指定设备,BDR。一般用连接这个广播网络/NBMA网络的接口地址表示。比如192.168.23.0/24这个广播网络/NBMA网络的BDR是相连接口地址为192.168.3.1的设备。 - 9)
Hello:接口发送Hello报文的时间间隔。 - 10)
Dead:接口相连的OSPF邻居失效时间。超过失效时间,如果接口还没有收到邻居设备发来的Hello报文,就表明两端的邻居关系已无效。华为S系列交换机在默认情况下,邻居失效时间为发送Hello报文时间间隔的4倍。 - 11)
Poll:NBMA网络上发送轮询Hello报文的时间间隔。在NBMA网络上,当邻居失效后,设备将按轮询时间间隔定期地发送Hello报文。轮询时间间隔值至少应为Hello报文时间间隔的4倍,华为S系列交换机在默认情况下发送轮询Hello报文的时间间隔是发送Hello报文时间间隔的4倍。 - 12)
Retransmit:接口没有收到来自对端“LSA已经收到”的确认报文,需要重传LSA的等待时间。 - 13)
Transmit Delay:接口发送LSA过程中的传输延迟时间。
2、OSPF接口状态机
OSPF设备从接口获取了链路信息后,然后与相邻设备建立邻接连接,交互这些信息。在建立邻接关系之前,邻居设备间需要明确角色分工,才能正常建立连接。那角色分工通过什么来了解呢?
其实在图1的接口信息中,我们还有一个非常关键的字段没有介绍,那就是State字段。通过这个字段,我们就可以了解OSPF设备在一段链路中的作用。而这也就是OSPF接口的七般变化。每个设备通过这七般变化,顺势而为,扮演好自己在这段链路中的角色。
接口总共有下面7种状态
Down:接口的初始状态。表明此时接口不可用,不能用于收发流量。Loopback:设备到网络的接口处于环回状态。环回接口不能用于正常的数据传输,但仍能通过ICMP ping或位错误检测来收集接口信息。Waiting:设备正在判定网络上的DR和BDR。 在设备参与DR/BDR选举前,接口上会起一个Waiting定时器。在这个定时器超时前,设备发送的Hello报文不包含DR和BDR信息,设备不能被选举为DR或BDR,因为从第二篇可以知道,正常的DR/BDR选举遵循非抢占原则。这可以避免不必要地改变链路中已存在的DR和BDR。仅NMBA网络、广播网络有此状态。P-2-P:接口连接到物理点对点网络或者是虚拟链路,这个时候设备会与链路连接的另一端设备建立邻接关系。仅P2P、P2MP网络有此状态。DROther:设备没有被选为DR或BDR,但连接到广播网络或NBMA网络上的其他设备被选举为DR。它会与DR和BDR建立邻接关系。BDR:设备是相连网络的BDR,并将在当前的DR失效时成为DR。该设备与接入该网络的所有其他设备建立邻接关系。DR:设备是相连网络的DR。 该设备与接入该网络的所有其他设备建立邻接关系。
每个OSPF接口如何进行七般变化?它是根据不同的情况(即输入事件)在这些状态中进行灵活转换的,这样就形成了一个高效运作的接口状态机,如下图所示。

下面是不同状态切换时的输入事件InputEvent(图中简称IE)。
| 输入事件 | 详细事件描述 |
|---|---|
| IE1 | InterceUP:底层协议表明接口是可操作的。 |
| IE2 | WaitTimer:等待定时器超时,表明DR-BDR选举等待时间结束。 |
| IE3 | BackupSeen:设备已检测过网络中是否存在BDR。发生这个事件主要有下面两种方式: 1)接口收到邻居设备的Hello报文,宣称自己是 BDR;2)接口收到邻居设备的 Hello的报文,宣称自己是DR,而没有指明有BDR。这都说明邻居间已进行了相互通信,可以结束 Waiting状态了。 |
| IE4 | 接口所在的设备在网络中被选举为DR。 |
| IE5 | 接口所在的设备在网络中被选举为BDR。 |
| IE6 | 接口所在的设备在网络中没有被选举为DR/BDR。 |
| IE7 | NeighborChange:与该接口相关的邻居关系变化的事件发生,这表明DR/BDR要重新选举。下面的这些邻居关系变化可能会导致 DR/BDR重新选举:1)接口所在的设备和一个邻居设备建立了双向通信关系。 2)接口所在的设备和一个邻居设备之间丢失了双向通信关系。 3)通过邻居设备发送的Hello报文检测到,邻居设备重新宣称自己是 DR/BDR。4)通过邻居设备发送的 Hello报文再一次检测到,邻居设备宣称自己不再是DR/BDR。5)通过邻居设备发送的 Hello报文再一次检测到,邻居设备的DR优先级已经改变。 |
| IE8 | UnLoopInd:网管系统或者底层协议表明接口不再环回。 |
| IE9 | InterfaceDown:底层协议表明接口不可操作。任何一种状态都可能触发此事件切换到Down状态。 |
| IE10 | LoopInd:网管系统或者底层协议表明接口处于环回状态。任何一种状态都可能触发此事件切换到Loopback状态。 |
二、邻居间奏琴瑟和鸣 八般变化助LSA交互
众人听罢,内心久久不能平歇,军师的功法原来竟有这般变化!想想也是,十四儿郎,少小离家,谁不想从茫茫行伍中脱颖而出,纵不博得个千古美名,总要留下些什么证明自己亦曾得意过。
“初时以为军师给我们都定义好了角色,照着军师给的锦囊去做就好,原来这竟是一门能演绎七般变化的高明心法。”白袍小将似是喃喃自语,又似是对众人说,忽的他抬头对OSPF道:“军师,既然这心法能教人应不同链路,却没有说如何去教我们在这链路上去交互LSA,想必还另有心法,是也不是?!”
“嗯,将军果然聪明,的确如此,”OSPF微微点头,“还有一门心法叫琴瑟和鸣,想来你们从这雅致的名字也可以知道,这需要两人共同修行演绎。而这心法,可是比之前的更复杂了,它有八般变化。”
“八般变化?这不是才多了一般变化么?”
“呵呵,非是多了一般变化那么简单。反正这些你们迟早也要习得,我就先说与你们听听……”
1、OSPF邻居
相邻设备间明确好角色分工,相连接口状态稳定下来以后,下一步就是建立邻接关系,完成链路信息的传输。
江湖小贴士:
1、 邻居关系和邻接关系有什么区别?什么情况下才会出现邻居或者邻接?

- 1)邻居关系:
OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,比如Hello报文发送间隔、网络类型、IP地址掩码等,如果双方一致就会形成邻居关系,两端设备互为邻居。 - 2)邻接关系:位于邻居关系之上,如果两端需要进一步交换
DD报文、交互LSA信息,才建立邻接关系。
这也就解答了第二篇里面广播链路/NBMA链路的一些疑问。在广播链路/NBMA链路里,因为DROther之间不需要交换LSA信息,所以建立的就是邻居关系。而DR与BDR之间,DR/BDR与DROther之间需要交互LSA信息,所以建立的是邻接关系。如上图所示。
而P2P链路/P2MP链路则只有邻接关系。
后面会介绍到邻居状态机,如果根据邻居状态理解,邻居关系是指邻居状态达到了2-way状态,而邻接关系则需要达到Exstart以上状态。
2、OSPF的五种协议报文。
在介绍OSPF邻居的一些内容之前,有必要讲解下OSPF协议用到的5种协议报文,因为后面的知识点很多都会涉及到这些协议报文。在讲解时,会拿生活中的顾客去饭馆点菜、服务员上菜做类比,加深理解。
Hello报文:最常用的报文,其作用为建立和维护邻接关系,周期性地在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、本网络中的DR、BDR以及已知的邻居。
这类似于顾客去饭馆吃饭,先跟服务员打招呼。
DD报文:两台设备在邻接关系初始化时,用DD报文描述本端设备的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA),即所有LSA的摘要信息。LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少设备之间的协议报文流量,对端设备根据LSA Header就可以判断出是否已有这条LSA。在两台设备交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
这里面,DD报文就好比饭馆里面的菜单,顾客先要看下菜单,了解有哪些菜。
LSR报文:两台设备互相交换过DD报文之后,需要发送LSR报文向对方请求更新LSA,内容包括所需要的LSA的摘要信息。
这类似于顾客看完菜单之后,他就知道想要点哪些菜了,就把X桌的菜单写好给服务员。
LSU报文:LSU报文用来向对端设备发送其所需要的LSA或者泛洪本端更新的LSA,内容是多条LSA(全部内容)的集合。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认,对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。
这类似于饭馆根据顾客点的菜单提供对应的菜。
LSAck报文:LSAck报文用来对接收到的LSU报文进行确认,内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。
这类似于服务员上好菜以后,顾客还要确认下是不是他点的那些菜。
考虑到篇幅有限,如果大家希望了解不同协议报文的格式,可以查阅后面会发布的“OSPF-番外篇之协议报文格式”
邻居关系建立和维持都是通过交换Hello报文来完成的。 OSPF设备发送的Hello报文会携带有OSPF接口数据结构中保存的信息,来通告给邻居设备。而对于邻居设备来说,也会将这些学习到的信息维护一张邻居数据结构表中。通过display ospf peer命令可以了解这些邻居信息。

对于OSPF邻居字段信息的详细解释如下。
- 1)
Area:邻居所属的区域。 - 2)
Interface:与邻居相连的接口。 - 3)
Router ID:邻居的Router ID。 - 4)
Address:邻居接口的IP地址。 - 5)
State:邻居状态。 - 6)
Mode:DD交换进程中协商的主从状态。
Nbr is Master,邻居是Master,主动发送DD报文。
Nbr is Slave,邻居是Slave,配合Master发送DD报文。 - 7)
Priority:邻居的DR优先级。 - 8)
DR:邻居间指定路由器的IP地址。 - 9)
BDR:邻居间备份指定路由器的IP地址。 - 10)
Dead timer: 邻居失效定时器。如果在超时时间内,还没有收到邻居发来的Hello报文,说明邻居已失效。 - 11)
Retrans timer interval:重传LSA的时间间隔。如果在这个间隔内,没有收到邻居的LSA已经收到的确认报文,LSA会进行重传。 - 12)
Authentication Sequence: 认证序列号。
2、OSPF邻居状态机
相信大家也注意到了,邻居信息中也有个State字段。不错,OSPF说的琴瑟和鸣正是相邻设备间通过不同的邻居状态切换,最后形成完全的邻接关系,完成LSA信息的交互。*
邻居状态机总共有8种状态:
Down:邻居会话的初始阶段。表明没有在邻居失效时间间隔内收到来自邻居设备的Hello报文。除了NBMA网络OSPF路由器会每隔PollInterval时间对外轮询发送Hello报文,包括向处于Down状态的邻居路由器(即失效的邻居路由器)发送之外,其他网络是不会向失效的邻居路由器发送Hello报文的。Attempt:这种状态适用于NBMA网络,邻居路由器是手工配置的。邻居处于本状态时,路由器会每隔HelloInterval时间向自己手工配置的邻居发送Hello报文,尝试建立邻居关系。Init:本状态表示已经收到了邻居的Hello报文,但是对端并没有收到本端发送的Hello报文,收到的Hello报文的邻居列表并没有包含本端的Router ID,双向通信仍然没有建立。2-way:互为邻居。本状态表示双方互相收到了对端发送的Hello报文,报文中的邻居列表也包含本端的Router ID,邻居关系建立。如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。而且DR/BDR只有在邻居状态处于这个状态或者更高的状态才会被选举出来。Exstart:协商主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。邻居间从此时才开始正式建立邻接关系。Exchange:交换DD报文。本端设备将本地的LSDB用DD报文来描述,并发给邻居设备。Loading:正在同步LSDB。两端设备发送LSR报文向邻居请求对方的LSA,同步LSDB。Full:建立邻接。两端设备的LSDB已同步,本端设备和邻居设备建立了完全的邻接关系。
其状态切换如下图所示。

触发不同状态的输入事件如下表所示。
| 输入事件 | 详细事件描述 |
|---|---|
| IE1 | Start:以HelloInterval间隔向邻居设备发送Hello报文,尝试建立邻居关系。仅NMBA网络适用。 |
| IE2 | HelloReceived:从邻居设备收到一个Hello报文。 |
| IE3 | 2-WayReceived:从邻居设备收到的Hello报文中包含了自己的RouterID,邻居间建立了双向通信关系。接下来会进行判断:IE3(Y):如果相邻设备间应当建立邻接关系,会将邻居状态切换为Exstart;IE3(N):如果相邻设备间不应当建立邻接关系,只建立邻居关系,会将邻居状态切换为2-way。 |
| IE4 | NegotiationDone:邻居间主从关系已经协商完成,DD序列号已经交换。 |
| IE5 | ExchangeDone:邻居间成功交换了数据库描述报文。接下来会进行判断:IE5(Y):如果链路状态请求列表为空,会将邻居状态切换为 Full状态,表示链路状态数据已全部交换完成,邻居间建立了完全的邻接关系;IE3(N):如果链路状态请求列表不为空,会将邻居状态切换为 Loading状态,开始或继续邻居发送LSR报文,请求还没有接收到的链路状态数据。 |
| IE6 | LoadingDone:链路请求状态列表为空。 |
其实,上面的邻居状态机并没有描述完全,只是描述了正常的切换过程,实际的状态机很复杂,会考虑其他很多异常情况,比如链路变化导致的邻居关系和邻接关系只见的切换、链路状态数据传输时出现错误导致重传等。考虑到篇幅有限,如果大家希望了解更全面的状态,可以查阅后面会发布的“OSPF-番外篇之邻居状态机”。
下面介绍一下不同网络的邻接关系建立过程:
广播网络

- 建立邻居关系
- a.
DeviceA的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个Hello报文(使用组播地址224.0.0.5)。此时,DeviceA认为自己是DR设备(DR=1.1.1.1),但不确定邻居是哪台设备(Neighbors Seen=0)。 - b.
DeviceB收到DeviceA发送的Hello报文后,发送一个Hello报文回应给DeviceA,并且在报文中的Neighbors Seen字段中填入DeviceA的Router ID(Neighbors Seen=1.1.1.1),表示已收到DeviceA的Hello报文,并且宣告DR设备是DeviceB(DR=2.2.2.2),然后DeviceB的邻居状态机置为Init。 - c.
DeviceA收到DeviceB回应的Hello报文后,将邻居状态机置为Exstart状态,下一步双方开始发送各自的链路状态数据库。在广播网络中,两个接口状态是DR Other的设备之间将停留在此步骤。
- 主/从关系协商、
DD报文交换
- a.
DeviceA首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号Seq=X。I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。M=1说明这不是最后一个报文。
为了提高发送的效率,DeviceA和DeviceB首先了解对端数据库中哪些LSA是需要更新的,如果某一条LSA在LSDB中已经存在,就不再需要请求更新了。为了达到这个目的,DeviceA和DeviceB先发送DD报文,DD报文中包含了对LSDB中LSA的摘要描述(每一条摘要可以惟一标识一条LSA)。为了保证在传输的过程中报文传输的可靠性,在DD报文的发送过程中需要确定双方的主从关系,作为Master的一方定义一个序列号Seq,每发送一个新的DD报文将Seq加一,作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的Seq。 - b.
DeviceB在收到DeviceA的DD报文后,将DeviceA的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。由于DeviceB的Router ID较大,所以在报文中DeviceB认为自己是Master,并且重新规定了序列号Seq=Y。 - c.
DeviceA收到报文后,同意了DeviceB为Master,并将DeviceB的邻居状态机改为Exchange。DeviceA使用DeviceB的序列号Seq=Y来发送新的DD报文,该报文开始正式地传送LSA的摘要。在报文中DeviceA将MS=0,说明自己是Slave。 - d.
DeviceB收到报文后,将DeviceA的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,此时DeviceB将报文的序列号改为Seq=Y+1。上述过程持续进行,DeviceA通过重复DeviceB的序列号来确认已收到DeviceB的报文。DeviceB通过将序列号Seq加1来确认已收到DeviceA的报文。当DeviceB发送最后一个DD报文时,在报文中写上M=0。
NBMA网络

- 建立邻居关系
- a.
DeviceB向DeviceA的一个状态为Down的接口发送Hello报文后,DeviceB的邻居状态机置为Attempt。此时,DeviceB认为自己是DR设备(DR=2.2.2.2),但不确定邻居是哪台设备(Neighbors Seen=0)。 - b.
DeviceA收到Hello报文后将邻居状态机置为Init,然后再回复一个Hello报文。此时,DeviceA同意DeviceB是DR设备(DR=2.2.2.2),并且在Neighbors Seen字段中填入邻居设备的Router ID(Neighbors Seen=2.2.2.2)。在NBMA网络中,两个接口状态是DR Other的设备之间将停留在此步骤
-
主/从关系协商、
DD报文交换过程同广播网络的邻接关系建立过程。 -
LSDB同步(LSA请求、LSA传输、LSA应答)过程同广播网络的邻接关系建立过程。
点到点/点到多点网络
与广播链路的过程相似,只是少了形成邻居关系判断这一步。
三、X网点大阵终成 少年联手小将再踏征途
草长莺飞,醉柳垂堤,一晃竟过去数月有余。
X网点,点将台。
网管于台上意气风发,心中却颇多感叹。他对台下众人道:“你们随本公南征北战,一路披荆斩棘,个个当有万夫莫敌之勇。然勇者有余,每每遇到X网点这样复杂的网点,却也是无计可施。”他顿了一顿,似是将多年沉积的郁结之气一扫而空:“天佑我三军!幸遇军师!”
“天佑我三军!幸遇军师!”
“天佑我三军!幸遇军师!”
白衣少年微微颔首,然后分别向网管和台下众将士盈盈一拜:
“臣本布衣,自耕野于草莽,苟全性命于乱世。然主公不以臣卑微,三顾臣于草庐之中。
恐有负主公知遇之恩,日日亦殚精竭虑图破X网点。时至今日,终有所成:
一为五行八阵图,定X网点OSPF路由运行机制。
二为巧计分四路,破不同类型网络。
三为奇才举能人,解广播链路/NBMA链路困局。
四为演七般变化,得十八样武器皆通众网元。
五为奏琴瑟和鸣,助邻居间互通LSA有无。”
接着他又朝网管再拜:“终得X网点大阵练成,微臣在此已无必要,特请辞军师,拜别主公。”
全军皆寂然。
“哈哈哈哈!”默然半晌,网管大笑三声,“天下无不散之筵席,军师智绝天下,本公早想到军师会有离开的一天。众将士听令!”随之,他睥睨下首:“本公在此立誓,有我网管一日在,军师变是我军中上宾。三军诸将,尽听其号令!”
“三军诸将!尽听号令!”
“三军诸将!尽听号令!”
翌日清晨。
“怎么,不与她道别吗?”白衣少年拍了拍白袍小将的肩膀。
“不了,见了徒增伤感罢了。”白袍小将定了半晌,然后摆了摆手,转身催马便走。
“大哥慢走!”明晃晃的人儿竟追了过来,见白袍小将慢慢停下,也随之停在他后边不远处。
那明晃晃的人儿仍穿着一身水绿衣裳,俏生生的立在那儿,满目含泪。白袍小将低下了头,心中一阵苦涩。
她见他那副模样,亦知他心中不舍,遂用袖口擦了擦泪水,然后展颜一笑道:“大哥是要去做大事的人,自当不应有所羁绊,我不会追随大哥的。但是总有不舍,所以想见大哥最后一面。”
“……嗯。”
“大哥,我们一起呆了这么久,还不知道你的名字呢。”
“呵呵,很俗气的一个名字,叫华为S系列交换机。”
“一点都不俗气,我觉着特好听。大哥?”
“嗯?”
“不要低着头,我希望你看着我,记着我的模样,永远不要忘记我!”
大哥抬首。
本文章转载,原文章为华为企业互动社区的叫交换机在江湖博主的文章,原文章链接:
https://forum.huawei.com/enterprise/zh/thread/580887605820669952
文章转载,侵权必删
这篇关于问鼎OSPF(3)-完善机制沐邻里,帅将兵民如父兄的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!