kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

MAC地址表项的老化时间及老化机制

https://support.huawei.com/enterprise/zh/doc/EDOC1100277049/e5f2249c

MAC地址表项的老化时间默认5分钟,命令mac-address aging-time可以修改MAC地址的老化时间。

MAC地址的老化时间更新机制:某条数据流进入端口后,MAC地址进行动态学习。如果该数据流一直存在,则此MAC地址老化时间会一直刷新,不会进行老化。当数据流停止,MAC地址经过老化时间后自动老化。

一个存在10年的tcp建链失败的问题

https://blog.csdn.net/mrpre/article/details/152134117

2015年的patch 5e0724d027f0 将request_sock从listen队列移到ehash队列。正常情况下,SYN包到达后创建request_sock并插入ehash,三次握手ACK到来时在ehash中查找并替换为full socket。问题在于替换过程先删除request_sock再插入新socket,中间存在间隙,并发场景下其他连接可能误入此空隙,导致建链失败。

https://github.com/torvalds/linux/commit/1532ed0d0753c83e72595f785f82b48c28bbe5dc

1
2
3
4
5
6
7
8
9
10
The call trace map is drawn as follows:
   CPU 0                           CPU 1
   -----                           -----
				inet_ehash_insert()
                                spin_lock()
                                sk_nulls_del_node_init_rcu(osk)
__inet_lookup_established()
	(lookup failed)
                                __sk_nulls_add_node_rcu(sk, list)
                                spin_unlock()

不修也无所谓, 因为修了, 可能查到的是osk, 最终也不会被处理.

NAME记录与MX/TXT记录冲突

https://help.laoxuehost.com/domain-name/cname-record-conflicts-with-mx-and-txt-record.html

在部署域名邮箱的时候都会发现,DNS 服务商会提示根域名 MX、TXT 记录和 CNAME 记录有冲突,不能共存。今天,我就来介绍一下这种情况为什么会发生,且如何完美解决。

CNAME 和 MX/TXT 记录冲突的成因

CNAME 记录和 MX、TXT 记录冲突的根本原因在于 CNAME (Canonical NAME) 记录的特殊性。根据 RFC 1034 的规定,根域名不能设置 CNAME 记录,这是由 DNS 服务本身的固有限制决定的。或许你可以在一些 DNS 服务商那里为根域名添加 CNAME 记录,但这些都是不符合 DNS 规范的。如果要将根域名设置为另一个域名的别名,需要设置 ALIAS 记录。在下一节我将具体介绍 ALIAS 记录。

如果根域名设置了 CNAME 记录,会和其他所有的记录相冲突,而最常见的冲突情形就是 MX 记录。对于同一个根域名,CNAME 记录和 A 记录、NS 记录、SOA 记录、TXT 记录等都会冲突,不过这些情形并不常见,所以一般不会造成太大的问题。

我们以同时在根域名设置 CNAME 记录和 MX 记录为例。向该域名的域名邮箱发信且使用 DNS 寻址时,如果先寻到了 CNAME 记录,就无法再获取到该域名对应的 MX 记录。这就会导致使用该域名搭建的域名邮箱在收件时会经常丢信漏信。同时,CNAME 记录不仅与 MX 记录冲突,也会与 TXT 记录冲突,这就会导致为根域名设置的 SPF-TXT 记录无法生效,因此发信时更容易进垃圾箱。

那么问题来了,如果我们要为网站开启 CDN,那么最常见的方式就是使用 CNAME 接入。如果还需要一并使用域名邮箱,那么就不得不造成 CNAME 记录和 MX 记录的冲突。有什么好办法呢?这里我们有三个办法,可以解决这个问题。