systemd-{networkd, resolved} + mDNSResponder -nastavenie systemu

Ahojte Linuxaci (:

Mam drobny problem s konfiguraciou systemd a mDNSResponder, a switch systemd-networkd nastaveni medzi AP a Client mode.
mDNSResponder je spusteny ako servisa zo systemd, ked sa nahodi network, bezi stale, nevypina sa.

Doska operuje v dvoch modoch, AP a Client, medzi tymito modmi sa prepina v sposobe:
(notConfigured) -> AP -> configured -> Client
(configured) -> Client

prechod medzi AP -> Client riesi skript s wpa_supplicant a generuje wpa_supplicant.conf

vAP mode:
* Doska je izolovana, nema ziadny externy internet/ethernet
systemd-resolved by mal resolvovat mena v tvare myhost.local, systemd-networkd maa zapnuty DHCP server a prideluje adresy zariadeniam co sa pripoja, mdnsresponder bezi na pozadi.
Zapnuty http server (localhost)
Doska nieje pripojena na externy internet, funguje ako izolovane AP

vClient mode:
* Doska je pripojena k externemu WiFi
systemd-networkd by mal byt v clientmode, + podporovat IPV4LinkLocal, adresy brat z DHCP
vypnuty http server



Momentalne to mam nastavene takto:

#/etc/nsswitch.conf
--
hosts: files myhostname mdns dns
--

#/etc/hosts
127.0.0.1 localhost.localdomain localhost

vAP mode:
#/etc/resolv.conf
nameserver 192.168.5.1

Otazka:
1) Ako prepinat medzi "network" konfiguraciami pre AP a Client mode na wlan s pouzitim systemd-networkd?
 a) vygenerovat wlan0_AP.network wlan0_Client.network a treti v */systemd/network/20-wlan0.network, coz ten treti bude symlink na jeden podla toho ci AP alebo Client?
 b) existuje nieco rozumnejsie ako a)?
2) Treba nejako extra nastavovat systemd-resolved pre AP a pre Client?

Trocha ma natahuje to systemd, mal som to riesene bez systemd, ale rozkaz znel jasne...

Diky
M.



Re:systemd-{networkd, resolved} + mDNSResponder -nastavenie systemu
« Odpověď #1 kdy: 07. 05. 2020, 14:57:24 »
nemůže mDNS za tento problém? Avahi mám vyplé.

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:systemd-{networkd, resolved} + mDNSResponder -nastavenie systemu
« Odpověď #2 kdy: 07. 05. 2020, 15:12:07 »
1) .network files maju prioritizaciu, ak sa volaju rovnako: najvacsiu ma ten v /etc, potom v /run a nakoniec v /usr. Takze ak to urobis tak, ze nekonfigurovane zariadenie berie konfig z /usr a nakonfigurovane z /etc a zapisujes to do rovnako nazvanych suborov, tak sa vies takto medzi nimi prepinat, postaci ti zapis/vymazanie konfigu do /etc a reload networkd.

2) spustanie sluzieb http/hostapd vies riesit bud targetom v samotnom systemd; nakonfigurovany device bude mat iny cielovy target ako nenakonfigurovany, alebo iba enable/disable service.

3) naco presne tam mas mDNSResponder? Resolved vie resolvovat a respondovat na mDNS sam o sebe. Akceptuje este aj Avahi, pokial chces publikovat dalsie sluzby. Applacky mDNSResponder som v Linuxe moc pouzivany nevidel.

4) Ked pouzivas resolved, do nsswitch si pridaj "resolve" (nss_resolve). Usetris si kontext switch pri resolvovani. Do /etc/resolv.conf sa rucne nevrtaj, manazuj ho cez resolved/networkd.

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:systemd-{networkd, resolved} + mDNSResponder -nastavenie systemu
« Odpověď #3 kdy: 07. 05. 2020, 15:22:51 »
Este mozno trochu filozofie:

Myslim, ze tento rozkaz, co znel jasne, je velmi rozumny.

Systemd veci totiz dokazu fungovat bez /etc. Viez zapiect default konfig do /usr (ktory je napr. v squashfs) a to, co si user nastavi, je v /etc (napr. v jffs2). Ked bude chciet zariadenie resetnut do defaultu, tak sa jednoducho odpali vsetko v /etc.

Nemusis sa spoliehat na nejake symlinky, alebo ze nieco do /etc treba dokopirovat odniekadial, aby to vobec nabehlo. Netreba.

Re:systemd-{networkd, resolved} + mDNSResponder -nastavenie systemu
« Odpověď #4 kdy: 11. 05. 2020, 16:56:52 »
Diky chalani za rady, problem ma nakoniec hlbsi kontext, systemd-networkd funguje obstojne, azna to ze nesplnuje potrebne RFC, bug je nahlaseny od 2018, zatial neopraveny. Necham si to ako zalozne riesenie.

Diky