Примечание: IPv6 здесь не настоящий IP.
Создать сеть
docker network create -d bridge --ipv6 --subnet=123c:d0f0:202:1920::/64 awx
Установлены AWX
с костомизированным файлом docker-compose.yaml
version: '2'
services:
web:
...
networks:
- awx_internal
- awx
task:
...
networks:
- awx_internal
- awx
postgresql:
...
networks:
- awx_internal
rabbitmq:
...
networks:
- awx_internal
memcached:
...
networks:
- awx_internal
networks:
awx_internal:
driver: bridge
awx:
external: true
Проверьте eth0
внутри контейнера
# docker exec awx_web ip -6 addr show dev eth0
8: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
inet6 123c:d0f0:202:1920::2/64 scope global nodad
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe12:2/64 scope link
valid_lft forever preferred_lft forever
Добавьте IP-адрес в контейнере к прокси-серверу гостевого хоста (на гостевом хосте не существует eth0
)
ip -6 neigh add proxy 123c:d0f0:202:1920::2 dev lan0
Однако проверьте ip -6 neighbor show
и ip -6 route
на гостевом сервере не могу его найти.
Проверьте docker exec awx_web ip -6 route
получил
123c:d0f0:202:1920::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via 123c:d0f0:202:1920::1 dev eth0 metric 1024 pref medium
Это отличается от 123c:d0f0:202:1920::2
. Зачем?
Добавлен прокси
sysctl net.ipv6.conf.lan0.proxy_ndp=1
ip -6 neigh add proxy 123c:d0f0:202:1920::2 dev lan0
Я проверил awx
сеть
# docker network inspect awx
[
{
"Name": "awx",
"Id": "3e92ba7c786e0bbda691685014dcee748a21d31f021b957c4f0ab324b2d1a188",
"Created": "2020-05-04T13:01:50.841196671+09:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": true,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
},
{
"Subnet": "123c:d0f0:202:1920::/64",
"Gateway": "123c:d0f0:202:1920::1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"2e2f7954d7699c5d785efe9eefc0e44bb07f9bf4b12ffd1fb37e8a61d881258a": {
"Name": "awx_web",
"EndpointID": "8fa5679c45a1b364f53e5562756ff13cdb4ac005e485a56c50f2c201410f19a3",
"MacAddress": "13:02:ao:22:09:03",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": "123c:d0f0:202:1920::2/64"
}
},
"Options": {},
"Labels": {}
}
]
Не нашел "com.docker.network.enable_ipv6": "true"
в Options
блок.
Наконец, я не могу выполнить ping6 с гостевого хоста до контейнера докеров ни с контейнера докеров на гостевой хост.
ping6 123c:d0f0:202:1920::2
Как сделать их общими? Делает eth0
сетевой интерфейс необходим на гостевом сервере, на котором запущены контейнеры докеров?