首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Systemd-networkd似乎找不到容器中的接口。

Systemd-networkd似乎找不到容器中的接口。
EN

Unix & Linux用户
提问于 2022-01-22 19:03:18
回答 1查看 443关注 0票数 1

我正试图在Ubuntu20.04.3上设置一个nspawe-容器。主机网络配置包含一个桥接口:

代码语言:javascript
复制
br0: flags=4163  mtu 1500
        inet *  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 * prefixlen 64  scopeid 0x0
        ether 41:8a:5b:d8:83:00  txqueuelen 1000  (Ethernet)
        RX packets 5914822  bytes 888728796 (888.7 MB)
        RX errors 0  dropped 449  overruns 0  frame 0
        TX packets 30323548  bytes 37836188291 (37.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

容器以以下方式开始:

代码语言:javascript
复制
systemd-nspawn -UbM helloworld --network-bridge=br0

启动容器时,将创建vb-helloworld接口:

代码语言:javascript
复制
vb-helloworld: flags=4163  mtu 1500
        inet6 fe80::c8fc:b8ff:fed1:176  prefixlen 64  scopeid 0x20
        ether ca:fc:b8:d1:01:76  txqueuelen 1000  (Ethernet)

容器中有一个接口host0,它应该由systemd-networkd,config /etc/systemd/network/host0.network来处理:

代码语言:javascript
复制
[Match]
Name=host0
[Network]
DHCP=false
Address=*:*:*:*::100/64
Gateway=fe80::1
DNS=2a01:4ff:*::*:1
Address=192.168.50.10/24
Gateway=192.168.50.1
DNS=192.168.50.2
ConfigureWithoutCarrier=yes
[Link]
MACAddress=f6:d9:2b:ba:7a:1d
ARP=true
RequiredForOnline=yes
[Address]
Address=*:*:*:*::100/64
Scope=global
[Route]
Gateway=fe80::1
Scope=global

容器具有以下接口:

代码语言:javascript
复制
host0: flags=4163  mtu 1500
        inet 169.254.214.0  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::f4d9:2bff:feba:7a1d  prefixlen 64  scopeid 0x20
        ether f6:d9:2b:ba:7a:1d  txqueuelen 1000  (Ethernet)
...

不幸的是,networkd似乎没有找到接口host0。没有分配地址,也没有分配ip4或ip6。当我将[Match]部分中的D11参数更改为*时,地址将分配给lo接口。

我做错了什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-01-22 21:37:56

Systemd已经提供了一个与host0接口匹配的networkd配置:

代码语言:javascript
复制
/usr/lib/systemd/network/80-container-host0.network

Networkd按顺序读取所有.network文件,第一个匹配文件获胜。(在ASCII中,顺序大致为0-9 A-Z a-z。)要使您的自定义配置具有优先级,必须在80-container-host0 (如50-custom-host0 )之前对其文件名进行排序。

(只有当两个文件的名称相同时,目录才重要--在这种情况下,/etc中的文件比/usr/lib中的同名文件具有优先级。)

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/687488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档