Slax、connman — 如何禁用分配 IPv4-LL 地址?

Slax、connman — 如何禁用分配 IPv4-LL 地址?

我想构建 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.cdhcp.c.据我所知,connman 确实:

  1. 尝试 DHCP
  2. 如果失败,则回退到 IPv4LL

如果您能够对 connman 源应用补丁,请找到gdhcp/client.c

  • 里面ipv4ll_start(GDHCPClient *dhcp_client)生成了IPv4LL地址

  • 功能ipv4ll_startipv4ll_start_client应该是一个很好的起点

  • 你比我更清楚在那里到底要做什么,因为我缺乏关于你的问题的详细信息

  • 仅略有相关:我测试了uint32_t arp_random_ip(void)内部修改src/shared/arp.c以返回静态 IP,并且 connman 仍然工作正常。

  • 所以我想,你可以ipv4ll_stop在里面打电话ipv4ll_start或者类似的事情。

相关内容