我是一个SDN交换机

2016-05-03 by muzi

我叫阿飞,是大柳树村的快递小哥。阿飞是我的外号,因为我送货很快。

我做着普通的工作,拿着普通的工资,买不起房子,一直单身。但我知道,只要努力,就能出人头地。在因特奈特国,识字的人并不是很多,幸亏我还读过小学,才能成为一名光荣的快递员。很多时候,大家更喜欢叫我交换机,因为我每天都像机器一样机械地交换着包裹,日复一日,年复一年。不过很多快递员也和我一样机械地交换包裹,但我知道:我和普通快递员不一样。

老一辈的快递员学的东西很多,包括传统的OSPF和IS-IS等语言。但是随着经济的发展,新业务不断诞生,对物流系统的挑战也越来越大,前辈们也开始应接不暇。为了应付这种挑战,物流系统的深度改革终于展开了。新生代的我们只需要学会OpenFlow语言基本就可以找到工作。学习压力是减轻不少,但是我们却需要快递主管来指挥物流的转发,才能更好的工作。

还记得我当快递员的第一天,那是6月19号,星期五,阳光明媚,室外温度28摄氏度。上班路上,空气中竟有种淡淡的清香,像极了我在华为学院读书时女同桌阿楚的发香。她学习不太好,只学会了二层转发的知识,毕业之后就杳无音信了。要是能再见一面就好了,就算见不到,写写信也挺好的。

第一次推开办公室的木门,指尖触到还未干透的露水,还有朝阳的温度。隐隐约约,还能闻到橡树的芳香。一切都是新的,房子是新的,快递窗口是新的,快递单是新的,工作手册是新的,我是新的,生活,也是新的。

走进房间之后,我拿起桌子上的工作手册,发现里面记录着快递主管的相关信息。原来我的快递主管是Ryu族人,在城里114.255.40大街2号办公大楼的6633房间工作。工作的第一件事情就是给主管发了一封hello信,告诉主管我学会的OpenFlow语言级别。我和主管通信的信件和包裹都是重要信息,所以一般需要由专门的快递员转发,但有时候也可以作为普通信件对待。

一转眼的功夫,主管就给我回复了一封Hello信。就这样,我们就约好了使用1.0版本的OpenFlow语言通信。没等我读完,又收到控制网络快递员铁柱大哥给我送来的信件。主管在信里让我发简历给他,好给我配置工作内容。

我赶紧从我的书包中拿出修改了250遍的简历放在features_reply信封中,然后发给了主管。我想:第一天上班,一定要好好表现,以后才能升职加薪,迎娶白富美,走上机生巅峰。脑海里不禁浮现我成为机生赢家的画面:那是一片充满生机的草地,我拉着美丽新娘的手,肉肉的,也暖暖的,但我却看不见她的脸。我慢慢靠近她,企图看清她的脸,似乎有些熟悉,又有些神秘。就在我马上要看清的时候,一阵敲门声把我从幻想中拉了回来。又是主管来的信。 这次是配置信。我按照配置信的内容配置完我的办公室之后,满意地坐在桌子前,傻笑着准备继续幻想。

谁知第一窗口马上就传进来一件快递,我迫不及待地查看了起来:是10.0.0.8发给10.0.0.28的快递。我翻开快递转发本子,却发现转发本子上空空荡荡,正如当时我的脑海一样,一片空白。

“怎么办?第一件快递就不会处理,太丢人了!怎么办!怎么办!”我着急地一直跺脚。突然我醒悟过来OpenFlow语言的规范里面提到过:如果遇到不知道怎么处理的快递就给快递主管发Packet_in信,附带上快递包裹。

“怎么这么笨!”,把Packet_in信和包裹送出去之后,我轻轻地抽着嘴巴自责。说时迟那时快,转眼间,快递主管的包裹又到了。那是一个Packet_out包裹,让我赶忙把数据包给进货窗口以外的所有发货窗口都发一份。虽然不知道为什么,但是我还是照做了。

很快的,我又收到了10.0.0.8发给10.0.0.28的另一件快递。因为上次没在记录怎么处理这类型的包裹,所以我只能再一次请快递主管帮忙了。眨眼的功夫,主管就给我回复了一个Flow_mod信,信里提到把10.0.0.8发给10.0.0.28的快递都统一送到3窗口。之后我的工作就简单了很多,不用再询问主管怎么处理这类包裹。

初来乍到,几乎所有快递都需要主管指导才能完成转发,所以我也忙得不可开交,分身乏术。幸运的是,我很快就记录了那些快递包裹的处理动作。所以只要不是新的包裹,我都可以自己处理。

还记得第一天下班的晚上,忙碌了一天的我又激动又难过。激动是因为我终于当上了一名光荣的快递员。在大柳树村,我可是学历最高的人,那些寄信的小姑娘都会对我笑,大妈们也会询问我有没有对象。难过是因为我几乎什么都要请教主管,自己什么都不会。

时间如白驹过隙,转眼间,我已经成为一个老司机。我学会了很多快递处理的规则,基本上都不需要请快递主管帮忙了。时光就这样静静地流淌,从我忙碌的指缝中穿过,流过堆积如山的包裹,一去不返。

在没有新货物要处理的时候,我每一天都在机械地把货物从这个窗口收进来,发到另一个窗口。偶尔转发规则过了有效时间,我就把它删了,重新请教主管大人。有时遇见了新的快递,我也会喜出望外,因为我可以和主管写信沟通,哪怕是工作上的事。有个人搭搭话,总比一个人孤独工作舒服一些。虽然经常会忙得忘记时间,但偶尔闲下来,也会觉得一个人有些寂(jí)寞。

除了寂寞以外,主管待人处事的温润如玉也是我喜欢和他写信的原因。他回信很快,而且每次看主管发来的信总有种莫名的熟悉,总感觉好像是阿楚写的,无论是字迹,还是语气。不知道阿楚现在过得怎么样,只会二层算法的她是不是找不到工作,还单身吗。

忙碌的生活就像墙上简陋的日历,除了日期不一样,其它好像都差不多。生活就这么不断地重复着,直到有一天......

那是一个星期五,印象中那天我最后一次看墙上的钟是下午17点47分,就快就下班了。屋外乌云密布,电闪雷鸣,眼看着暴风雨就要来了。当最后一丝日光终于被黑云吞噬,屋外开始狂风大作,雷雨交加。狂风像愤怒的狮子一般呼啸着冲向我的办公室,而那些如弹珠般的雨滴就像狮子的攻击一样,疯狂地敲击着我的玻璃窗,似乎想要冲进来摧毁一切。

忙碌的我可管不了太多,我依然认真地转发着快递。但就在这时,我发现有一个送往33:33:00:00:00:01地址的包裹不断从3窗口进来。按照转发手册的处理规则,我把它发往第5窗口。但转眼间,它又回来了,我只能再一次把它转发出去。我逐渐意识到它在不断重复出现,而且我发得越快,它回来得就越快,就像我在和一面墙在打排球一样。我不断往返与3窗口和5窗口之间,已经无暇顾及其它的快递。堆积在窗外的包裹被雨水打湿了,开始漂浮起来,被冲走了。渐渐的,我发现我开始上气不接下气。我突然意识到,如果继续这样不断转发下去的话,我一定会倒下的。但是我不能停止,转发快递是快递员的职责,是快递员的使命!

我依然坚持工作,纵使步履开始缓慢,呼吸也渐渐变得急促。我觉得有点晕,感觉整个房间也开始旋转,跳跃。我闭着眼,就像进入了一个奇幻的梦境。我觉得我开始飘了起来,昏昏欲睡的双眼看见椅子也飘了起来,桌子也飘了起来,还有那些转发本子和笔,都飘了起来。屋外还是狂风大作,狂风夹裹着沉重的雨点疯狂地敲击着玻璃窗,砸出无数的水花,让我看不清窗外的景象。突然,一声炸雷,把我从梦境之中拽出来。透过窗户,隐约中我只能看见窗外的树枝被劈断,断裂处开始着火。但很快,火就被雨水无情地浇灭了。

我还在转发那个从3端口进来的包裹,不知道为什么它到达的速度越来越快,快到我还没有发送它,另一个它又进来了。往返于3窗口和5窗口之间的我,脚底越来越轻,脑海里闪过许多儿时的画面:最后一次尿床、亲隔壁小红的脸、偷老爸的那根香烟......

我突然好像失聪了似的,听不到狂风的呼啸,也听不见雨水攻击窗户的声音,世界突然变得很安静,只剩下呼吸和心跳的声音,每一次都和我的脚步一样沉重。不知为何,脑海中闪现出阿楚的模样,还有她的发香。

“我不能倒下!” 我暗示自己,我知道这疯狂出现的包裹肯定有问题,肯定有问题!

“我还没有女朋友,我一直努力工作,我不能就这么简单的走了!”我一手扶着墙支撑着自己的身体,一手颤抖着托着快递,挣扎着把它推到第5窗口。

就在包裹马上要被送到窗口时,我滑倒了,身体重重地砸到地板上。但我已经听不到倒地的声音,只觉得房子里的光线又暗了一度,让我觉得有点困。我挣扎着在地板上蠕动,努力把货物推向第5出货口。我使尽了最后一丝力气,把快递顶了出去。就在这时,一阵强光伴随着一声巨响,我又被震到了地上。

我尝试站起来,但是四肢已经没有了感觉。寒风一次一次从我的脸上划过,带走仅剩的一丝温度。我感觉好冷,好冷!又是一次闪电,劈在很近的地方,我失去了知觉。

那是一个幽暗的森林,没有路,没有风,没有闪电,只有安静伫立着的树,也没有声音。茂密的树叶相互遮挡着,看不到一丝天空,幽暗中,我看见不远处的草丛里有一头美丽的鹿。身上的花纹和母亲最喜欢的衣裳花纹一样。它看着我,眼里都是温柔,就像母亲看我时的模样。我试图靠近,鹿却向森林深处走去,时不时还回头看我,好像在召唤我一样。我一步步靠近,却感觉不到青草的柔软,感觉不到树叶刮到手臂的疼痛,感受不到一丝痛苦。

突然一阵电流把我从梦境中惊醒!我以为我很痛,但是我没有。我还是那个我,充满活力,我被重启了。

暴风雨过去了。透过干净透亮的窗口,可以看到温暖的阳光洒在充满生机的大地上,一切都和以前一样,只是那个被雷劈断的树枝显得格外的刺眼。

我重新开始我的工作,联系我的快递主管Ryu大人,商量通信的语言版本,这次用的是OpenFlow1.3版本的语言。Ryu主管不仅给我发了配置信,还给我发了一个miss-table的处理规则,告诉我把匹配失败的数据包交给他。

使用OpenFlow1.3语言时,我需要使用三种类型的规则小本子,分别叫Flow Table, Group Table和Meter Table。以前我的Flow Table册子就只有一本,所有货物只要查一次就可以完成处理了。但现在不一样,现在我需要查多本Flow Table的本子,才能完成一个包裹的处理。我这里目前只有2本,听说最多可以支持255本。分成多种本子是因为这样可以做聚类,节省规则数目。Group Table本子里记录着很多的处理动作集合,大约有select, all, indirect和fast failover四种。Select类型的组表能做负载均衡,all可以做组播indirect可以做聚合,而fast failover能做容灾备份。Meter Table用于计量,虽然有这个规则本子,但是一半都不用,因为太麻烦了。

除了以上的差别以外,重启之后的我和之前并没有太大区别,每天都在办公室里忙着转发快递,忙着忙着也快忘记了那个黑色星期五发生的事情。后来听说那天是大风暴,好多个同事都和我一样疯狂地在转发一个数据包,到最后竟活活累死了7个快递小哥,惨绝人寰!还好我身体好才幸免于难。原因竟然只是因为一个新人把送货渠道连成了环路,然后把不知如何处理的数据包给泛洪了,结果就产生了包裹风暴!因为这起事故,主管办公室还换掉了一些员工。

风暴之后的工作和往常差不多,只不过主管大人每个周都会询问我们的业务状况,包括每个端口收发货物的详情,还包括客户之间的快递转发详情。听说收集这个是为了让我们压力均衡一些,不至于出现累死员工的事故。一切好像都比之前要好了,但写信的人好像换了,我不太喜欢他,不论是笔迹,还是语气。没有了当初那种青涩的感觉,多了一些严谨,多了一些犀利,听说写信的是个美丽的姑娘。

自从换了人之后,我再也没有收到要把包裹发送给所有窗口的要求了,每一次都是直接发送到指定窗口。其他的快递小哥都喜欢这个新来的人,把她当梦中情人,但我没有。我怀念之前的信,无论是字迹,还是语气,因为很像阿楚写的。但世界这么大,哪有这么巧的事情,是我自作多情罢了。

“她还好吗?”每个寂寞的夜晚,业务不忙的时候,我总会想起她,想象着她路过我的窗,正如当年读书的模样。但我并没有遇见她,我遇见的只是跳广场舞的大妈,还有那些艳俗的姑娘,她们只是找我取快递而已。

我做着普通的工作,拿着普通的工资,买不起房子,一直单身, 我坚信,只要努力,就能出人头地。但风暴之后的我面对那些转发规则信,却再也找不到那种当初的悸动。我觉得我失去了工作的热情,我只是在工作而已,麻木而机械地工作而已。

终于有一天,我却再也收不到主管给我的回信了。我不断地请求主管,但发出去的信却一封封石沉大海。听控制网络的铁柱说,主管的房间里面没人了。

无奈之下,我只能按照工作手册的指导,切换到了Standalone模式。在这个模式下,我再也不需要主管控制,我可以用二层MAC自学习算法来完成我的工作。二层算法是和阿楚同桌的时候学的,当时我教了她24遍她才会,但就算教会了,第二天她还是过来问我这个算法,好像永远学不会一样。但我知道,她只是假装不会,而我只是尽力在表演 。

生活翻开了新的篇章,相比之前的工作,工作简单多了,也无聊多了。再也没有人和我聊天,写信也没有。每个周我都让铁柱转发给Ryu主管一封信,但是始终有去无回,至今已经18年了。

我做着普通的工作,拿着普通的工资,买不起房子,一直单身。我还惦记着那个叫阿楚的姑娘,不知道现在她是什么模样,是否还有那种发香。

作者简介:

李呈,2014/09-至今,北京邮电大学信息与通信工程学院未来网络理论与应用实验室(FNL实验室)攻读硕士研究生。

个人博客:http://www.muzixing.com


Comments