【发布时间】:2021-04-16 21:24:35
【问题描述】:
我有一个在 Docker 容器中运行的 HTTP 服务器。我需要能够在这个容器中记录请求,包括它们的源 IP,但是所有通过 IPv6 的数据包似乎都来自 Docker 网络网关的 IPv4 地址。
这原本是有道理的,因为 Docker 网络没有启用 IPv6,所以我假设 Docker 自动转换为 IPv4,但是在网络上启用了 IPv6,我看没有任何变化。这可能意味着我配置了错误,但我似乎无法弄清楚。
我的网络配置如下(由Portainer创建):
{
"Name": "aais",
"Id": "2823152591e7f437244623ba46f66aff7eacba2e92942fbcf681f2f145fff783",
"Created": "2021-01-11T21:52:27.632515156Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": true,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
},
{
"Subnet": "fd00:1255:2111::/48",
"Gateway": "fd00:1255:2111::1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"6931497b76e36992c1ec9d2c6fadf4ed8492f8d7dd1bb4b01b2796f0e5204969": {
"Name": "caddy",
"EndpointID": "be6bb2824a3f7c5ddb73ec45c5b37d7c439a461a65d00759e7eab68edb49548c",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": "fd00:1255:2111::2/48"
}
},
"Options": {
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "false",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
【问题讨论】: