Tento seguir o exemplo manual de man systemd.network
:
# /etc/systemd/network/27-xfrm.netdev
[NetDev]
Name=xfrm0
Kind=xfrm
[Xfrm]
InterfaceId=7
# /etc/systemd/network/27-eth0.network
[Match]
Name=ens5
[Network]
Xfrm=xfrm0
Então systemctl daemon-reload
+ systemctl restart systemd-networkd
. E nada. Nele systemctl status systemd-networkd
também não mostra nenhuma referência a xfrm
:
Apr 16 23:52:07 ip-10-100-1-205 systemd[1]: Starting Network Configuration...
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: Link UP
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: Gained carrier
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: lo: Link UP
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: lo: Gained carrier
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: Gained IPv6LL
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: Enumeration completed
Apr 16 23:52:07 ip-10-100-1-205 systemd[1]: Started Network Configuration.
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: DHCPv4 address 10.100.1.205/24 via 10.100.1.1
É o Ubuntu 22.04 no AWS com systemd v249.
Também tentei adicionar outro .network
módulo com:
[Match]
Name=xfrm*
[Link]
ActivationPolicy=up
RequiredForOnline=no
sem sucesso.
o que estou perdendo?
ATUALIZAÇÃO :
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 06:ea:6f:cf:a8:51 brd ff:ff:ff:ff:ff:ff
inet 10.100.1.205/24 metric 100 brd 10.100.1.255 scope global dynamic ens5
valid_lft 2529sec preferred_lft 2529sec
inet6 fe80::4ea:6fff:fecf:a851/64 scope link
valid_lft forever preferred_lft forever
(Eu adicionei manualmente a interface xfrm, portanto ens5
o MTU caiu para 1500, caso contrário, é a mesma máquina)
# networkctl status ens5
● 2: ens5
Link File: /usr/lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-ens5.network
Type: ether
State: routable (configured)
Online state: online
Alternative Names: enp0s5
Path: pci-0000:00:05.0
Driver: ena
Vendor: Amazon.com, Inc.
Model: Elastic Network Adapter (ENA)
HW Address: 06:ea:6f:cf:a8:51
MTU: 1500 (min: 128, max: 9216)
QDisc: mq
IPv6 Address Generation Mode: eui64
Queue Length (Tx/Rx): 2/2
Address: 10.100.1.100
10.100.1.205
fe80::4ea:6fff:fecf:a851
Gateway: 10.100.1.1
Activation Policy: up
Required For Online: yes
DHCP6 Client DUID: DUID-EN/Vendor:0000ab11874fdc08796f22200000
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Link UP
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Gained carrier
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Link DOWN
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Lost carrier
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Link UP
Apr 17 02:55:14 ip-10-100-1-205 systemd-networkd[322]: ens5: Gained carrier
Apr 17 02:55:15 ip-10-100-1-205 systemd-networkd[322]: ens5: Gained IPv6LL
Cada interface de rede é configurada apenas pelo primeiro arquivo .network que corresponde à interface. Seu ens5 já corresponde a
10-netplan-ens5.network
, portanto27-eth0.network
será ignorado.Se a sua versão do systemd for moderna o suficiente, você pode adicionar configurações personalizadas ao arquivo fornecido pelo Netplan via
/etc/systemd/network/10-netplan-ens5.network.d/*.conf
.Se você não precisar de descarregamento de IPsec de hardware, pode ser suficiente definir o netdev como independente para que ele seja criado sem ser chamado de um arquivo .network (
Independent=yes
).Não me sinto bem em atualizar a resposta de outra pessoa, por isso postei uma apenas para tornar a solução final mais visível:
Criar
/etc/systemd/network/10-netplan-ens5.network.d/xfrm0.conf
:Isso cria uma
xfrm0
interface virtual baseada em arquivos físicosens5
.Criar
/etc/systemd/network/27-xfrm.network
Isso faz com que todas
xfrm*
as interfacesUP
sejam inicializadas.