iptables chain
1 | +---------------------------------------------------------+ |
iptables table:
- filter:
- nat:
- magle:
- raw:
1 | table <-> chain |
query
1 | iptables -t <table> -nvL <chain> |
iptables chain
1 | +---------------------------------------------------------+ |
iptables table:
1 | table <-> chain |
query
1 | iptables -t <table> -nvL <chain> |
2021-03-20 01:25AM
最近一直在研究关于如何给一个fabric的组织更换一个新的证书, 包括所有加入的通道, 所有peer和orderer.
用了很多看似完美的方法却多次测试失败, 最后总算找到一种方法.
1 | { |
一个通道配置块类似上面这种,为了看的清楚有些内容我删了, 更换证书我们需要保证application及orderer的MSP是相同的, 否则更新配置块是不会成功的, 且我们得保证当前组织的raft节点的证书也要全部更换掉.
比如grub
在/etc/default/grub
的GRUB_CMDLINE_LINUX_DEFAULT=
中添加
1 | intel_iommu=on i915.enable_gvt=1 i915.enable_guc=0 |
在/etc/mkinitcpio.conf
的MODULES=()`中添加:
1 | # linux 5.14后,arch的linux内核模块已经不会勾选vfio-mdev,自测不影响gvt-g |
然后运行,我用的zen内核所以是linux-zen,默认内核是linux
1 | sudo mkinitcpio -p linux-zen |
重启计算机
查看/sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types
可以看见类似如下的目录
生成一个密钥
1 | gpg --full-gen-key |
之后会选择加密方式, 有效期, 用户名及邮箱, 密码, 按自己需求填就行了.
创建一个子密钥
1 | gpg --edit-key [key hash] |
导出密钥
1 | gpg -o /path/gpg_key --export-secret-keys [key hash] |
导出子密钥
1 | gpg -o /path/gpg_key.sub --export-secret-subkeys [key hash] |
导出吊销证书
1 | gpg --generate-revocation [key hash] |
complete document MaxMind DB File Format SpecificationDescription
here is only how convert trie tree to array
1 | 0100, 1011 -> trie |
trie -> array
left is 0, right is 1
value is index of array
这个DNS系列现在有以下几篇文章
DNS EDNS DNSSEC DNS over HTTPS 完整代码请看DNS
DOH就比较简单了,因为DOH使用的请求数据和应答数据均为之前的DNS协议格式,包括DNS,EDNS,DNSSEC…当然是否支持EDNS,DNSSEC需要看DNS服务器的支持情况
DOH的最主要的区别是把DNS使用的UDP,换成了HTTPS,这样就能防止DNS污染了,而且可以使用DNSSEC加上ESNI来防止证书劫持,DOH的协议在rfc8484中有定义
DOH主要有两种方式HTTP的GET请求和POST的请求
GET请求需要使用BASE64对请求的字节数据进行序列化,然后作为参数传递,获取到的数据使用我们之前的解析进行解析就行了
1 | func get(dReq []byte, server string) (body []byte, err error) { |
POST并不需要进行序列化,直接把原始请求数据作为body就行了
这个DNS系列现在有以下几篇文章
DNS EDNS DNSSEC DNS over HTTPS 完整代码请看DNS
注意: 这里我只完成了请求字段,主要原因是因为我学习这些DNS协议是为了找到防止DNS污染的方法,而DNSSEC并不能,而且应答头比较复杂,可能还要了解ssl和tls的知识,所以这里我没有完成代码,想了解的请看protocol change rfc4034 rfc4035 Algorithm
DNSSEC也是使用了EDNS,而且只需要改一个字段,就是之前提到Z,具体协议请看
1 | +0 (MSB) +1 (LSB) |
完成请求头
这个DNS系列现在有以下几篇文章
DNS EDNS DNSSEC DNS over HTTPS 完整代码请看DNS
上一篇我们写了DNS,EDNS就是DNS的功能扩充.
上一篇的DNS里头部有ARCOUNT的计数,EDNS就包含在那个里面,EDNS发送的请求在请求头之后的Additional中,应答在Answer和Authoritative之后,我们可看以下图,跟清晰了吧
1 | +---------------------+ |