核心内容摘要
探索二次元黄色漫画的独特魅力与创作边界
文章目录
什么是 IPv6 链路本地地址Link-Local Address
Docker 中的 LinkLocalIPv6Address 和 LinkLocalIPv6PrefixLen
2.
LinkLocalIPv6Address
2.
LinkLocalIPv6PrefixLen
如何查看这两个字段
3.
docker inspect
3.
在容器内部查看
重要
注意事项
4.
仅当 Docker 启用 IPv6 时存在
4.
、不能用于跨主机通信
4.
不是用户可配置项
4.
与 --ipv6 参数无关
实际用途
FAQ
6.
为什么我的容器没有 LinkLocalIPv6Address
6.
能否禁用链路本地地址
6.
这个地址会冲突吗LinkLocalIPv6Address和LinkLocalIPv6PrefixLen是 Docker 容器网络配置中的两个只读元数据字段用于描述容器在 Docker 自定义 bridge 网络或默认 bridge 网络中自动分配的 IPv6 链路本地地址Link-Local IPv6 Address。
它们不是用户可配置的参数而是 Docker 在创建容器时自动生成并暴露给用户查询的信息。
什么是 IPv6 链路本地地址Link-Local Address定义链路本地地址 是 IPv6 中一种特殊地址类型仅在同一物理/逻辑链路如单个子网内有效不能被路由器转发。
格式fe80::/10即前 10 位为 1111111010典型地址fe80::42:acff:fe11:2233作用邻居发现Neighbor Discovery Protocol, NDP替代 IPv4 的 ARP无状态地址自动配置SLAAC路由器发现Docker 内部通信如容器间通过 MAC 地址通信所有启用了 IPv6 的网络接口必须有一个链路本地地址。
Docker 中的 LinkLocalIPv6Address 和 LinkLocalIPv6PrefixLen
2.
LinkLocalIPv6Address含义Docker 为容器的虚拟网络接口如 eth0分配的 IPv6 链路本地地址。
生成方式基于容器的 MAC 地址 自动生成EUI-64 格式例如MAC 02:42:ac:11:00:02 → IPv6 fe80::42:acff:fe11:2特点每次容器重启可能变化如果 MAC 变化不可路由仅用于同一 Docker 网络内的通信
2.
LinkLocalIPv6PrefixLen含义链路本地地址的前缀长度Prefix Length固定值64原因IPv6 链路本地地址标准规定使用 /64 子网LinkLocalIPv6Address:fe80::42:acff:fe11:2233,LinkLocalIPv6PrefixLen:64
如何查看这两个字段
3.
docker inspectdockerinspectcontainer-name|grep-A5 LinkLocalIPv6输出示例LinkLocalIPv6Address:fe80::42:acff:fe11:2233,LinkLocalIPv6PrefixLen:64,
3.
在容器内部查看dockerexec-itcontaineripaddr show eth0输出2: eth0if3:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500inet6 fe80::42:acff:fe11:2233/64 scopelink
重要
注意事项
4.
仅当 Docker 启用 IPv6 时存在默认情况下Docker 不启用 IPv6需在/etc/docker/daemon.json中开启{ipv6:true,fixed-cidr-v6:2001:db8:1::/64}即使未配置全局 IPv6链路本地地址仍会自动生成因为它是 IPv6 基础功能
4.
、不能用于跨主机通信fe80::/10 地址不能跨路由器容器只能用它和同一 Docker 网络内的其他容器通信
4.
不是用户可配置项你不能通过 docker run --link-local-ipv6 … 设置它它由 Docker daemon 自动生成
4.
与 --ipv6 参数无关即使运行容器时加了 --ipv6这个地址也依然存在只要内核支持 IPv6
实际用途场景说明容器间底层通信Docker 内部使用链路本地地址进行 ARP 替代NDP调试网络问题通过 ping6 fe80::…%eth0 测试同网络连通性服务发现高级某些 P2P 协议使用链路本地地址做初始握手
FAQ
6.
为什么我的容器没有 LinkLocalIPv6Address原因宿主机内核禁用了 IPv6解决# 检查cat/proc/sys/net/ipv6/conf/all/disable_ipv6# 0启用, 1禁用# 启用echo0|sudotee/proc/sys/net/ipv6/conf/all/disable_ipv
66.
能否禁用链路本地地址不能。
它是 IPv6 协议栈的基础组成部分禁用会导致网络异常。
6.
这个地址会冲突吗不会。
因为基于 MAC 地址生成而 Docker 保证容器 MAC 唯一。