|
| 1 | +# Podman netns |
| 2 | + |
| 3 | +Podman 使用 [slirp4netns](https://github.com/rootless-containers/slirp4netns) 来实现 rootless 容器。 |
| 4 | + |
| 5 | +执行 `ps -ef | grep netns` 会看到 |
| 6 | + |
| 7 | +``` |
| 8 | +podman 3042657 1 0 18:46 pts/5 00:00:00 /usr/bin/slirp4netns --disable-host-loopback --mtu=65520 --enable-sandbox --enable-seccomp --enable-ipv6 -c -r 3 --netns-type=path /run/user/1000/netns/rootless-netns-0f5e9301cae49369572e tap0 |
| 9 | +``` |
| 10 | + |
| 11 | +你在宿主机上 `ip a` 是看不到 tap0 的。需要执行 `podman unshare nsenter --net=/run/user/1000/netns/rootless-netns-0f5e9301cae49369572e` 进入进程所在。 |
| 12 | +`podman unshare` 实际上调用 [unshare](../linux/unshare.md) 命令来创建子网。 |
| 13 | +因为每个用户所操作的 podman 区间是不一样的。 |
| 14 | + |
| 15 | +然后再执行 `ip a` 你就能看到所有 pod 相关的虚拟网络设备。 |
| 16 | + |
| 17 | +``` |
| 18 | +1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 |
| 19 | + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 |
| 20 | + inet 127.0.0.1/8 scope host lo |
| 21 | + valid_lft forever preferred_lft forever |
| 22 | + inet6 ::1/128 scope host |
| 23 | + valid_lft forever preferred_lft forever |
| 24 | +2: tap0: <BROADCAST,UP,LOWER_UP> mtu 65520 qdisc pfifo_fast state UNKNOWN group default qlen 1000 |
| 25 | + link/ether 2a:05:eb:55:67:12 brd ff:ff:ff:ff:ff:ff |
| 26 | + inet 10.0.2.100/24 brd 10.0.2.255 scope global tap0 |
| 27 | + valid_lft forever preferred_lft forever |
| 28 | + inet6 fd00::2805:ebff:fe55:6712/64 scope global dynamic mngtmpaddr |
| 29 | + valid_lft 86125sec preferred_lft 14125sec |
| 30 | + inet6 fe80::2805:ebff:fe55:6712/64 scope link |
| 31 | + valid_lft forever preferred_lft forever |
| 32 | +3: cni-podman1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 |
| 33 | + link/ether ea:4c:ad:e1:92:2b brd ff:ff:ff:ff:ff:ff |
| 34 | + inet 10.89.0.1/24 brd 10.89.0.255 scope global cni-podman1 |
| 35 | + valid_lft forever preferred_lft forever |
| 36 | + inet6 fe80::e84c:adff:fee1:922b/64 scope link |
| 37 | + valid_lft forever preferred_lft forever |
| 38 | +4: vethd15490c0@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master cni-podman1 state UP group default |
| 39 | + link/ether 42:da:15:77:d9:f8 brd ff:ff:ff:ff:ff:ff link-netnsid 0 |
| 40 | + inet6 fe80::40da:15ff:fe77:d9f8/64 scope link |
| 41 | + valid_lft forever preferred_lft forever |
| 42 | +10: vethf735a2dc@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master cni-podman1 state UP group default |
| 43 | + link/ether ca:05:68:9e:e4:4a brd ff:ff:ff:ff:ff:ff link-netnsid 1 |
| 44 | + inet6 fe80::c805:68ff:fe9e:e44a/64 scope link |
| 45 | + valid_lft forever preferred_lft forever |
| 46 | +``` |
0 commit comments