Portál AbcLinuxu, 5. června 2024 07:08


Dotaz: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?

11.4.2021 09:57 rastos | skóre: 62 | blog: rastos
Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Přečteno: 605×
Odpovědět | Admin
Potreboval by som zmeniť DNS na systéme s Ubuntu 18.04.2. Vlastne na niekoľkých. Na tradičnom systéme (bez DHCP) by som upravil /etc/resolv.conf a basta. Ale na tomto systéme je v /etc/resolv.conf napísané:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search abc
options edns0
search abc
nameserver 172.17.25.101
nameserver 172.17.27.201
Všetky tie IP-čky patria tom samému stroju. Teda má DNS server nasmerovaný na seba (kedysi tam bežal DNS server, ale už to neplatí). Navyše je do toho zapletený systemd. Výstup z "systemd-resolve --status" hovorí:
Global
         DNS Servers: 172.17.25.101
                      172.17.27.201
          DNS Domain: abc
...
Link 3 (eth0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
Na inom stroji to vyzerá podobne, ale "systemd-resolve --status" pre konkrétnu sieťovú kartu hovorí:
Link 3 (eno2)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 8.8.8.8
                      8.8.4.4
Súbor /etc/network/interfaces obsahuje:
auto lo
iface lo inet loopback
teda nerobí žiadne nastavenia pre jednotlivé sieťové karty.

Navyše na počítači beží proces "/usr/sbin/NetworkManager --no-daemon".

Tie počítače sú izolované od iternetu takže 8.8.8.8 nie je dosiahnuteľné. Sú to servery - bez GUI. Mojím cieľom je nasmerovať ich na vlastný DNS server a umožniť, aby tieto stroje vedeli prekladať mená v LAN.

Ako to správne(TM) urobiť?

Editovať /etc/network/interfaces? Nastavovať cez nmcli? Editovať /etc/systemd/resolved.conf? Niečo iné?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.4.2021 10:59 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak to v systemd vypni a v souboru /etc/resolv.conf si nastav co chceš.

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

A v /etc/NetworkManager/NetworkManager.conf si nastav položku dns=default

default: NetworkManager will update /etc/resolv.conf to reflect the nameservers provided by currently active connections.
11.4.2021 12:06 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Ďakujem za reakciu.

Nie je mi celkom jasné, ako sa príde k "nameservers provided by currently active connections". Teda, chápal by som to to pri nejakom DHCP alebo PPP. Ďalšia veta v tom článku čo linkol ZAH, hovorí:

The rc-manager setting (below) controls how this is done.

A potom: rc-manager - ... The default value depends on NetworkManager build options, and this version of NetworkManager was build with a default of "auto".

Čo konkrétne znamená "rc-manager=auto" to závisí na "dns=". Keďže "dns=default", tak by malo platiť

Alternatively, if resolvconf or netconfig are enabled at compile time and the respective binary is found, NetworkManager will automatically use it.

No a /sbin/resolvconf existuje a ten použije /etc/resolvconf/resolv.conf.d/* ... čo by aj zodpovedalo tomu čo vidím v /etc/resolv.conf. Napr. /etc/resolvconf/resolv.conf.d/head obsahuje ten odkaz "... # run "systemd-resolve --status" to see details about the actual nameservers.". Btw, /etc/resolv.conf je teraz symlink na ../run/resolvconf/resolv.conf.

Skrátka ... nie som pod časovým tlakom a chcel by som to urobiť tak, aby za pár rokov zasa nemusel niekto po mne krvopotne hľadať ako to celé funguje. Napr. niekto, kto bežne pracuje na Ubuntu (nie ako ja).
11.4.2021 21:18 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
/etc/resolv.conf symlink zrušíš a vytvoříš si tam svou konfiguraci.

V NetworkManageru tím default říkáš že se má použít ten soubor /etc/resolv.conf
11.4.2021 21:44 jejda | skóre: 24 | blog: jejda
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
A nepřepíše se mu ten /etc/resolv.conf po restartu když je to "generated by resolvconf"? Já teda ubuntu neznám, no u sebe na archu mám soubor /etc/resolvconf.conf a v něm je:
resolv_conf=/etc/resolv.conf
name_servers=127.0.0.1
a s tímto se mi generuje /etc/resolv.conf správně (dns server mi běží na localhostu).
13.4.2021 19:10 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Nepřepíše když to přepisování vypne "sudo systemctl stop systemd-resolved", "sudo systemctl disabled systemd-resolved"
13.4.2021 19:17 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Lépe přepíše ho NetworkManager když to zase nastaví jak jsem psal v NM kde i nastavuje síťové rozhraní.

Jinak i v NM to jde vypnout.
petr@HP-Olomouc:~$ uname -a
Linux HP-Olomouc 5.8.0-48-generic #54~20.04.1-Ubuntu SMP Sat Mar 20 13:40:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
petr@HP-Olomouc:~$ cat /etc/resolv.conf
# Generated by NetworkManager
search soban.cz
nameserver 192.168.1.1
petr@HP-Olomouc:~$ 
11.4.2021 11:00 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Odpovědět | | Sbalit | Link | Blokovat | Admin
https://linuxize.com/post/how-to-set-dns-nameservers-on-ubuntu-18-04/
11.4.2021 12:06 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Ďakujem za reakciu.

V tom článku sa píše, že systemd-resolved odpovedá podľa konfigurácie netplan v /etc/netplan. Ten adresár mám prázdny. Čím to môže byť? Je to defaultný stav?
11.4.2021 19:53 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Takých článkov je habafúra, a často sú to recykláty blogov z minulosti.

Systemd má vlastný network daemon ktorý v tvojom prípade príjme cez DHCP informáciu o DNS serveroch ktoré si uloží. Säm ale funguje ako DNS Proxy Cache, preto sa v /etc/resolv.conf odkazuje na lokálnu IP adresu 127.0.0.53 na ktorej priamo počúva.

Takže si skús skontrolovať čo ti posiela DHCP server, a poprípade to natvrdo prepísať v nejakom nástroji na správu siete ktorý si použil na prestavenie zo statickej IP na DHCP. Napríklad v nmcli, nmtui alebo v klikátku čo je vedľa hodiniek ak je ten stroj v móde desktopu so serverovými službami.

PS: netplan.io asi môžeš vylúčiť. Jeho nastavenie máš prázdne, a yaml formát by si si dobre pamätal. Takže ten v hre určite nebol.
11.4.2021 20:40 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Nateraz v tej LAN nebeží DHCP server (ale je v pláne). Je to server, takže žiadne GUI. Stroj bol spravovaný človekom, čo netušil, čo robí a experimentoval dovtedy, kým mu niečo nezafungovalo. Nakoniec asi čo potreboval napísal do /etc/hosts ;-/ On sám si nepamätá, ako, kde a čo spravil. Sú to roky. Preto sa nedá spoliehať na to, že len jemne upravím existujúcu konfiguráciu. Ideálne by asi bolo dostať/pochopiť východzí stav po inštalácii a ten upraviť po Ubuntu-ovsky. Ja sám mám väčšiu skúsenosť so Slackware-om než s Ubuntu, preto pátram ako to "správne" urobiť v Ubuntu. Článkov je fúra, ale čert vie do akej miery sú aktuálne.
12.4.2021 16:24 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Zásada správnej konfigurácie je mať reprodukovateľný návod na inštaláciu a konfiguráciu. To asi nemáš, keďže si to nikto nezapamätal.

Druhá možnosť je nainštalovať nový server (hoci aj oddelenú virtuálku cez KVM/virt-manager alebo VirtualBox niekde na desktope), a naň aplikovať všetky nastavenia aby človek mal popritom aj ten návod na inštaláciu a konfiguráciu. S tým je ale veľa roboty, takže to asi nebudeš tiež chcieť.

Tretia možnosť je pohľadať cez grep že kde na disku sú napchané tie pevné IPčky. Môže to byť ako zastaralý init skript (kľudne aj v rc.local), alebo nejaká časť konfigurácie v /etc. Občas si tie sieťovky nakonfiguruje služba sama. Či už cluster service, alebo hypervízor.

Posledná možnosť je zapnúť tradičný network manager, resp jeho už spomenuté textové klikátko nmtui či to neurobil v tom ako ja alebo iný lenivec. Skús len tak zo srandy čo ti vypíše command line interface pre Network Manager:
nmcli conn 
nmcli conn show "Názov Siete typu ethernet aktívnej na LAN prípojke"
13.4.2021 10:15 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Příloha:
Odstavec 1 - úplný súhlas.

Odstavec 2 - tiež, máš pravdu.

Odstavec 3 - to ma tiež napadlo, ale odkedy systemd dáva defaultne DNS na 8.8.8.8 tak neviem či grep poskytne použiteľnú informáciu ;-)

nmcli con:
Wired connection 2  0e33075b-8746-471a-a941-6ebf5a34faf3  ethernet  eth0    
docker0             59a6e06d-01d5-49c8-9d59-ea5b4c396f27  bridge    docker0 
Wired connection 1  17a62d6c-40f1-3924-adfa-ac724a883a83  ethernet  --   
"Wired connection 1" asi zodpovedá eth1, ktorá je DOWN. Výstup pre "Wired connection 2" (eth0) je v prílohe. O DNS hovorí len:
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.ignore-auto-dns:                   no
+ to isté pre IPv6.
13.4.2021 17:19 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Nejako som si nevšimol že by mi na akomkoľvek stroji dával systemd východzí DNS od Google, a to ani na Ubuntu. Odkiaľ máš tú informáciu?

Pred tým si písal že v /etc/resolv.conf máš uvedené DNS servery 172.17.25.101 a 172.17.27.201. Jedná sa o IP adresy pre pripojenie "Wired connection 2" z konfigurácie network manageru. Skontroluj si riadok ipv4.addresses v tvojej prílohe, a možno ti docvakne že ten stroj mal na sebe bežiaci DNS server (mimo systemd dns proxy počúvajúcom na localhoste 127.0.0.53).

No nič, do toho nmtui je pre teba zbytočné pozerať, ako ťa tak vidím.
13.4.2021 22:50 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
Nejako som si nevšimol že by mi na akomkoľvek stroji dával systemd východzí DNS od Google, a to ani na Ubuntu. Odkiaľ máš tú informáciu?

Niekde som to čítal. Aha, napr.: https://isc.sans.edu/forums/diary/Systemd+Could+Fallback+to+Google+DNS/22516/

Nelám nado mnou palicu :-) Áno, ten stroj kedysi mal sám na sebe bežiaci bind9 DNS server. A bola snaha nastaviť ten stroj tak, aby ho sám používal. Ale nie je to jedno? Zjavne existuje N možností ako Ubunťáckemu Linux-u povedať, ktorý DNS server má používať. A viaceré sú "legálne" a budú fungovať. Ja sa chcem len dopátrať k tomu, ako to väčšina ľudí robí. K riešeniu, ktoré by sa dalo nazvať "obvyklé".
14.4.2021 07:18 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Ako nastaviť DNS server na ubuntu 18.04.2 so systemd a NetworkManager-om?
To si ale čítal niečo iné. Písal si o východzom DNS serveri ktorý tam podľa teba vnútil systemd. To by tým pádom prebil lokálne nastavenie DNS alebo nastavenie prijaté z DHCP, a taká vec by už dávno obehla všetky bulváre ako Wired alebo Slashdot.

A v tom blogísku z roku 2017 píšu že systemd môže pridať GoogleDNS ak nemá žiadne DNS. A odkazuje sa to na dokumentáciu Dockeru kde je daná IP adresa len pri Dockerovom parametri --dns kde je vysvetlené že ak ho nezadáš, tak Docker použije Google DNS.

Docker ešte nebol začlenený do systemd, ale stálo by to za zváženie. Bulánci už v systemd fungujú.

No, držím ti palce.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.