[[emailprotected] ~ ]# ip routedefault via 192.168 . 1.1 de
使用ip netns命令操纵network namespace
创建一个network namespace名为nstest。
[[email protected] ~]# ip netns add nstest
列出系统中已存在的network namespace
[[email protected] ~]# ip netns list nstest
删除一个network namespace
[[email protected] ~]# ip netns delete nstest
在network namespace中执行一条命令
[[email protected] ~]# ip netns exec nstest ip addr 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 命令格局: ip netns exec [network namespace name] [command]
使用ip命令为network namespace配置网卡。
当使用ip netns add命令创建一个network namespace后,就拥有了一个独立的网空间,可以按照需求来配置网络空间,如添加网卡,配置IP,设置路由法则等,当使用ip命令创建一个network namespace时,会默认创建一个回环设备(loopback interface:lo)。该设备默认不启动,用最好将其启动。
[[email protected] ~]# ip netns exec nstest ip link set dev lo up
在主机上创建两张网卡veth-a和veth-b
[[email protected] ~]# ip link add veth-a type veth peer name veth-b
将veth-b设备添加到nstest这个network namespace中,, veth-a留在主机中
[[email protected] ~]# ip link set veth-b netns nstest
此刻nstest这个network namespace就有了两块网卡lo和veth-b,来验证一下。
[[email protected] ~]# ip netns exec nstest ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 4: [email protected]: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 link/ether 4e:3c:eb:70:76:76 brd ff:ff:ff:ff:ff:ff link-netnsid 0
此刻可以为网卡分配IP并启动网卡了。
在主机上为veth-a配置IP并启动
[[email protected] ~]# ip addr add 10.0.0.1/24 dev veth-a [[email protected] ~]# ip link set dev veth-a up
为nstest中的veth-b配置IP并启动。
[[email protected] ~]# ip netns exec nstest ip addr add 10.0.0.2/24 dev veth-b [[email protected] ~]# ip netns exec nstest ip link set dev veth-b up
给两张网卡配置了IP后,会在各自的network namespace中生成一条路由,用ip route或route -a命令检察一下。
[[email protected] ~]# ip route default via 192.168.1.1 dev ens33 proto static metric 100 10.0.0.0/24 dev veth-a proto kernel scope link src 10.0.0.1 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.220 metric 100 在nstest network namespce中 [[email protected] ~]# ip netns exec nstest ip route 10.0.0.0/24 dev veth-b proto kernel scope link src 10.0.0.2
这两条路由表白的意义是目的地点为10.0.0.0/24网络的IP包分袂从veth-a和veth-b发出。此刻nstest这个network namespace有了本身的网卡,IP地点,路由表等信息,俨然成了一台小型的虚拟机,测试一下它的连通性,以查抄配置是否正确。
从主机的veth-a网卡ping nstest network namespace的veth-b网卡。
[[email protected] ~]# ping 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.429 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.116 ms ^C --- 10.0.0.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.116/0.272/0.429/0.157 ms
从nstest network namespace的veth-b网卡ping主机的veth-a网卡
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32821.html
- 上一篇:selection只有一个的
- 下一篇:那么就还可以继续相同操作