@@ -128,10 +128,15 @@ external_network:
128128 --gateway=203.0.113.1 \
129129 --subnet=203.0.113.0/24 \
130130 --ip-range=203.0.113.0/26 \
131+ --ipv6 \
132+ --gateway=2001:db8::1 \
133+ --subnet=2001:db8::/48 \
131134 --opt "com.docker.network.driver.mtu=9000" \
132135 --opt "com.docker.network.bridge.name=mini_lab_ext" \
133136 --opt "com.docker.network.bridge.enable_ip_masquerade=true" && \
134- sudo ip route add 203.0.113.128/25 via 203.0.113.128 dev mini_lab_ext; fi
137+ sudo ip route add 203.0.113.128/25 via 203.0.113.128 dev mini_lab_ext && \
138+ sudo ip -6 route add 2001:db8:0:113::/64 via 2001:db8:0:1::1 dev mini_lab_ext; \
139+ fi
135140
136141.PHONY : env
137142env :
@@ -168,7 +173,11 @@ firewall: _privatenet
168173
169174.PHONY : public-ip
170175public-ip :
171- @docker compose run $(DOCKER_COMPOSE_RUN_ARG ) metalctl network ip create --name test --network internet-mini-lab --project 00000000-0000-0000-0000-000000000001 -o template --template " {{ .ipaddress }}"
176+ @docker compose run $(DOCKER_COMPOSE_RUN_ARG ) metalctl network ip create --name test --network internet-mini-lab --project 00000000-0000-0000-0000-000000000001 --addressfamily IPv4 -o template --template " {{ .ipaddress }}"
177+
178+ .PHONY : public-ipv6
179+ public-ipv6 :
180+ @docker compose run $(DOCKER_COMPOSE_RUN_ARG ) metalctl network ip create --name test --network internet-mini-lab --project 00000000-0000-0000-0000-000000000001 --addressfamily IPv6 -o template --template " {{ .ipaddress }}"
172181
173182.PHONY : ls
174183ls : env
@@ -292,6 +301,25 @@ test-connectivity-to-external-service:
292301 fi ; \
293302 done
294303
304+ .PHONY : test-connectivity-to-external-service-via-ipv6
305+ test-connectivity-to-external-service-via-ipv6 :
306+ @for i in $$(seq 1 $(MAX_RETRIES ) ) ; do \
307+ if $( MAKE) ssh-machine COMMAND=" sudo curl --connect-timeout 1 --fail --silent http://[2001:db8::10]" > /dev/null 2>&1 ; then \
308+ echo " Connected successfully" ; \
309+ exit 0; \
310+ else \
311+ echo " Connection failed" ; \
312+ if [ $$ i -lt $( MAX_RETRIES) ]; then \
313+ echo " Retrying in 2 seconds..." ; \
314+ sleep 2; \
315+ else \
316+ echo " Max retries reached" ; \
317+ exit 1; \
318+ fi ; \
319+ fi ; \
320+ done
321+
322+
295323# # DEV TARGETS ##
296324
297325.PHONY : dev-env
0 commit comments