次のスクリプトを使用してLinux名前空間を作成しました。
read -p "ip : " ip
ip netns add myvpn
ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up
ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns myvpn up
ip addr add $ip/24 dev vpn0
ip netns exec myvpn ip addr add $ip/24 dev vpn1
ip netns exec myvpn ip route add default via $ip dev vpn1
iptables -A INPUT \! -i vpn0 -s $ip/24 -j DROP
iptables -t nat -A POSTROUTING -s $ip/24 -o ens3 -j MASQUERADE
sysctl -q net.ipv4.ip_forward=1
mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf
しかし、名前空間に完全なネットワークアクセス権がないようです。
ip netns exec myvpn ping www.google.com
ping: www.google.com: Temporary failure in name resolution
実際、「名前の確認が一時的に失敗しました」とはどういう意味なのかわかりません。
これを行う方法についてのアイデアはありますか?