ip netns 命令(备忘)

Linux Network Namespace

Linux Network Namespace 是实现容器化的基础
ip netns 是基于 Linux Network Namespace 的一个实用工具
这里熟悉下 ip netns 的使用,来理解如何 Linux 下的网络虚拟化

创建 1 个虚拟网络

# 创建一个名为 netns1 的 network namespace
sudo ip netns add netns1

# 使用 ip netns exec 命令进入 network namespace
sudo ip netns exec netns1 ip link list

# 进入 netns1 这个 network namespace ,把设备状态设置成 UP
sudo ip netns exec netns1 ip link set dev lo up

# 尝试 ping netns1 这个 network namespace 的 127.0.0.1
sudo ip netns exec netns1 ping 127.0.0.1

# 查看系统中有哪些 network namespace
ip netns list

# 删除 network namespace
sudo ip netns delete netns1

2 个虚拟网络互通

#!/bin/bash

# 创建 network namespace ns0 ns1
sudo ip netns add ns0
sudo ip netns add ns1

# 使用 veth pair 创建 2 张虚拟网卡;分别加到 ns0 ns1 wetowrk namespace
sudo ip link add veth0 type veth peer name veth1
sudo ip link set veth0 netns ns0
sudo ip link set veth1 netns ns1

# 绑定 ip
sudo ip netns exec ns0 ip link set dev lo up
sudo ip netns exec ns1 ip link set dev lo up
sudo ip netns exec ns0 ifconfig veth0 10.1.1.1/24 up
sudo ip netns exec ns1 ifconfig veth1 10.1.1.2/24 up

# 删除 network namespace
sudo ip netns delete ns0
sudo ip netns delete ns1

多个虚拟网络互通

#!/bin/bash

### centos
## yum install -y bridge-utils
### ubuntu
## apt-get install -y bridge-utils

# 添加网桥 br0
sudo brctl addbr br0

# 启动网桥 br0
sudo ip link set br0 up

# 创建 network namespace ns0 ns1 ns2
sudo ip netns add ns0
sudo ip netns add ns1
sudo ip netns add ns2

# 创建 veth peer
sudo ip link add veth0-ns type veth peer name veth0-br
sudo ip link add veth1-ns type veth peer name veth1-br
sudo ip link add veth2-ns type veth peer name veth2-br

# 将 veth 的一端移动到netns中
sudo ip link set veth0-ns netns ns0
sudo ip link set veth1-ns netns ns1
sudo ip link set veth2-ns netns ns2

# 绑定 ip
sudo ip netns exec ns0 ip link set dev lo up
sudo ip netns exec ns1 ip link set dev lo up
sudo ip netns exec ns2 ip link set dev lo up
sudo ip netns exec ns0 ifconfig veth0-ns 10.1.1.1/24 up
sudo ip netns exec ns1 ifconfig veth1-ns 10.1.1.2/24 up
sudo ip netns exec ns2 ifconfig veth2-ns 10.1.1.3/24 up

# 设置默认路由,可以通宿主机
sudo ip netns exec ns0 route add default gw 10.1.1.254 veth0-ns
sudo ip netns exec ns1 route add default gw 10.1.1.254 veth1-ns
sudo ip netns exec ns2 route add default gw 10.1.1.254 veth2-ns

# 将 veth 的另一端启动并挂载到网桥上
sudo ip link set veth0-br up
sudo ip link set veth1-br up
sudo ip link set veth2-br up
sudo brctl addif br0 veth0-br
sudo brctl addif br0 veth1-br
sudo brctl addif br0 veth2-br

# 给网桥设置 IP
sudo ip addr add 10.1.1.254/24 dev br0

# 删除网桥
sudo ifconfig veth0-br 0
sudo ifconfig veth1-br 0
sudo ifconfig veth2-br 0
sudo brctl delif br0 veth0-br
sudo brctl delif br0 veth1-br
sudo brctl delif br0 veth2-br
sudo ip link set br0 down
sudo brctl delbr br0

文章来源

https://blog.csdn.net/u013272009/article/details/125577607

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值