# Cannot use multiple DNS matching in this case
OVERRIDE_PRIMARY='d.add OverridePrimary # 1'
fi
+ # Overriding the default gateway breaks split routing
+ OVERRIDE_GATEWAY=""
+ # Not overriding the default gateway breaks usage of
+ # INTERNAL_IP4_DNS. Prepend INTERNAL_IP4_DNS to list
+ # of used DNS servers
+ SERVICE=`echo "show State:/Network/Global/IPv4" | scutil | grep -oE '[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}'`
+ SERVICE_DNS=`echo "show State:/Network/Service/$SERVICE/DNS" | scutil | grep -oE '([0-9]{1,3}[\.]){3}[0-9]{1,3}' | xargs`
+ if [ X"$SERVICE_DNS" != X"$INTERNAL_IP4_DNS" ]; then
+ scutil >/dev/null 2>&1 <<-EOF
+ open
+ get State:/Network/Service/$SERVICE/DNS
+ d.add ServerAddresses * $INTERNAL_IP4_DNS $SERVICE_DNS
+ set State:/Network/Service/$SERVICE/DNS
+ close
+ EOF
+ fi
+ else
+ # No split routing. Override default gateway
+ OVERRIDE_GATEWAY="d.add Router $INTERNAL_IP4_ADDRESS"
fi
# Uncomment the following if/fi pair to use multiple
# DNS matching when available. When multiple DNS matching
d.add ServerAddresses * $INTERNAL_IP4_DNS
set State:/Network/Service/$TUNDEV/DNS
d.init
- # next line overrides the default gateway and breaks split routing
- # d.add Router $INTERNAL_IP4_ADDRESS
+ $OVERRIDE_GATEWAY
d.add Addresses * $INTERNAL_IP4_ADDRESS
d.add SubnetMasks * 255.255.255.255
d.add InterfaceName $TUNDEV
remove State:/Network/Service/$TUNDEV/DNS
close
EOF
+ # Split routing required prepending of INTERNAL_IP4_DNS
+ # to list of used DNS servers
+ if [ -n "$CISCO_SPLIT_INC" ]; then
+ SERVICE=`echo "show State:/Network/Global/IPv4" | scutil | grep -oE '[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}'`
+ SERVICE_DNS=`echo "show State:/Network/Service/$SERVICE/DNS" | scutil | grep -oE '([0-9]{1,3}[\.]){3}[0-9]{1,3}' | xargs`
+ if [ X"$SERVICE_DNS" != X"$INTERNAL_IP4_DNS" ]; then
+ scutil >/dev/null 2>&1 <<-EOF
+ open
+ get State:/Network/Service/$SERVICE/DNS
+ d.add ServerAddresses * ${SERVICE_DNS##$INTERNAL_IP4_DNS}
+ set State:/Network/Service/$SERVICE/DNS
+ close
+ EOF
+ fi
+ fi
;;
esac
fi