Cloudflare 返回的DNS结果

Cloudflare 返回的DNS结果

最近查一个客户遇到的 SIP 呼叫问题,发现在检查 DNS 记录时有问题,没有正确获取 DNS 记录。切换了几个 DNS 服务器测试,只有 Cloudflare DNS 服务器(1.1.1.x 系列) 返回的DNS记录会触发问题。

这并不是说 Cloudflare 的DNS记录有错误,而是我们自己实现的 DNS 库没有考虑到该记录的不同寻常之处。Cloudflare 的返回结果确实有点与众不同。

下图是Google DNS 以及 Ali DNS 返回的DNS结果,请注意其中的 Name 字段的内容(0xC0 0x0C)

Google DNS 结果
Google / Ali DNS 返回结果

很明显,这种DNS结果采用了 compress 方式,通过 offset 来获取真正的Name。图中的 0x0C 实际就是偏移量,指向了包中的另一处地址。Compress 方式最直接的好处就是节省了包大小。

而 Cloudflare 的 DNS 结果如下图所示,直接将域名包含在 Name 中,以 0x03 标注开始,以 0x00 表示字符串结束。不再需要偏移指向其他地址。

Cloudflare 的 DNS 记录
Cloudflare DNS 返回的结果

这种方法的好处是够直接,不再需要跳转获取真实的域名信息。当然坏处是增加了数据包的大小。

我们测试了网络上大部分的 DNS 服务器,目前仅发现 Cloudflare 采取了这种方式,其他服务器都是采用 compress 方式。

站在“人”的体验角度,似乎 Cloudflare 更合理一些。但是要注意,compress 方式更符合计算机的处理,毕竟前面的 Queries 部分已经解析过 Name 了,没必要再解析一次。另一方面,直接 offset 寻址,也远远快于再一次通过判断0x00来解析Name 字符串。

因此我个人认为 Cloudflare 的处理方式,即拖慢了速度,又增加了数据包消耗。当然,以目前计算机的处理能力以及网络速度,这些都是浮云。我们的解决方式也是淡定地接受这个结果,并修改 DNS 库进行适配即可。

在本次查问题中,测试了网上公布的香港 DNS 服务器,全部拒绝了来自大陆 IP 地址的 DNS 请求,真有意思。

做馒头、肉包子

做馒头、肉包子

包含两个部分:(1)和面 (2)做肉馅。其中,对做馒头而言,只需要关注“和面”这部分即可。

与传统的中餐描述方式类似,没有精确描述各种食材的用量,只会描述诸如“一勺”、“少许”等模糊字眼,默认是我自己家的普通勺子,或者我自己认为的“少许”,毕竟佛曰“不可说”。

和面(做馒头)

(1) 40度左右的温水一小碗,加5克酵母,一勺白糖,发酵大约10分钟。发酵成功时,小碗内应该明显看到发酵起来的泡沫。

(2)面粉8大勺(可能有500克或者更多),少量、多次倒入上述发酵水,用筷子不停搅拌面粉。如果喜欢的话,此时也可以加入新鲜牛奶,尤其是喜欢奶香馒头的话。最终面粉应该搅拌成絮状、小块状。

(3)揉面大约十分钟。表面光滑、不粘手即可。

(4)盖保鲜膜,密封发酵到两倍大小,时间大约是一个半小时,或者两个小时。

(5)发酵后重新揉面排气,大约10~20分钟,其中分批加入少许干面粉,这样的口味会更有嚼劲。

(6)切成小块,放入锅中(铺湿纱布干纱布),盖盖子,二次发酵大约20分钟。

(7)冷水上锅,大火15分钟(如果是肉包,则是20分钟),关火焖3~5分钟后再揭盖。

肉馅

(1)制姜葱水: 大葱一段,切丝;生姜一块,去皮切丝;少许花椒;放入小碗,倒入开水浸泡,直到开水变凉,去除这些材料,只留姜葱水即可。

(2)两根小葱,洗净后切葱花,备用。

(3)五花肉(或者前腿肉)切小块,搅碎成肉馅。

(4)肉馅入盆,加入上述葱花、加入一个鸡蛋(可以有蛋黄)、适量生抽蚝油五香粉(或者十三香)、胡椒粉,顺时钟方向搅拌。中间分批次加入少许生姜水(如果是饺子馅,不用加水),注意始终同一个方向搅拌。

(5)最后加入适量香油,继续顺时钟方向搅拌。肉馅略显粘稠即可。

(7) 如果希望吃白菜猪肉馅,则按照1:1比例配置白菜(比如500克猪肉,加500克白菜),白菜之前应该切碎,放适量盐,然后保鲜膜腌制大约10分钟,用纱布包住白菜碎,将水挤掉。将去水后的白菜馅和肉馅混合,同样顺时钟方向搅拌即可。

升级 windows 10

升级 windows 10

目前日常使用的是一台老旧的Thinkpad T430,运行 windows 7 (专业版),以前也收到过windows提示升级 win10。一来没有时间, 二来一直工作很好, 因此完全没有升级的想法。

这个春节由于流行肺炎的原因,基本上就呆在家里了,极度无聊。想到windows 7已经结束生命周期,上网搜了搜,似乎微软仍然保留了免费升级的通道, 干脆就升级windows 10算了 。

从微软的网站下载 media creation tool,选择升级现有电脑,过程非常简单顺滑。个人配置也完全平滑的升级到新的系统,基本上除了点击next,就没什么可以做了。不得不说, 在工程兼容性方面,微软简直做到了极致!

升级后的win10桌面
windows 10 桌面

平时常用的软件都没有问题,非常顺利。新系统与win7有些差异,略感怪异,尤其是那个磁贴(谁设计这货的?),实在太不好用,而且老是出意外,希望以后能逐步适应。

2020-01-28更新: 不知道是什么原因, 笔记本的风扇一直转,时大时小,以前windows 7时没有这种现象。看了任务管理器,CPU和内存占用都非常小,真是奇怪。

推荐一个lua的小插件

推荐一个lua的小插件

以前一直用Geany编辑器编写Lua程序。其实这个工具很垃圾,只是别的工具更垃圾。要求也不高,无非就是变量、函数等跳转、列表,工程范围内查找,基本的编辑功能即可,不要求调试功能。

平时写脚本一般都是采用visual studio code,很棒的工具,就简单编辑功能而言,vsc 做得相当好。因此也试图尝试 vsc 的插件,看看能否满足上述编写Lua脚本的要求。

看到 vsc 推荐作者sumneko 的插件,名字居然就叫 Lua,如下图所示。简单试了一下,感觉不错,符合上述各项需求,值得推荐。

Lua 插件
Lua 插件
2019汽车年审

2019汽车年审

去年的流程基本类似,不过现在不需要上交警的网站预约,直接在“深圳交警”的微信公众号里就可以办理预约。

在深圳交警的微信公众号里,也可以直接查询和办理交通违章, 这个要赞一下。以前要专门跑一趟交警中心以及银行,现在轻松多了。当然,最轻松还是不要违章,那就什么事都没有。

预约时需要选择检测点,这个需要特别注意一下。比如我以往常去的检测点关门了,就要注意选一个新的检测点。好在检测点非常多,南山区、宝安区等都有很多,挑一个地理比较近的就可以。现在各检测点的服务态度都很好,毕竟很多工作都自动化了,大家都轻松愉悦。

今年的费用是290元,年年都涨啊!这个似乎只能向交管部门抱怨,检测点也只是按规矩办事。

提交资料包括:(1)身份证 (2)行驶证。我的保险是人保,没有要求提交保单。现场有些人被要求提交保单进行拍摄,具体情况也没有去做详细了解, 建议带上保单副本或者电子档以防万一。

现在检测流程非常舒服:将交通三脚架放副驾驶位置、 缴费、 然后将车钥匙给工作人员,就没有其他操作了,在检测中心的休息室等着检测完即可。

同样,只有一个年审标,没有单独的绿标。

快手菜:牛肉

快手菜:牛肉

内容主要来自微博视频:小颖美食

主料:牛肉,也就是一大块后腿牛肉。

辅料:辣椒、土豆、大蒜瓣。

调味料:生抽、食用油、耗油、黄豆酱、淀粉、胡椒粉。

(1)牛肉逆纹路切成薄片;

(2)一勺淀粉、适量清水,搅均匀,倒入牛肉中,再加入一勺生抽、适量食用油,手抓均匀,腌制20分钟

(3)适量青、红辣椒切圈,大蒜瓣切成末;土豆切成小块,泡水5分钟后,控干水分。

(4)锅中油烧热,倒入土豆,先炸一下,表面微黄即可,倒入盘中备用。

(5)牛肉腌制好后,加入黄豆酱、耗油、胡椒粉,搅拌均匀;然后一片片铺在土豆上面。

(6)水提前烧开,然后将土豆牛肉盘放入锅中,隔水蒸,大火10分钟

(7)另一锅中热油,炒香辣椒大蒜末,加入生抽调味,翻炒均匀,然后加入一碗水淀粉,煮到粘稠。

(8)牛肉蒸好后,将芡汁淋在牛肉上即可。

一道菜:鸡腿

一道菜:鸡腿

在网上看到的,略微作了点改良,适合自己就好,快乐做鸡!

主料:大鸡腿两个(注意,是大鸡腿)。

辅料:洋葱(一个,切片)、辣椒、生姜(四、五片即可)、大葱(一根)、大蒜瓣(四、五瓣即可,切片)、盐(?似乎不需要强调)、芝麻香油、蚝油、生抽。

(1)大鸡腿在40度的水中浸泡,约30分钟,然后清水洗净二、三遍,去掉鸡腿的血水。

(2)用刀背敲打鸡腿,让肉质松软一些,然后放入大碗中,撒一勺盐、一勺芝麻香油,手抓大约2~3分钟,让鸡腿和佐料充分混合,然后腌制10分钟。

(3)鸡腿放盘中隔水蒸,水开后,中火或者小火再继续蒸大约25分钟。

(4)稍放凉鸡腿,然后手撕成小鸡块。

(5)另起一锅,多放油,放入辅料(洋葱、辣椒、生姜、大葱),翻炒。待洋葱、大葱等基本变色后,倒入小鸡块、蚝油和生抽(事先可先调制好),稍微炒炒即可出锅了。

升级php7

升级php7

这是一个升级的季节……

前两天刚升级完Git,感觉可以稍微轻松一下。今天收到email,WordPress 升级了! 升级也就算了,关键是进入管理界面时,扑面而来一个提示:“WordPress has detected that your site is running on an insecure version of PHP” ,这意思是:您的php版本太老了,该升级了!

查了一下当前Debian 9默认的php版本:V5.6.40,似乎不算太老啊。顺手又查了一下该系统中最新的php版本,已经是V7.0.33版本。V7的版本应该足够WordPress 使用,于是决定升级php来解决这个提示问题。

PHP毕竟是世界上最好的语言,各种插件都已经相应升级好了,都有PHP7对应的版本,因此事情就简单了,使用以下命令,直接安装即可:

sudo apt install libapache2-mod-php7.0 php7.0-fpm php7.0-gd php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-json php7.0-mysql php7.0-opcache php7.0-readline php7.0-xml php7.0-xmlrpc php7.0-zip php7.0-bz2 php-imagick

升级完php及apache的模块后,需要设置 Apache 使用最新的php7版本。也很简单,重新设置相应的模块并重启 Apache 即可:

sudo a2dismod php5
sudo a2enmod php7.0
sudo a2enmod proxy_fcgi
sudo a2enconf php7.0-fpm
sudo systemctl restart apache2