使用 Netavark 租用动态 IP

正如 Brent 宣布的,支持 DHCP 的 Netavark v1.6 和 Podman v4.5 已发布,现在您只需几个简单的步骤即可在 macvlan 网络中使用 DHCP。为了使用 macvlan 和 DHCP,您必须以 root 身份运行 Podman。

首先通过 systemd socket 启用 dhcp 代理

$ sudo systemctl enable --now netavark-dhcp-proxy.socket
Created symlink /etc/systemd/system/sockets.target.wants/netavark-dhcp-proxy.socket → /usr/lib/systemd/system/netavark-dhcp-proxy.socket.

现在只需创建一个 macvlan 网络并指定您的主机接口,这通常是您的外部接口。

$ sudo podman network create -d macvlan --interface-name enp9s0u2u1u2 mv1
mv1

确保提供正确的接口名称,您也可以使用不同的网络名称。

现在只需使用此网络运行您想要的任何容器

$ sudo podman run --rm --network mv1 -d --name test alpine top
894ae3b6b1081aca2a5d90a9855568eaa533c08a174874be59569d4656f9bc45

确认容器在您的本地子网中获得了 IP

$ sudo podman exec test ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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: eth0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 5a:30:72:bf:13:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.188.36/24 brd 192.168.188.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5830:72ff:febf:1376/64 scope link 
       valid_lft forever preferred_lft forever

最后,让我们看看 podman inspect 是否显示了正确的 IP 地址

$ sudo podman container inspect test --format {{.NetworkSettings.Networks.mv1.IPAddress}}
192.168.188.36

请记住,当您尝试连接到此 IP 时,您必须从另一台主机进行连接。从同一主机连接在 macvlan 中不起作用。

如您所见,使用新的 DHCP 功能非常容易。如果您之前使用 CNI 的 DHCP,现在可以迁移到 Netavark。如果您遇到任何问题,可以在 GithubPodman 通信渠道联系我们。

发表评论

订阅

输入您的电子邮件地址以接收来自本网站的电子邮件更新。

返回

您的消息已发送

警告
警告
警告。

分类


搜索