经过几次推迟,今天下午两点半,本年度《计算机组成原理》与《计算机网络原理》联合硬件路由器实验最终报告会暨组间互联互通测试会终于开始。由于会议日期较晚,部分老师和同学已经回家,因此今年的会议以线上线下融合的方式进行。
现场出席本次会议的有《计算机网络原理》课程两位助教、参加今年硬件路由器实验的两组共五位同学(另有一位同学线上参加)、去年参加硬件路由器实验的两位往届同学(其中一位也是课程助教)。线上出席本次会议的有《计算机网络原理》教师全老师、课程一位助教、参加今年硬件路由器实验的一位同学(其余同学现场参加)、2021年参加硬件路由器实验的一位往届同学以及社会各界关心本实验的人士。此前的1月21日,课程团队已经向今年的同学们每人赠送了最新版精美纪念印刷线路板(印有“仨月造台路由器,半年学通互联网”口号)一片,并进行了集体合影。
会上,两组同学分别对本组硬件路由器实验完成情况、设计细节以及分工情况进行了最终报告,并进行了互评和交流。具体而言,两组同学都受去年的往届同学蛊惑,实现了Tree Bitmap算法。第一组采用了与该往届同学类似的流水线结构,并最终出色地存下了今年的IPv6互联网全网路由表,共199,441条。此外,他们还开创性地在本实验中实现了ICMPv6 Router Advertisement(RA)消息的发送,使得接入路由器的主机能够自动地通过SLAAC配置地址并获得默认路由。但是,由于我一开始的配置疏忽,我作为网关的路由器居然也接收了他们的路由器发送的RA,并添加了默认路由。根据实际测试,这条默认路由的优先级甚至比我手动添加的通过Soha的隧道接入互联网的静态默认路由的优先级更高,相当于他们的路由器把我的默认路由劫持走了。然而,他们的路由器会通过RIPng路由协议获得我向实验网络发布的默认路由,这最终导致两边都认为默认路由的下一跳是对方,并最终形成了一个路由环路,主机向外发送的IP分组会在这两个路由器之间蹦跶,直到hop limit减为零才寿终正寝,谁都上不了网。我禁止从连接了实验网络的接口接收RA消息之后,该问题得以解决。第二组则创新性地采用了纯流水的结构来实现上述算法,每一级流水线都没有状态机,不会卡顿。理论上,如果时序够好,这一组的设计能够支持4x10G小包线速,因此,我大力支持这样的设计。虽然最后这组遇到了一些我也没有头绪的bug,但我依然非常鼓励他们这样的尝试。
同学报告后,现场参会人员继续开展了组间互联互通测试。测试结果显示,两组同学的五台路由器组成的环网能够基本联通,接入我的网关路由器后也能够上网。为了测试上网性能,我指使同学们从TUNA源上大量下载CentOS各版本的ISO镜像,并最终把同学的C盘填满了。
至此,全部会议结束。
这学期是我最后一次担任《计算机网络原理》的助教了。一个学期以来,除了日常的随堂跟课、批改作业、软件实验改革(OSPF)、答疑、出题、监考、阅卷,我最关注的还是硬件路由器实验。为了在期末留下珍贵影像资料,我还临时斥巨资购买了高级光学设备一台,因为这些宝贵的记忆是无价的,这点钱也不算什么了。这学期,在同学们的共同努力下,在Soha的强力支撑下,我们继续实现了用自己造的CPU运行自己造的RIPng路由协议软件,并用自己造的纯IPv6路由器接入全球IPv6互联网,成为全球IPv6互联网的一部分,面临真实互联网的威胁,也对真实互联网造成威胁。现在,硬件路由器实验的最终验收完成了,我也就正式退休啦!
希望未来的助教们(也都是我曾经的学生)把本课程和本实验越办越好。同学们,我们IPv6互联网上再见!
——提供best effort助教服务的twd2
twd2.net, twd2.org, twd2.me(应用层标识符:域名)
AS24239, AS209300(网络层编号资源:AS号)
2a0e:aa06:490::/44(网络层编号资源:IPv6地址前缀)
8C-1F-64-69-10-00 ~ F-FF(数据链路层编号资源:MAC地址段)
相关评论1:Soha比某国家重大基础设施(FITI)好用。
相关评论2:有同学问怎么对真实互联网造成威胁,我的回答是:源地址不验证、路由乱劫持、损坏包乱转发、软件跑飞狂发包、巨大报文乱反射、垃圾邮件随便发。
发表评论