apt install wssd
一条命令即可
Views: 0
apt install wssd
一条命令即可
Views: 0
alpine和openwrt这两个系统用的都是uclibc,但是uclibc没有提供对mdns的任何支持,所以在基于uclibc的系统上使用mdns是一件很困难的事。alpine提供的方案是用avahi2dns把mdns请求转换为普通的dns请求。
https://mirrors.hetao.me/alpine/edge/testing
然后执行命令
apk add avahi
rc-update add avahi-daemon
rc-service avahi-daemon start
forward-zone:
name: "local"
forward-addr: 127.0.0.1@5354
server:
do-not-query-localhost: no
domain-insecure: "local"
编辑/etc/unbound/unbound.conf,添加下面一行
include: "/etc/unbound/unbound.conf.d/*.conf"
编辑/etc/unbound/unbound.conf.d/resolvconf.conf
forward-zone:
name: "."
forward-addr: 223.5.5.5
unbound默认是开启dnssec的,如果用自己的dns server需要关闭dnssec.
编辑/etc/resolv.conf
nameserver 127.0.0.1
启动unbound服务
rc-update add unbound
rc-service unbound start
参考:
https://wiki.alpinelinux.org/wiki/MDNS
Views: 5
全局变量在主程序和模块中的行为是不一样的
– 模块中
在函数中无论是否使用global声明,都可以通过赋值改变全局变量
– 主文件中
如果有global声明则可以通过赋值改变全局变量,但是没有global声明时在函数中无法通过赋值改变全局变量而是创建一个新的局部变量,全局变量中的内容不会改变,但是又可以直接引用全局变量的内容。也就是说读的时候是全局变量,一旦写入就变成了局部变量,这种行为还有一个名词叫变量遮蔽(https://zh.wikipedia.org/wiki/%E8%AE%8A%E6%95%B8%E9%81%AE%E8%94%BD)。
总结就是除了在主文件中使用global时没有变量遮蔽,其它情况下都会存在遮蔽。
Views: 6
hosts: files mdns_minimal [NOTFOUND=return] dns mdns
MulticastDNS=yes
使用mdns/dns-sd时必须在/etc/resolv.conf中把dns服务器设为127.0.0.53
参考:
https://gist.github.com/jimmydo/e4943950427234408a1aaa2d7beda8b6
Views: 41
参考:
LLMNR
https://datatracker.ietf.org/doc/rfc4795/
这篇文章讲解了LLMNR与MDNS的竞争
https://www.eiman.tv/blog/posts/lannames/
Multicast DNS
https://datatracker.ietf.org/doc/rfc6762/
DNS Service Discovery
https://datatracker.ietf.org/doc/rfc6763/
http://www.dns-sd.org/
DDNS
https://datatracker.ietf.org/doc/rfc2136/
libnss的d-bus接口
https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.resolve1.html
cups支持systemd-dnssd的issue
https://github.com/OpenPrinting/libcups/issues/81
wikipedia的介绍
https://en.wikipedia.org/wiki/Zero-configuration_networking
Views: 79
表现为IPv6速度慢,有的网站能打开,有的打不开。
#pppoe口
int Dialer 1
mtu 1492
ipv6 mtu 1492
#lan口
int vlanif 2
mtu 1492
ipv6 mtu 1492
造成这种问题是原因多方面的:
– IPv6天生不允许分片
– 华为路由器的MTU,IPv4和IPv6是分开配置的,PPPOE会自动配置IPv4的MTU为1492,但IPv6不会
– ipv6 pathmtu被某些设备破坏了或者某些网站pathmtu不正确
正常情况下IPv6是不需要设置MTU的,IPv6始终使用Path MTU Discovery自动发现正确的MTU,出现这种情况大概率华为设备的PMTUD协议有问题,这种问题仅在华为设备上出现。
OpenWrt就是有项RA MTU的设置,会把PPPOE接口的MTU通告给下游设备。
参考:
https://macgeeker.com/openwrt/ipv6-mtu/
https://forum.huawei.com/enterprise/zh/thread/blog/703813366742663168
Views: 4
未来PCP有可能取代其它几种协议
UPNP+(2.0)已于2015年发布
https://openconnectivity.org/developer/specifications/upnp-resources/upnp/
Views: 5
import asyncio
import aiohttp
async def do_request(val):
timeout = aiohttp.ClientTimeout(total=86400)
async with aiohttp.ClientSession(timeout=timeout) as session:
async with session.post('http://127.0.0.1:5000'), json={"val": val}) as resp:
result = await resp.json()
return result
async def main(count):
tasks = [do_request(val) from val in range(count)]
values = await asyncio.gather(*tasks)
print(values)
asyncio.run(main(10))
参考:
https://superfastpython.com/asyncio-for-loop/
https://www.dongwm.com/post/understand-asyncio-1/
https://www.dongwm.com/post/understand-asyncio-2/
Views: 2
dnsdist默认会以1Hz的频率向上游服务器发送a.root-servers.net的解析请求,用于健康检查,下面配置10分钟发送一次
newServer({address="172.30.0.54", pool="rec", checkInterval=600})
Views: 2
dnsdist.conf中按下面配置,同时Docker开启ipv6支持
addLocal('0.0.0.0', {reusePort=true,doTCP=true})
addLocal('::', {reusePort=true,doTCP=true})
setACL({'0.0.0.0/0', '::/0'})
webserver("0.0.0.0:8083")
webserver("[::]:8083")
Views: 1