summaryrefslogtreecommitdiffstats
path: root/roles/openshift_node/files/networkmanager/99-origin-dns.sh
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_node/files/networkmanager/99-origin-dns.sh')
-rwxr-xr-xroles/openshift_node/files/networkmanager/99-origin-dns.sh23
1 files changed, 19 insertions, 4 deletions
diff --git a/roles/openshift_node/files/networkmanager/99-origin-dns.sh b/roles/openshift_node/files/networkmanager/99-origin-dns.sh
index acf3e2f38..16129a288 100755
--- a/roles/openshift_node/files/networkmanager/99-origin-dns.sh
+++ b/roles/openshift_node/files/networkmanager/99-origin-dns.sh
@@ -43,10 +43,25 @@ if [[ $2 =~ ^(up|dhcp4-change|dhcp6-change)$ ]]; then
######################################################################
# couldn't find an existing method to determine if the interface owns the
# default route
- def_route=$(/sbin/ip route list match 0.0.0.0/0 | awk '{print $3 }')
- def_route_int=$(/sbin/ip route get to ${def_route} | awk '{print $3}')
- def_route_ip=$(/sbin/ip route get to ${def_route} | awk '{print $5}')
- if [[ ${DEVICE_IFACE} == ${def_route_int} ]]; then
+ #SDS
+ #def_route=$(/sbin/ip route list match 0.0.0.0/0 | awk '{print $3 }')
+ #def_route_int=$(/sbin/ip route get to ${def_route} | awk '{print $3}')
+ #def_route_ip=$(/sbin/ip route get to ${def_route} | awk '{print $5}')
+ #EDS
+ def_route_ip=$(cat /etc/hosts | grep openshift_dns_ip | awk '{ print $1 }')
+ [ -n "$def_route_ip" ] && def_route_int=$(ip -o addr show | grep ${def_route_ip} | awk '{ print $2 }')
+ if [ -z "$def_route_ip" -o -z "$def_route_int" ]; then
+ def_route=$(/sbin/ip route list match 0.0.0.0/0 | awk '{print $3 }')
+ def_route_int=$(/sbin/ip route get to ${def_route} | awk '{print $3}' | head -n 1)
+ def_route_ip=$(/sbin/ip -f inet addr show dev ${def_route_int} scope global up | grep -Po 'inet \K[\d.]+' | head -n 1)
+ fi
+
+ def_routes=$(/sbin/ip route list match 0.0.0.0/0 | awk '{print $3 }')
+ def_routes_int=$(for r in ${def_routes}; do /sbin/ip route get to ${r} | awk '{print $3}'; done)
+ interfaces="${def_route_int} ${def_routes_int}"
+
+ if [[ "${interfaces}" =~ (^|[[:space:]])${DEVICE_IFACE}($|[[:space:]]) ]]; then
+# if [[ ${DEVICE_IFACE} == ${def_route_int} ]]; then
if [ ! -f /etc/dnsmasq.d/origin-dns.conf ]; then
cat << EOF > /etc/dnsmasq.d/origin-dns.conf
no-resolv