Fórum Root.cz
Hlavní témata => Software => Téma založeno: Marekuss 06. 05. 2020, 18:30:59
-
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.
-
nemůže mDNS za tento problém (https://forum.root.cz/index.php?topic=22943.msg329315#msg329315)? Avahi mám vyplé.
-
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.
-
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.
-
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