我想构建 Slax 的自定义映像,并且它默认分配给所有接口的所有链接本地 (IPv4-LL) 地址让我特别恼火。我怎样才能摆脱它?我在man connman
和中找不到任何线索man connman.conf
。
答案1
注:我指的是RFC3927与 IPv4LL 一样,因为 connman 就是这样做的。其他人称之为链接本地、bonjour 或 Zeroconf。
首先:是的,connman 可能是分配这些 IPv4LL 地址的程序。 Connman 为 IPv4 提供[off|manual|auto]
设置。对于 IPv6 也是如此,因此不提供单独的 DHCP 选项似乎是他们的理念。
根据您想要删除这些地址的原因,詹姆斯在评论中的回答可能是最简单的:
- 编写脚本:检查您是否有 169.256.xx.xx 地址。如果是这样,请采取相应措施(例如,从 connman 手动配置 IP)。
- 切换到另一个网络管理器
看着来源文件client.c
和dhcp.c
.据我所知,connman 确实:
- 尝试 DHCP
- 如果失败,则回退到 IPv4LL
如果您能够对 connman 源应用补丁,请找到gdhcp/client.c
:
里面
ipv4ll_start(GDHCPClient *dhcp_client)
生成了IPv4LL地址功能
ipv4ll_start
和ipv4ll_start_client
应该是一个很好的起点你比我更清楚在那里到底要做什么,因为我缺乏关于你的问题的详细信息
仅略有相关:我测试了
uint32_t arp_random_ip(void)
内部修改src/shared/arp.c
以返回静态 IP,并且 connman 仍然工作正常。所以我想,你可以
ipv4ll_stop
在里面打电话ipv4ll_start
或者类似的事情。