发布于 2023-05-30 04:54:20
要做到这一点,我只需在主机上添加一个额外的ipvlan接口,如果podman也使用ipvlan,则允许我在容器中进行对话。
10.0.0.0/1610.0.99.0/24。此子网应专门用于此主机上的容器。sudo podman network create -d ipvlan --subnet 10.0.0.0/16 --ip-range 10.0.99.0/24 --ipam-driver host-local podnet10.0.99.1。这是主机可以用来与容器对话的接口。sudo vim /etc/cni/net.d/podnet.conflist,并将rangeStart从10.0.99.1更改为10.0.99.2。要用systemd创建ipvlan接口,我必须
IPVLAN = podnet添加到文件的定义主机网络接口的[Network]部分,该部分将创建插入父节点的podnet网络接口。cat > /etc/systemd/network/podnet.netdev <<EOF
[NetDev]
Name = podnet
Kind = ipvlan
EOF
cat > /etc/systemd/network/podnet.network <<EOF
[Match]
Name = podnet
[Network]
IPForward = yes
Address = 10.0.99.1/24
EOF平心而论,同样的方法也适用于macvlan而不是ipvlan,但是我的部分网络无法通过MACVlan接口到达主机,因此我切换到IPVlan以获得更好的互操作性。
我面临的另一个问题是podman默认使用netavark,而netavark IPVlan支持仅在podman 4.5+中可用,而我还在使用4.3。将网络后端切换到cni解决了这个问题。
cat > /etc/containers/containers.conf <<EOF
[network]
network_backend = "cni"
EOF发布于 2023-05-20 19:52:52
不完全是您所要求的,但您可以非常简单地与主机共享相同的IP地址,请继续阅读,看看它是否对您有任何帮助:
您需要做的是向podman run添加--network=host --这实质上意味着您与主机共享相同的网络堆栈,因此您应该考虑以下几点:
https://serverfault.com/questions/1131478
复制相似问题