|
@@ -45,13 +45,15 @@ if [[ $2 =~ ^(up|dhcp4-change|dhcp6-change)$ ]]; then
|
|
|
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} && \
|
|
|
- -n "${IP4_NAMESERVERS}" ]]; then
|
|
|
+ -n "${IP4_NAMESERVERS}" && \
|
|
|
+ "${IP4_NAMESERVERS}" != "${def_route_ip}" ]]; then
|
|
|
if [ ! -f /etc/dnsmasq.d/origin-dns.conf ]; then
|
|
|
cat << EOF > /etc/dnsmasq.d/origin-dns.conf
|
|
|
no-resolv
|
|
|
domain-needed
|
|
|
server=/cluster.local/172.30.0.1
|
|
|
server=/30.172.in-addr.arpa/172.30.0.1
|
|
|
+enable-dbus
|
|
|
EOF
|
|
|
# New config file, must restart
|
|
|
NEEDS_RESTART=1
|
|
@@ -89,13 +91,17 @@ EOF
|
|
|
systemctl restart dnsmasq
|
|
|
fi
|
|
|
|
|
|
- # Only if dnsmasq is running properly make it our only nameserver
|
|
|
+ # Only if dnsmasq is running properly make it our only nameserver, copy
|
|
|
+ # original resolv.conf to /etc/origin/node/resolv.conf for node service to
|
|
|
+ # bypass dnsmasq
|
|
|
if `systemctl -q is-active dnsmasq.service`; then
|
|
|
- sed -e '/^nameserver.*$/d' /etc/resolv.conf > ${NEW_RESOLV_CONF}
|
|
|
- echo "nameserver "${def_route_ip}"" >> ${NEW_RESOLV_CONF}
|
|
|
if ! grep -q '99-origin-dns.sh' ${NEW_RESOLV_CONF}; then
|
|
|
echo "# nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh" >> ${NEW_RESOLV_CONF}
|
|
|
+ cp /etc/resolv.conf /etc/origin/node/resolv.conf
|
|
|
fi
|
|
|
+ sed -e '/^nameserver.*$/d' /etc/resolv.conf > ${NEW_RESOLV_CONF}
|
|
|
+ echo "nameserver "${def_route_ip}"" >> ${NEW_RESOLV_CONF}
|
|
|
+
|
|
|
if ! grep -q 'search.*cluster.local' ${NEW_RESOLV_CONF}; then
|
|
|
sed -i '/^search/ s/$/ cluster.local/' ${NEW_RESOLV_CONF}
|
|
|
fi
|