feat: issue #1 — DNS для *.loc через LOCAL_DNS + resolvectl

- setup.sh item 2: добавлен вопрос LOCAL_DNS (офисный DNS-сервер для *.loc)
  сохраняется в network_<hostname>.conf, передаётся в ru-bypass.sh через env
- scripts/ru-bypass.sh: добавлена переменная LOCAL_DNS, после RFC1918 маршрутов
  настраивает resolvectl dns/domain ~loc на интерфейсе DEV

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 20:13:18 +03:00
parent 00722b430f
commit 7429802612
2 changed files with 26 additions and 7 deletions

View File

@@ -13,6 +13,7 @@
GATEWAY="${GATEWAY:-192.168.1.1}"
DEV="${DEV:-wlp1s0}"
LOCAL_DNS="${LOCAL_DNS:-}"
SETNAME="ru-direct"
CACHE="/var/cache/ru-delegations.txt"
IPSET_SAVE="/etc/ipset.conf"
@@ -173,6 +174,18 @@ for net in $LOCAL_NETS; do
ip route replace "$net" via "$GATEWAY" dev "$DEV" 2>/dev/null
done
# --- DNS для *.loc через LOCAL_DNS (если задан) ---
if [ -n "$LOCAL_DNS" ]; then
if command -v resolvectl >/dev/null 2>&1; then
resolvectl dns "$DEV" "$LOCAL_DNS" 2>/dev/null && \
resolvectl domain "$DEV" "~loc" 2>/dev/null && \
echo "DNS для *.loc → $LOCAL_DNS (интерфейс $DEV)"
else
echo "Предупреждение: resolvectl не найден, LOCAL_DNS=$LOCAL_DNS не применён"
fi
fi
# --- Правило в UFW before.rules (однократно, после создания ipset) ---
UFW_MARKER="match-set $SETNAME"