大步踏入2023


2023 年了,新年快乐!为什么我会选择“大步踏入”一词呢?三年来,从 2020 年的齐心协力抗疫,到 2021 年流动秩序基本有点恢复,再到 2022 年的全员核酸、到处封城。在三年抗疫落下帷幕之后,一些褪色的东西都开始重新上色,我也想有一个大气的新年新开始,所以要大步走进 2023。

在年初,我曾希望 2022 不是 2020 too,确实不是,这一年是一个更加刺激的 2020 plus。上海从 3 月初开始就已经是东打一枪西放一炮的了,我也被三两天地封了几次。紧接着 4 月、5 月又整整封了两个月,这两个月都只能看着窗外的树越来越绿、越来越茂盛,好在生活物资基本还算充足,可以静下心来去思考一些问题、做一些事情。窗外的鸽子们也是一天天地长大,解封前已经开始编队高飞了,在鸽子笼里的似乎反而是我们。

有人说 2022 年就是做了一年核酸,并在最后阳了。在 2022 年 3 月之前的两年,我做过的核酸次数一只手都够数。上海封城期间,我还真仔细统计过自己哪天做了核酸:3、4、5 月一共是 42 次。其他几个月份粗略估计了一下,直到漂移掉头全面放开之前,2022年一共做了大概 120 次核酸。不过没能顶住,我在 12 月 22 日有了症状,快筛显示阳性。得病的滋味挺不好受的,这一年最后几天算是痛苦地过去了,新的一年还是得继续做好自己的保护工作,争取不再得。

从小学开始,长达 16 年的求学路在 2022 年划上了句号,正式解锁了我的学士学位、本科学历,从大学毕业了。因为疫情原因没能回学校参与毕业典礼,没能正式给自己的学生生涯画个句号,还是挺可惜的。只能在 7 月回温州拿各证书文件、和大学室友吃吃饭告个别。也有考虑过要不要进一步读研究生,毕竟本身对学术研究还是很感兴趣的,不过考虑到种种原因和自身的各项条件,觉得就这样进入应用领域也挺好。自己平时瞎折腾折腾,搞点小“研究”,和 foobar 院同事吹吹水,开心就好了。

2022 年的工作主要是在专有软件上,包括主业和兼职,所以能拿出来说的不是很多。尽管如此,我还是做了不少有意义的事情的。其中听起来最厉害的莫过于成为了 Linux 内核的贡献者,虽然只是碰巧发现了个“错别字”一般的小 bug 并顺手修了而已。还发现了 Vue 3 的 Vue 2 兼容层的一个 bug,编写了一个 PR 并被合并了。除此之外似乎就没有什么特别值得提点的公开贡献了。

今年自己的网络也能进一步“自主可控”了,在年末的时候我和万呆呆找 IEEE 一人买了一段 12 位大小的 MAC-S 地址块,从此可以给自己生产和使用的设备编号。这是我们多年前就盯上的东西,只是因为真的很贵的价格一直没买。今年意外发现它的价格持续增长,加上万呆呆的硬件路由器实验也确实需要唯一地址,因此终于下定决心购买了。另外也感谢万呆呆同志的抬举,让我能有机会为他的课改事业尽一份力,比如在同学们自己写的路由器验收测试时提供了经由 HKIX 出网的线路。

办网方面依旧以兼职的形式在成长,毕竟自己的小破 AS209306 实在是难有什么高级的设计和复杂的环境,日常上网没遇到什么问题也不太会去调整。感谢某朋友对我的一贯支持,愿意请我这个非正规军为他们公司的跨国大大网络进行一些小小的设计、配置和调整。

说到网络,2023 年也是我赛博 20 岁(用老套的说法叫网龄)的一年,不知不觉互联网已经陪伴我经过了 20 个春秋了,万维网也不过 30 年历史,今年大概也会给自己设计一些庆祝内容吧。回想起小时候的互联网,虽然不如现在复杂,但它给一个 3 岁小朋友展开了一副巨大的多彩画卷,使其有了别的小朋友不曾有的见识,也使其一步步地走上了计算机这条道路直到现在。这里要感谢开明的父母,没有视这些新兴事物为洪水猛兽,反而积极引导、支持着我的兴趣。

因为租住地方的限制,BG5DTR 在今年也没怎么开台。但在春节开台的时候,我仅用 5W 功率和一条我也不知道多长的长线天线成功和巴西的一个电台完成了 QSO。由于疫情的原因,国内流动都是一件非常奢侈的事情,2022 年连周边的杭州等地都没能去(太可惜了,新的一年一定要玩起来!)。电波却能乘着这点功率,穿越一万九千公里到达南美洲的异国他乡,太神奇了。

刚新冠康复,体力之类的还没能跟上,跨完年就睡觉了。连彩虹的跨年音乐会门票都在前两天·忍痛割爱卖给了其他听众,不过看买家的朋友圈要溢出屏幕的幸福,还是觉得很开心的。加之能透过她的朋友圈看到现场,四舍五入也算是去过了。往年的总结文章都是在跨完年后一点多(北京时间)写完的,今年也因故调整到了一点多(地球上最晚的一个时区,AoE),毕竟休息还是非常重要的,还想多活两年,多看看这个世界呢。

接下来就是报菜名的环节了:**(惯例隐去)、女儿、妹妹、晶晶,Gogo、kkk、laosb、清粥、点心、twz 等朋友,cyy、万呆呆、麻田哥哥、猴哥、杰哥、曹老师、bml、dd、吴小板、贺神、樵老师等 foobar 院同事,洛谷的同事们,wyy、林儿、大学室友等同学,Rongrong、蚊子、摸鱼哥、大a、托尼、赫兹等群友,感谢这些以及更多的在过去的一年陪伴我的家人朋友们,你们过去的一年同我一起玩、一起说了不少话,给我带来了不少快乐,非常感谢有你们,也希望新的一年能继续走。


就当是毕设致谢


明天就要拍毕业照了,后天就要毕业典礼了,我的本科学习就要落幕了。由于上海疫情我无法回校,前两天老师还专门说让我别回来,可惜无法参与这些活动了。虽然对学校的感情没那么深厚,但是想到没能给过去了的年轻的四年提供一个有仪式感的结束,不由得感到惋惜。我的毕业季留下了蛮多的遗憾,除了毕业照和毕业典礼之外,还有我的毕设致谢。“致谢”可谓是毕业论文中唯一能自己随心所欲写的部分,只不过我的毕业设计和论文是用大学生创新项目成果替代的,因此省去了毕业论文,也就没机会写“致谢”了。这也是这篇文章标题的由来,把这篇简单回顾本科四年的文章也当作致谢了。

// 点开我,里面还有许多内容!


壬寅虎年的新年红包


马上就是新的一年了,虎年的解谜红包来了!快快点击参与吧→ https://hb.lohu.info

下面是一些你应该知道的事情:

  1. 这是一个解谜游戏,利用你的知识(现学也是足够的啦)解决所有题目,获得红包口令,口令可进入支付宝领取红包。
  2. 你应该需要电脑才能愉快玩耍。
  3. 你拿到的所有答案都是八位数字,为了方便控制开始和结束时间,在支付宝领取时,前面需要加上一个“虎”字。如解题得到 20220202,那么最后的红包口令是“虎20220202”。
  4. 如果你是和别人一起完成的,希望你们只领取一次,然后再分。
  5. 本次活动时间从北京时间 2022 年 1 月 31 日 20 时开始,持续 24 个小时。如果红包被提前领完不会补发。
  6. 共设 3 个红包,每个红包之间相互独立,也就是说你不需要解决所有问题就能拿到一部分红包。所有线索均可在本页面中找到。
  7. 3 个红包数额分别为:总额 68 人民币元,分 58 个;总额 58 人民币元,分 32 个;总额 58 人民币元,分 28 个。红包领取规则均为“拼手气红包”。
  8. 游戏结束后也将在当前页面上放出题解。如有疑问也请通过博客的“关于我”页面上所述的联系方式联系。
  9. 最后祝大家,新年快乐!

活动结束后将在下面更新题解。已更新,请看下方的题解。

往期回顾

// 点开我,里面还有许多内容!


2022 不会是 2020 too


那么,时间是……2022年的1月1日,0点11分。这么快就迎来了新的一年,2021年的跨年仿佛没过去多久,一下子就又是一年。和几个朋友发完祝福以后,开始提笔(提键盘?)写下这些字。有人说2022年用英语来读是“2020 too”,不过我不觉得。我希望一切都会是新的开始,新的起点。

过去的2021似乎也是平平淡淡的一年,没有什么特别重要的事情,不太知道该从哪里开始下笔。那么就从学习开始好了。毕竟就在刚刚过去的12月30日,我回学校进行了毕业设计替代的答辩,第二天也就出了结果,是“良好”(这批最高也只有良好)。这个替代项目是之前的国家级大创项目,是顺利结题了的,所以昨天答辩也没有啥问题,我觉得我的表现还是挺好的。那么接下来就是做一下外文翻译和文献综述就可以顺利毕业啦。上半年是大三下半学期,没啥特别的,就是普通的上课影响学习时间;下半学期则是已经没课了,所以我11月(没错我从7月放假在家摸到11月)跑到了上海,开启了沪漂的社畜生活。

经济上的话,今年发生了一件大事,就是2月1日信用卡被盗刷了时汇折合人民币四千六百多的英镑。喜提了人生第一次报警,也给为了偶尔的大额付费打开限额而忘了关回去的自己提了个醒。最后花了几个月的时间,收单行那边争议成功了,也就不用自己出这笔钱了。其他经济方面的事的话,反正天上没有掉钱,我也没有中大奖,要花钱的地方还是不少。

今年的各种兴趣上,比如网络,基本没大的动作,反正还是天天用自己的ASN实名上网呗。不过对于Juniper及其自动化脚本的配置、编写与使用是越来越熟练了,下半年的时候还和朋友从美国淘了廉价的NFX250回来替换SRX220(结果运费比机器本体还贵不少)。年末的时候还要感谢一个朋友支持,让我作为外援参与了他们的网络NOC工作,摸到了一些有趣的网络,也积累了一些奇妙的经验。

今年技术上没啥长进,编程语言只多会了一个DSL:Nix。因为之前了解过一点点,加上曹老师有段时间天天传教,正好又打算改进一下洛谷评测机(Nix确实比较适合评测的场景),于是就钻研并针对情景写了一些Nix。写完后咕了好几个月,最后在11月NOIP结束后上线了使用Nix管理环境的评测机。今年还亲手关停了一个网站:OI in Hand,作为天海目前唯一一个较大的公开项目,它其实在2018年就已经没有继续开发、在两三年前就已经差不多失去了继续存在的意义。但是它从2013年开始带给我、cyy等人的开发经历使我们受益匪浅,我当时倾注了中学时代大量的心血于其上,现在回想起来,还是很开心的。

今年也还是继续参与了FRC,在疫情的大环境下,正赛还是没能比,但是杭州的RCC还是有的。我还是跟着梁博士的队一起玩,但是已经不再年轻,失去了肝机器的精力,只能打打散工,帮梁博士处理一些事情以及感受赛场上年轻的气氛。另外,今年我抽空考取了业余无线电的B类照,也就是可以上短波了。在考之前一直用着今年从毓彦手中收来的IC-705,蹲在50MHz的波段和对岸的太君们通联。

8月底9月初,为了办一些天海的事情,我去了长沙。在长沙我第一次见到了麻田哥哥,刚好那几天他家里又特热闹,因此我也赶巧认识了麻田哥哥的一个姐姐及其他几个亲戚,都是很好的人。这次出行差不多是2020年疫情爆发以来第一次出门游玩(姑且算是游玩吧),在办事之外空闲的日子里也简单玩了一下长沙,走了走毛爷爷写下《沁园春·长沙》的橘子洲,喝了只在朋友的空间里见过的茶颜悦色,度过了非常快乐的一周。

去了上海以后,我就有机会去听各种音乐会了,不然专门为了听音乐会跑上海还是挺贵的。虽然我一直在期待这一点,但是年末的两个月因为洛谷、毕设、答辩以及其它项目的各种繁琐事情未能抽出时间,不过来日方长,在2022年去听。本来还买了彩虹合唱跨年音乐会的门票,不过因为毕设替代答辩等事情跨年不在上海,就在闲鱼上出掉了。达成了年轻人第一次在闲鱼卖东西的成就。

一边慢慢回想一边写,一下子就是一点半了。写到最后,我要感谢一下过去的一年陪伴我的家人朋友们,非常感谢有你们,也希望新的一年能继续走。接下来就是报菜名的环节了:**(和往年一样不能公布)、女儿、妹妹、**(暂不想透露)、lxm,Gogo、kkk、ltt、laosb、点心、twz等朋友,cyy、万呆呆、麻田哥哥、Jack、猴哥、贺神、dd、beru、吴小板、樵老师、曹老师等foobar院同事,洛谷的同事们,wyy、林儿等同学(排名基本不分先后),你们和我一起玩、说了不少话,给我带来了不少快乐,谢谢你们。


IPv6真的每个地址都能用吗


TL;DR: IPv6 子网内第一个地址是任播地址,没有需求,最好别用。

在网上冲浪的时候,经常看到过类似“IPv6 取消了子网号和广播号,所有地址都能用”这样的言论。也经常看到有人给自己的主机或路由器配上形如 2001:db8:1:2:: 的地址。那么,IPv6 真的每个地址都能用吗?

首先我们先限制一下讨论的范围,要去除各种特殊的地址,例如未指定地址 ::/128、本地回环地址 ::1/128、链路本地地址 fe80::/10 还有多播地址 ff00::/8 等,因为这些地址大家都知道有特定含义、不能乱用。这里说的都是一个普通的单播地址,即全球单播地址(Global Unicast Address,目前是 2000::/3)或者唯一本地地址(Unique Local Address,fc00::/7)范围内的子网的地址。

接着用最近流行的句式讲结论:能,但不是完全能

诚然,IPv6 中没有 IPv4 中子网的第一个地址是网络号不能用、最后一个地址是广播号不能用的规定。但在规定 IPv6 地址结构的 RFC 4291 中,介绍了一种特别的任播地址——子网路由器任播地址(Subnet-Router Anycast Address) 。这个地址似乎一直被人忽略,也很少有人提,所以知道的人并不多。这个地址就是子网的第一个地址,例如 2001:db8:2:33::/64 这个子网(范围为 2001:db8:2:33::2001:db8:2:33:ffff:ffff:ffff:ffff)中的子网路由器任播地址就是 2001:db8:2:33::2001:db8:3:4:5:6:7:8/125 这个子网(范围为 2001:db8:3:4:5:6:7:82001:db8:3:4:5:6:7:f)中的子网路由器任播地址就是 2001:db8:3:4:5:6:7:8

如果了解任播(anycast)的概念应该知道,任播是一组主机共享一个地址。对于一个分组,只有这一组主机中的一台会收到,然后做出一定的响应。子网路由器任播地址就是给需要和子网内任意一台(不是指定的一个,也不是所有的)路由器通讯这种场景所保留的。因此这个地址也是有特殊含义的,应当在特定情况下使用,而不是随意使用。

目前很多系统都支持子网路由器任播地址,例如 Linux。Linux 会在 IPv6 转发处于开启状态的时候,自动绑定上机器目前所有子网的子网路由器任播地址。虽然只有路由器才会转发 IPv6 报文,但是有些时候(尤其是我们这些网络技术爱好者),子网内某些机子很可能会打开它,例如需要给 Docker 配上 IPv6 支持的时候。这样的情况下,如果你想通过子网内的第一个地址访问路由器,就有可能会变成访问了你这台 Docker 主机。当然,你可以在网络设备(如交换机)上设置规则来限制除了你指定的路由器之外的主机响应子网路由器任播地址的邻居请求(Neighbor Solicitation)信息,但是你不应该在完全不知道这个知识去使用子网内的第一个地址。

另外,因为/127 大小的子网只有 2 个、/128 大小的子网只有 1 个地址。因此子网路由器任播地址不会在这两个尺寸的子网内起作用。说到这个也是很有趣的:最初,RFC 3627 以这个理由不让大家在路由器之间使用/127 大小的子网,因为这样的子网只有两个地址,第一个地址同时属于两台路由器,那就只有一个地址提供给单独一个路由器了。显然/127 大小的子网做路由器间互联是最合适的,因为方便计算且只有两个地址。于是后来 RFC 6164 要求子网路由器任播地址不能作用在/127 大小的子网中,这样就可以在路由器之间用/127 大小的子网互联了。原来的 RFC 3627 也在第二年被 RFC 6547 废除了。