Туннель ачылган, файрвол порт 53тү өткөрөт, AdGuard Home иштеп жатат, бирок WireGuard кардары үчүн аттар дагы деле чечилбейт. Суроо кадимкидей келип, жооп кадимкидей чыгат, ошондуктан резолвердеги пакет эсептегичтер жакшы көрүнөт жана кызмат күнөөлүү эмес окшойт. Бирок туура эмес болуп жаткан нерсе - ошол жооптогу булак дарек: ал кардардын эч качан сурабаган жергиликтүү даректен чыгып жатат жана кардардын stub резолвери аны жокко чыгарат. AdGuard Home конфигурациясындагы бир тизмектин бул чечимге таасири бар, жана анын адаттагы алдын ала коюлган мааниси чечимди ядрого өткөрүп берет.

Суроо келет, жооп башка жерден чыгат

Кардар 10.6.0.1 дарегин чечүүчү катары жөнгө салганда, ал 10.6.0.1 порту 53кө UDP сурамын жиберет. Ал пакет туннелден өтүп, хостко жетет жана AdGuard Home ага жооп берет. Бирок зым аркылуу, жооп хосттун стек тарабынан тандалган жаңы пакет болуп чыгат, кардардын күтүүсү боюнча эмес.

Эгер кардардын чечүүчү туташкан сокет болсо, ал systemd-resolved, dnsmasq жана көпчүлүк жеңил чечүүчүлөр колдонгон нерсе, ал жөнөтүлгөн так даректен гана жоопторду кабыл алат. 192.168.1.10 дарегинен 10.6.0.1ге жиберилген сурамга жооп келгенде, аны кандайдыр бир талдоо жүргүзүлбөй туруп жок кылат. Чечүүчү ийгиликтүү жоопту журналда жазат, кардар убакытынан ашуундукту журналда жазат, жана экөө тең чындыкты айтып жатышат.

Ошондуктан эсептегичтер калп айтып жатышпай, кардар да калп айтпайт. Сизге керектүү далилдер үч жерде турат, ушул тартипте: угуучуга туташкан дарек, ядро кардарга кайтуу үчүн колдонгон маршрут жана чыныгы жооп пакети боюнча баштапкы дарек.

Ядро жооп булагын кантип тандайт

UDP сокети менен байланышкан0.0.0.0өзүнүн булак дареги жок, андыктан ар бир чыккан жооп максатка жеткирүү үчүн жолду издейт. Андан кийин ядро бу жолдон булакты алат: жол тарабынан белгиленген дарек же чыккан интерфейстин негизги дареги. Суроонун максат дареги боюнча эч нерсе эстеп калбайт.

Бир коргошундуу хостто бул көрүнбөйт, анткени жалгыз жолуу жагдай гана бар. LAN дарегин, WireGuard дарегин жана башкаруу дарегин кармаган бир машинада бир нече жооп мүмкүн, жана жеңүүчү ошол учурдагы маршрут таблицасына жараша болот. Кошумча маршрут кошуу, ошол эле интерфейсте экинчи дарек кошуу, резольвердин алдында NAT багыттоочу, же AdGuard'ти өзүнүн namespace менен контейнерде иштетүү менен, тандалган булак кардар издегенден башка болушу мүмкүн.

ss -lunp | grep :53кайсы оюнда экениңизди көрсөтөт.0.0.0.0:53дээрлик угуу чекиттүү учур;10.6.0.1:53дээрлик угуу чекити буга чейин жоопту белгиледи. Сокетти окуу YAML окуудан ылдамыраак, жана чындыгында иштеп жаткан нерсени чагылдырат, акыркы сакталган нерсени эмес.

Биз чындыгында кандай bind_hosts башкаруу экенин

AdGuard Home'дунdns.bind_hostsбул DNS угкуч колдоно турган жергиликтүү даректердин тизмеси. Ал жөнөтүлгөн дефолт – бул жапырт жол (wildcard), ал бардык жергиликтүү даректерде кабыл алууну жана жооп үчүн булакты ядро тандау дегенди билдирет. Жапырт жолду кардарлар сураган дарек менен алмаштырганда сокет өзгөрөт жана ар бир жоопто булак дареги өзгөрөт.

Тизмеде бирден көп киргизүү болушу мүмкүн, бул эки тармакка кызмат көрсөткөн чечкич үчүн маанилүү.10.6.0.1жана192.168.1.10деп тизмелөө эки байланган сокетти берет жана кайсы бирине суроо келсе, келген даректен жооп берилет. Бул көпчүлүк адамдар жапырт жол буга чейин камсыз кылат деп эсептегени.

YAML жөнөкөй, жана анын ичиндеги дарек – туннель кардарларыңыз колдонууга айтылган дарек, хосттун негизги дареги эмес:

dns:
  bind_hosts:
    - 10.6.0.1
  port: 53

Эмнеге бир чечкичтин эки орнотмосу макул эмес

Бул контекстте плагин менен башкарылуучу дегеніміз – чечүүчү башка пакет менен орнотулган жана көзөмөлдөнгөн: роутердеги программалык камсыздоо пакети, NAS пакети же үй автоматизациясы үчүн кошумча. Бул пакет көбүнчө AdGuard Home YAML нускасын өз алдынча алып келет жана процессти өзүнүн графиги боюнча кайра баштайт, ал эми бирдиктүү иштетүүчү – бул сатуу компаниясынын бинардык файлы же контейнери, аны өзүңүз конфигурациялайсыз. Эки учурда да сиз эки өз алдынча процесс менен иштенип жатасыз, алардын ар бири өз конфигурациялык файлдары жана өз бекитүү тандоолору бар, түптөсү бирдей upstream тизмесин жана сүзгү тизмелерин окуса да. Бирөөнүн туннель дарегин конкреттүү беките турганда, экинчиси жаптоо белгисин (wildcard) мурастайт, жана веб-интерфейс кайсы тараптан караса да бирдей көрүнөт.

Ошондуктан «сол эле чечмелөөчү миграциядан мурун иштеген» азыркы байлам жөнүндө эч нерсе далилдебейт. Сокетти текшериңиз, андан кийин иштеп жаткан процесс чындап жүктөгөн конфигурация файлын текшериңиз. Башка каталогдогу эски көчүрмө өзгөртүүнүн эч кандай таасир этпегенинин кеңири тараган себеби болуп эсептелет.

Аны түйүп коюп, андан кийин туннель жактан текшериңиз

Өзгөртүүbind_hostsтуннел дарегине, кызматты кайра баштап, сокет которулганын текшериңиз:ss -lunp | grep :53азыр көрсөтүүсү керек10.6.0.1:53жана эч кандай жапайы символ киргизүү жок. Эгер ал дагы деле көрсөтүп жатса0.0.0.0,жүрүп жаткан процесс сиз түзөтүп кеткен файлды окубай жатат.

Андан кийин кардардан сынап көрүңүз, анткени бул гана мааниге ээ тарап. Суроо мененdig @10.6.0.1 example.comпайдаланучунун машыккан жолу менен машыгат, жана хостто кармоо мененtcpdump -ni wg0 udp port 53жооптун булагы дарегин тармакта көрсөтүп турат. Аны кардардын чечүүчү параметриндеги дарек менен салыштырыңыз; эгерде алар бирдей болсо, тайм-аут сыр бойдон калбайт.

ip route get 10.6.0.2калганынын кандайдыр бир чыгышын түшүндүрөт, анткени ал хост кардарга кайтып колдонмок интерфейсти жана булагын басып чыгарат. Эгер чыгарылган маалымат LAN интерфейстин атын көрсөтсө, bind өзгөрүүсү толук чечим эмес жана маршрутизациялык таблицаны окуунун кезеги келет.

Bind орнотуусу эмне кыла албайт

Угуучуну бекемдөө туннель түйүнчүгүн эске албай калган кирүүсү тизмесин, сурамга уруксат берип, жоопко уруксат бербеген өрт чырмагы эрежесин же WireGuard пулуна кайткы жолду өзгөртпөйт. Алар булагы даректен эртерээк же кийинчерээк иштен чыгат жана ар биринин өз ээси бар.

Ошондой эле өзгөртпөйтчечүүчү кайсы жогорку деңгээлге жиберерин, кайсы учурда кайра байлоо коргоосу жеке ат үчүн жеке жоопту четке какканын же кардар өзүнүн издөө домендерин кантип колдонгону жөнүндө. Бул өзүнчө башкаруулар. Жооп булагы туура болбогондо байланыш дарегин өзгөртүңүз, ал туура болгондо болсо башка нерсени өзгөртүңүз.

Тектеш макалалар