随笔记录
目录
1. 背景介绍
2. 配置网络命令空间
3 验证
3.1 未网络命令空间外网卡配置IP
3.2 验证配置
3.2.1 在网络命令空间外接口启动iperf3
3.2.2 网络命令空间内启动iperf3 client
1. 背景介绍
2. 配置网络命令空间
1. 配置前[root@localhost SDK-V1.10.1.7]# ip netns exec netABC bash
Cannot open network namespace "netABC": No such file or directory
[root@localhost SDK-V1.10.1.7]# 2. 创建网络命令空间
# ip netns add <网络命令空间名>[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip netns add netABC
[root@localhost SDK-V1.10.1.7]# 3. 查看存在的网络命令空间
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip netns list
netABC
[root@localhost SDK-V1.10.1.7]# 4. 查询网络接口,并将接口添加到网络命令空间
# 查询网阔接口
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.1.22.73 netmask 255.255.255.0 broadcast 10.1.22.255inet6 fe80::5a11:22ff:fe9e:2888 prefixlen 64 scopeid 0x20<link>ether 58:11:22:9e:28:88 txqueuelen 1000 (Ethernet)RX packets 98650 bytes 112990563 (107.7 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 49070 bytes 4039655 (3.8 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 58 bytes 4946 (4.8 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 58 bytes 4946 (4.8 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0swift1f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ether 32:74:4f:81:e0:e2 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 847 dropped 0 overruns 0 frame 847TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ether f6:38:ce:dd:9f:ed txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:56:07:08 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# 5. 将指定网络接口添加到网络命令空间
# ip link set <网络接口> netns netABC[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip link set swift1f1 netns netABC
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip netns exec netABC bash
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig swift1f1 up
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig
swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet6 fe80::f438:ceff:fedd:9fed prefixlen 64 scopeid 0x20<link>ether f6:38:ce:dd:9f:ed txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 6 bytes 516 (516.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.7]#
root@localhost SDK-V1.10.1.7]# ip netns exec netABC bash
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig swift1f1 up
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig # 分配IP 前
swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet6 fe80::f438:ceff:fedd:9fed prefixlen 64 scopeid 0x20<link>ether f6:38:ce:dd:9f:ed txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 6 bytes 516 (516.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.7]# [root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip route # 配置Route 前
[root@localhost SDK-V1.10.1.7]# 6. 为网络命令空间中接口指定IP/Route
# 指定IP
# ifconfig <接口名> <IP/掩码>root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig swift1f1 11.1.1.77/24
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig
swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 11.1.1.77 netmask 255.255.255.0 broadcast 11.1.1.255inet6 fe80::f438:ceff:fedd:9fed prefixlen 64 scopeid 0x20<link>ether f6:38:ce:dd:9f:ed txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 15 bytes 1146 (1.1 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip route # 添加Route
11.1.1.0/24 dev swift1f1 proto kernel scope link src 11.1.1.77
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# 7. 退出网络命令空间
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# exit
logoutConnection closed.Disconnected from remote host(10.1.22.73-NDPP) at 10:47:57.Type `help' to learn how to use Xshell prompt.
[C:\~]$ 8. 删除网络命令空间
# ip netns delete <网络命令空间名称>
[root@localhost ~]#
[root@localhost ~]# ip netns delete netABC //删除网络命令空间
[root@localhost ~]#
[root@localhost ~]# ip netns list
[root@localhost ~]#
注意:不进入网络命令空间也可以进行以上配置。
# 不进入网络命令空间,进行以上配置,只需要在执行命令前添加
# ip netns exec <网络命令空间名称> <需要执行命令>比如查询 ip route
# ip netns exec netABC ip route# 如 启动网络命令空间中接口
# ip netns exec netABC ifconfig swift1f1 up等等。[root@localhost SDK-V1.10.1.9]# ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.1.22.73 netmask 255.255.255.0 broadcast 10.1.22.255inet6 fe80::5a11:22ff:fe9e:2888 prefixlen 64 scopeid 0x20<link>ether 58:11:22:9e:28:88 txqueuelen 1000 (Ethernet)RX packets 1182797 bytes 1628346524 (1.5 GiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 592699 bytes 123898394 (118.1 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 16755 bytes 381672557 (363.9 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 16755 bytes 381672557 (363.9 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0swift1f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ether 88:63:c5:ee:e2:52 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ether b2:c2:ae:e6:dc:47 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:56:07:08 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]# ip link set swift1f1 netns netABC
[root@localhost SDK-V1.10.1.9]# ip netns exec netABC ifconfig
[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]# ip netns exec netABC ifconfig swift1f1 up
[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]# ip netns exec netABC ifconfig
swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet6 fe80::b0c2:aeff:fee6:dc47 prefixlen 64 scopeid 0x20<link>ether b2:c2:ae:e6:dc:47 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 6 bytes 516 (516.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.9]# ip netns exec netABC ifconfig swift1f1 11.1.1.77/24
[root@localhost SDK-V1.10.1.9]# ip netns exec netABC ifconfig
swift1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 11.1.1.77 netmask 255.255.255.0 broadcast 11.1.1.255inet6 fe80::b0c2:aeff:fee6:dc47 prefixlen 64 scopeid 0x20<link>ether b2:c2:ae:e6:dc:47 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 9 bytes 726 (726.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]# ip netns exec netABC ip route
11.1.1.0/24 dev swift1f1 proto kernel scope link src 11.1.1.77
[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]#
[root@localhost SDK-V1.10.1.9]# ip route
default via 10.1.22.1 dev enp5s0 proto static metric 100
10.1.22.0/24 dev enp5s0 proto kernel scope link src 10.1.22.73 metric 100
192.168.2.0/24 via 10.1.22.1 dev enp5s0 proto static metric 100
192.168.4.0/22 via 10.1.22.1 dev enp5s0 proto static metric 100
192.168.30.0/24 via 10.1.22.1 dev enp5s0 proto static metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
[root@localhost SDK-V1.10.1.9]#
3 验证
3.1 未网络命令空间外网卡配置IP
# 注意:
# 因个人需求需要 网络命令空间内的网卡 swift1f1 与 网口命令空间外的网卡 swift1f0 互通,
所以需要配置同一网段。即:
swift1f0: 11.1.1.73/24
swift1f1: 11.1.1.77/24# 配置IP 前
[root@localhost SDK-V1.10.1.7]# ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.1.22.73 netmask 255.255.255.0 broadcast 10.1.22.255inet6 fe80::5a11:22ff:fe9e:2888 prefixlen 64 scopeid 0x20<link>ether 58:11:22:9e:28:88 txqueuelen 1000 (Ethernet)RX packets 100905 bytes 113208973 (107.9 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 50245 bytes 4158774 (3.9 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 94 bytes 10310 (10.0 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 94 bytes 10310 (10.0 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0swift1f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ether 32:74:4f:81:e0:e2 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 847 dropped 0 overruns 0 frame 847TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:56:07:08 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# # 配置IP
# ip addr add <IP>/<掩码> dev <网卡名>[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ip addr add 11.1.1.73/24 dev swift1f0
[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.1.22.73 netmask 255.255.255.0 broadcast 10.1.22.255inet6 fe80::5a11:22ff:fe9e:2888 prefixlen 64 scopeid 0x20<link>ether 58:11:22:9e:28:88 txqueuelen 1000 (Ethernet)RX packets 101034 bytes 113221673 (107.9 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 50314 bytes 4166866 (3.9 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 106 bytes 11330 (11.0 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 106 bytes 11330 (11.0 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0swift1f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 11.1.1.73 netmask 255.255.255.0 broadcast 0.0.0.0ether 32:74:4f:81:e0:e2 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 847 dropped 0 overruns 0 frame 847TX packets 8 bytes 858 (858.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255ether 52:54:00:56:07:08 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost SDK-V1.10.1.7]#
3.2 验证配置
3.2.1 在网络命令空间外接口启动iperf3
#启动 iperf3 Server
# iperf3 -B <网络命令空间外网卡IP> -p <Port> -i 1 -s[root@localhost SDK-V1.10.1.7]#
[root@localhost SDK-V1.10.1.7]# iperf3 -B 11.1.1.73 -p 54321 -i 1 -s
-----------------------------------------------------------
Server listening on 54321
-----------------------------------------------------------
3.2.2 网络命令空间内启动iperf3 client
# 网络命令空间内 启动 ipfer3 client# 1. 进入 网络命令空间# ip netns exec netABC bash# 2. 启动iperf3 client# iperf3 -c <iperf3 Server IP> -p <Server Port> -t <发包时间> # 发包时间单位 S[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# ip netns exec netABC bash
[root@localhost ~]#
[root@localhost ~]# ip netns list
netABC
[root@localhost ~]#
[root@localhost ~]# ip route list
11.1.1.0/24 dev swift1f1 proto kernel scope link src 11.1.1.77
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# iperf3 -c 11.1.1.73 -p 54321 -t 10
到此已完成网络命令空间配置