Networking
如何獲取要在 Docker 中使用的 IPv6 子網?
我在執行 docker 的來賓伺服器上有一個 IPv6 IP
301b:e0d0:401:0348:lk19:7:0:2
中的配置
/etc/resolv.conf
domain my.domain nameserver ::1 nameserver 301b:e0d0:401:0348:505:7:0:2 nameserver 301b:e0d0:401:0348:506:7:0:2
如何獲取它的子網?我們可以從右側開始更改第四個值。但保持其他值相同。
我試圖在我的網路中為其設置子網。在我的 docker-compose.yml 文件中設置它
networks: default: driver: bridge enable_ipv6: true ipam: config: - subnet: 301b:e0d0:401:0348::/64 services: ipv6nat: container_name: ipv6nat restart: always image: robbertkl/ipv6nat privileged: true network_mode: host volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /lib/modules:/lib/modules:ro
但它不起作用。無法使用 ping6 到具有此格式的容器中的其他網路
# ping6 301b:e0d0:401:0348:[DIFFERENT_VALUE_HERE]:7:0:2 unreachable
如何獲取要在 Docker 中使用的 IPv6 子網?
向您的提供商、ISP 或任何其他機構詢問地址空間的授權。如果你只有一個
/64
,你還不夠。理想情況下,您應該能夠請求 a/48
,但如果他們很吝嗇,他們可能會給您類似 a 的東西/56
。我們可以從右側開始更改第四個值
不,你不能。您的網路是 a
/64
,這意味著一半的位用於主機地址。Docker 主機和您在該組合中創建的網路必須位於不同的子網中。但是你們都是同一個子網上的網路。
301b:e0d0:401:0348:[DIFFERENT_VALUE_HERE]:7:0:2
地址的
301b:e0d0:401:0348::
一部分定義了/64
所有內容的子網,之後我只用於同一子網上的主機。