From c603419030136570b5944dc4620f62d07b9e82bb Mon Sep 17 00:00:00 2001 From: pallotron Date: Tue, 4 Apr 2017 08:31:21 -0700 Subject: [PATCH 1/5] wait for IPv6 RA if using none/static IPv6 assignment --- modules.d/40network/net-lib.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index 75051544..b74fdbdd 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -671,6 +671,7 @@ wait_for_ipv6_dad() { while [ $cnt -lt $timeout ]; do [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1")" ] \ && return 0 [ -n "$(ip -6 addr show dev "$1" dadfailed)" ] \ && return 1 From 4c3d99f9665118198ec68a93ecdcc15c88e23c98 Mon Sep 17 00:00:00 2001 From: pallotron Date: Tue, 4 Apr 2017 12:59:45 -0700 Subject: [PATCH 2/5] enabling some ipv6 config before running wait_for_ipv6_dad --- modules.d/40network/ifup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh index fd721e74..f979b59b 100755 --- a/modules.d/40network/ifup.sh +++ b/modules.d/40network/ifup.sh @@ -108,6 +108,9 @@ do_static() { if strglobin $ip '*:*:*'; then # note no ip addr flush for ipv6 ip addr add $ip/$mask ${srv:+peer $srv} dev $netif + echo 0 > /proc/sys/net/ipv6/conf/$netif/forwarding + echo 1 > /proc/sys/net/ipv6/conf/$netif/accept_ra + echo 1 > /proc/sys/net/ipv6/conf/$netif/accept_redirects wait_for_ipv6_dad $netif else if command -v arping2 >/dev/null; then From 96b708e178930b0891daab8dcc9d1d7375637a29 Mon Sep 17 00:00:00 2001 From: pallotron Date: Wed, 5 Apr 2017 00:15:16 -0700 Subject: [PATCH 3/5] more ipv6 improvements --- modules.d/40network/net-lib.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index b74fdbdd..e0f761f3 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -653,7 +653,9 @@ wait_for_ipv6_dad_link() { timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do + echo "wait_for_ipv6_dad_link..." 1>&2 [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ && return 0 [ -n "$(ip -6 addr show dev "$1" scope link dadfailed)" ] \ && return 1 @@ -670,8 +672,9 @@ wait_for_ipv6_dad() { timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do + echo "wait_for_ipv6_dad..." 1>&2 [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ - && [ -n "$(ip -6 route list proto ra dev "$1")" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ && return 0 [ -n "$(ip -6 addr show dev "$1" dadfailed)" ] \ && return 1 @@ -688,8 +691,9 @@ wait_for_ipv6_auto() { timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do + echo "wait_for_ipv6_auto..." 1>&2 [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ - && [ -n "$(ip -6 route list proto ra dev "$1")" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ && return 0 sleep 0.1 cnt=$(($cnt+1)) From a0545765e8cec749e59a664ef09944786132327b Mon Sep 17 00:00:00 2001 From: pallotron Date: Wed, 5 Apr 2017 00:16:16 -0700 Subject: [PATCH 4/5] remove prints --- modules.d/40network/net-lib.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index e0f761f3..fea45be2 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -653,7 +653,6 @@ wait_for_ipv6_dad_link() { timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do - echo "wait_for_ipv6_dad_link..." 1>&2 [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \ && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ && return 0 @@ -672,7 +671,6 @@ wait_for_ipv6_dad() { timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do - echo "wait_for_ipv6_dad..." 1>&2 [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ && return 0 @@ -691,7 +689,6 @@ wait_for_ipv6_auto() { timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do - echo "wait_for_ipv6_auto..." 1>&2 [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ && return 0 From 031e2f7bb8aea447cd87e455b184106acb4aa435 Mon Sep 17 00:00:00 2001 From: pallotron Date: Wed, 5 Apr 2017 00:23:36 -0700 Subject: [PATCH 5/5] more ipv6 improvements --- modules.d/40network/net-lib.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index fea45be2..71a665cd 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -654,7 +654,7 @@ wait_for_ipv6_dad_link() { while [ $cnt -lt $timeout ]; do [ -z "$(ip -6 addr show dev "$1" scope link tentative)" ] \ - && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \ && return 0 [ -n "$(ip -6 addr show dev "$1" scope link dadfailed)" ] \ && return 1 @@ -672,7 +672,7 @@ wait_for_ipv6_dad() { while [ $cnt -lt $timeout ]; do [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ - && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \ && return 0 [ -n "$(ip -6 addr show dev "$1" dadfailed)" ] \ && return 1 @@ -690,7 +690,7 @@ wait_for_ipv6_auto() { while [ $cnt -lt $timeout ]; do [ -z "$(ip -6 addr show dev "$1" tentative)" ] \ - && [ -n "$(ip -6 route list proto ra dev "$1" | grep default)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1" | grep ^default)" ] \ && return 0 sleep 0.1 cnt=$(($cnt+1))