(Debian 9) NetworkManager 使用 ipv6-icmp 的 RAW 套接字?

(Debian 9) NetworkManager 使用 ipv6-icmp 的 RAW 套接字?

我一直在尝试减少 Debian 9 在特定时间打开的端口。通过使用静态 IP 进行缩减,禁用 systemctl 的服务,我的 UDP 和 TCP 端口范围缩小了;但由于某种原因,我的 NetworkManager 有一个处于 UNCONN 状态的 RAW 套接字,只是在等待某些东西。我的问题是,为什么需要这个?另外,有没有办法用 Zenmap / nmap 检查这一点?

root_user@box# ss -64tuldpw 
Netid  State      Recv-Q Send-Q    Local Address:Port   Peer Address:Port                
raw    UNCONN     0      0         :::ipv6-icmp         :::*            
users:(("NetworkManager",pid=584,fd=18))

我在 NetworkManager 存储库中注意到

git://git.freedesktop.org/git/NetworkManager/NetworkManager.git

我发现了一个名为: int lldp_network_bind_raw_socket(int ifindex)inNetworkManager/src/systemd/src/libsystemd-network/lldp-network.c

所以我猜原始套接字是 NetworkManager 本地链路层广告部分的一部分?

https://en.wikipedia.org/wiki/Link_Layer_Discovery_Protocol

答案1

Lldp 是第 2 层协议,与 ipv6 不同。当然,lldp 的原始套接字不是 ipv6-icmp 类型,而是以太网。此外,除非您启用 lldp 侦听,否则不会完成它。

NM 使用 libndp 进行 RA 处理,它打开一个原始套接字,我怀疑它就是您所看到的套接字。如果配置 ipv6.method=ignore,则套接字可能不再打开。

相关内容