Adott egy Debian Buster, több hálókártyával, hálókártyánként több vlannal, és esetenként vlan-onként több IP címmel.
Az egész a /etc/systemd/network -ben felkonfigurálva.
Időnként szeretnék ideiglenesen módosítani rajta, és használom a szokásos parancsokat:
ip addr add ...
ip route add ...
Szépen működnek is első ránézésre, de 1-2 nap után ezek a módosítások egyszerűen eltűnnek!
Gondolom, valami újra tölti az /etc/systemd/network alatti konfigokat. De miért, és mikor, és miért pont akkor? És hogy csináljak úgy változtatást, hogy azt csak én állítsam vissza?
Írjam bele mindig a konfigokba, aztán networkctl reload? Nincs valami "tisztább" módja?
- 270 megtekintés
Hozzászólások
Ha azt szeretnéd, hogy a systemd-networkd ne törölje az "idegen" "kézi" beállításokat akkor ezt meg kell adni a konfigban:
KeepConfiguration=
yes
https://github.com/systemd/systemd/issues/13555
https://github.com/systemd/systemd/pull/12511
Meg kell fontolni a használatát mert elég érdekes dolgokat okozhat. A normális az, hogy ha beleírod a konfigba a módosításokat.
Csak ezt nem mindig lehet megtenni, pl HA szoftver maga kezeli az secondary IP címeket, vagy egy dinamikus routing démon pl a routokat. Mert a kézzel felvett routekat is törli a networkd rrload :(.
Egyébként nem jellemző, hogy csak úgy magától újratölse a konfigot a networkd periodikusan, annak valami oka van, pl nincs ilyenkor link up/down?
Ezen segít az
IgnoreCarrierLoss=true
paraméter, mivel sajnos a networkd törli az ip-ket az interfészről ha lemegy downba alapból.
- A hozzászóláshoz be kell jelentkezni
Köszönjük - a hozzászólás mögött sok élettapasztalatot érzek!
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Köszi, ez valószínűleg segíteni fog.
A fizikai interfészen tuti nem volt up/down, azt jelezte volna a switch.
A log-ban összesen ennyi van a networkd-ről az utóbbi napokra vonatkozóan. Kb. ekkor állt vissza a konfigokban szereplő beállításokra.
Jul 20 15:01:08 **** systemd[1]: systemd-networkd-wait-online.service: Succeeded.
Jul 20 15:01:08 **** systemd[1]: systemd-networkd.service: Succeeded.
Jul 20 15:01:08 **** systemd-networkd[32499]: br-88aa2d484995: Gained IPv6LL
Jul 20 15:01:08 **** systemd-networkd[32499]: tun0: Gained IPv6LL
Jul 20 15:01:08 **** systemd-networkd[32499]: enp4s0.503: Gained IPv6LL
Jul 20 15:01:08 **** systemd-networkd[32499]: enp4s0.500: Gained IPv6LL
Jul 20 15:01:08 **** systemd-networkd[32499]: enp4s0: Gained IPv6LL
Jul 20 15:01:08 **** systemd-networkd[32499]: Enumeration completed
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:08 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:20 **** systemd-networkd[32499]: enp4s0.503: Configured
Jul 20 15:01:20 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:01:20 **** systemd-networkd[32499]: enp4s0.500: Configured
Jul 20 15:01:20 **** systemd-networkd[32499]: enp4s0: Configured
Jul 20 15:01:20 **** systemd-networkd-wait-online[32503]: ignoring: lo
Jul 20 15:02:41 **** systemd-networkd[32499]: br-88aa2d484995: Lost carrier
Jul 20 15:02:42 **** systemd-networkd[32499]: br-88aa2d484995: Gained carrier
Jul 20 15:02:42 **** systemd-networkd[32499]: br-88aa2d484995: Lost carrier
Jul 20 15:02:42 **** systemd-networkd[32499]: br-88aa2d484995: Gained carrie
Nem tudom, számít-e bármit, a br-88aa.. az egyik docker konténerhez tartozik.
- A hozzászóláshoz be kell jelentkezni
Igen sajnos logikai interfészeken is probléma a Lost carrier.
https://github.com/systemd/systemd/issues/11650
További áttekintésre javasolt keyword-ok :)
ConfigureWithoutCarrier=
RequiredForOnline=
BindCarrier=
ActivationPolicy=
- A hozzászóláshoz be kell jelentkezni
Miután véglegessé váltak a dolgok, és az alábbi konfig fájlt használtam hónapok óta (/etc/systemd/network/enp4s0.200.network)
[Match]
Name=enp4s0.200
[Network]
DHCP=no
Address=xxx.xx.xx.6/24
Address=192.168.150.7/24
Address=172.17.13.7/24
Address=172.17.130.7/24
Address=172.17.156.7/24
Address=172.17.172.7/24
Gateway=xxx.xx.xx.254
DNS=xxx.xx.xx.1
Domains=xxxx.xxxx.xx
[Route]
Table=second
Gateway=xxx.xx.xx.240
[RoutingPolicyRule]
DestinationPort=4444
Table=second
Ez működöt is szépen, a "second" táblában létrehozta a kívánt default route-ot, és a 4444-es portra menő kéréseket arrafelé küldte el.
Egészen a tegnapi újraindításig, mióta:
$ ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
$ ip route show table second
$ ip route show table main
default via xxx.xx.xx.254 dev enp4s0.200 proto static
default via xxx.xx.xx.240 dev enp4s0.200 proto static
xxx.xx.xx.0/24 dev enp4s0.200 proto kernel scope link src xxx.xx.xx.6
172.17.13.0/24 dev enp4s0.200 proto kernel scope link src 172.17.13.7
172.17.130.0/24 dev enp4s0.200 proto kernel scope link src 172.17.130.7
...
Vagyis a "second" nevű tábla helyett a "main" táblához ad hozzá egy extra default route-ot!!
Az routing policy meg szőrén szálán eltűnt.
Exra infó: A buster kernele helyett a backports-ból szedett 5.10-es kernelt használom, mert valami hardware-t nem kezelt le a busterben levő kernel.
De ez nem újdonság, már legalább egy éve backports-os kernel van rajta.
- A hozzászóláshoz be kell jelentkezni