码头工人系列5:网络名称空间管理

  

<强> ip命令是iproute软件的程序

root@host1 ~ # yum安装iproute - y   # rpm - q iproute root@host1 ~   iproute el7_7.2——4.11.0 - 25.。x86_64

<>强通过ip可以实现管理网络名称空间

root@host1 ~ # ip   用法:ip[选项]对象{命令|帮助}   ip (force)批文件名   对象:={链接地址| | addrlabel | | |路由规则马嘶| ntable |   隧道| tuntap | maddress | mroute | mrule | |监控xfrm |   netns | l2tp | 4 | macsec | tcp_metrics | |令牌netconf ila | |   多联机}   选择:={- v(版本)| - s (tatistics) | - d (etails) | - r esolve |   - h (uman-readable) | iec |   - f(家庭){inet | inet6 | ipx | dnet | mpls桥| |联系}|   4 | 6 | - | - | - b | 0 |   - l(哦){maximum-addr-flush-attempts} | br能源论坛[合作]|   - o (neline) | - t [imestamp] | ts(如果短)| - b(青岛)|(文件名)   rc (vbuf)(大小)| | - n (etns)名称——(ll) | - c [olor]} <李>

对象中的netns可以用来设置网络名称空间

<强> netns的使用帮助如下

[root@host1 ~] # ip netns帮助   用法:ip netns列表   ip netns添加名称   ip netns NETNSID组名称   ip [-] netns删除(名字)   ip netns识别(PID)   ip netns pid的名字   ip [-] netns exec[名字]cmd……   ip netns监控   ip netns list-id

<>强创建两个名称空间并查看一下

[root@host1 ~] # ip netns添加r1   [root@host1 ~] # ip netns添加r2 [root@host1 ~] # ip netns列表   r2   r1

<>强查看网络名称空间中有几个网卡

<李>

其实就是在网络名称空间中执行ip addr命令,需要加选项——

<李>

在网络名称空间执行命令是用执行

[root@host1 ~] # ip netns exec r1 ip addr   1:lo: & lt; LOOPBACK>mtu 65536 qdisc无操作状态下默认qlen 1000组   链接/回环00:00:00:00:00:00 brd 00:00:00:00:00:00

<强>创建网卡对

<李>

用的命令是ip链接

[root@host1 ~] # ip连接的帮助   用法:ip添加链接(链接DEV)[名字]的名字   (txqueuelen包)   (地址LLADDR)   (广播LLADDR)   (mtu mtu][指数IDX]   [numtxqueues QUEUE_COUNT]   [numrxqueues QUEUE_COUNT]   类型类型(ARGS)

<强>创建一对网卡,两端分别为veth2.1和veth2.2

[root@host1 ~] # ip链接添加名称veth2.1类型veth veth2.2同伴的名字      (root@host1 ~) # ip链接显示| grep veth2。*   7:veth2.2@veth2.1: & lt;广播、多播、M-DOWN>mtu 1500 qdisc无操作状态下默认qlen 1000模式默认组   8:veth2.1@veth2.2: & lt;广播、多播、M-DOWN>mtu 1500 qdisc无操作状态下模式默认组默认qlen 1000 <李>

类型veth:指定创建的是虚拟以太网卡

<强>为名称空间分配虚拟网卡

<李>

用的命令是ip链路群

<李>

一旦将某个虚拟网卡分配到某个名称空间,在物理机中就看不到这个网卡了

<强>将veth2.1保留在物理机,将veth2.2分配到r1名称空间

[root@host1 ~] # ip链路群veth2.2 netns r1

[root@host1 ~] # ip netns exec r1 ip addr   1:lo: & lt; LOOPBACK>mtu 65536 qdisc无操作状态下默认qlen 1000组   链接/回环00:00:00:00:00:00 brd 00:00:00:00:00:00   7:veth2.2@if8: & lt;广播,MULTICAST>mtu 1500 qdisc无操作状态下默认qlen 1000组   链接/醚4 e: f2:68:33:47: a1 brd ff: ff: ff: ff: ff: ff link-netnsid 0

[root@host1 ~] # ip链接显示| grep veth2。*   8:veth2.1@if7: & lt;广播,MULTICAST>mtu 1500 qdisc无操作状态下模式默认组默认qlen 1000

<强>也可以修改虚拟网卡的名称,例如将r1中的veth2.2改名为eth0

[root@host1 ~] # ip netns exec r1 ip链路群dev veth2.2名字eth0 [root@host1 ~] # ip netns exec r1 ip addr   1:lo: & lt; LOOPBACK>mtu 65536 qdisc无操作状态下默认qlen 1000组   链接/回环00:00:00:00:00:00 brd 00:00:00:00:00:00   7:eth0@if8: & lt;广播,MULTICAST>mtu 1500 qdisc无操作状态下默认qlen 1000组   链接/醚4 e: f2:68:33:47: a1 brd ff: ff: ff: ff: ff: ff link-netnsid 0

码头工人系列5:网络名称空间管理