网站首页 > 技术教程 正文
此篇会以例子的方式介绍下linux 网络命名空间。
此例中会创建两个network namespace: nsa、 nsb, 一个网桥bridge0,nsa、 nsb中 添加网络设备veth,网络设备间通过网桥通信。简单介绍下网桥和veth概念。
网桥: 是一种使用软件实现的虚拟设备,可以将linux内部各个网络接口连接起来,将网络接口连接起来的作用是,一个网络接口接收到数据后,会复制到其他网络接口
veth: 是linux的一种虚拟网络设备,它有点类似于中间用一条网线连着的两张网卡,veth总是成对出现,通常用来连接不同网络命名空间(下面用简称ns), 一端连着ns1的网络协议栈,一端连着ns2的网络协议栈,一端发送的数据另一端会立刻收到。
具体实践
- 创建network namespace nsa、nsb
- 创建网桥bridge0,并设置其ip
- 添加veth 对 vetha1,vetha2
- 将vetha1添加到bridge0
- 添加vetha2到nsa,并设置其ip172.16.1.1
- 添加veth 对 vethb1,vethb2, 将vethb1添加到bridge0,vethb2添加到nsb,
设置vethb2 ip172.16.1.2
sudo ip link add vethb1 type veth peer name vethb2
sudo brctl addif bridge0 vethb1
sudo ip link set vethb1 up
sudo ip link set vethb2 netns nsb
sudo ip netns exec nsb ip link set vethb2 name veth0
sudo ip netns exec nsb ip link set veth0 up
sudo ip netns exec nsb ip addr add 172.16.1.2/16 dev veth0
测试nsa、nsb是否联通
这样执行完毕后在我的机器上从nsa ping nsb,没有反应
通过ip route get 查看数据包路由是正常的
经排查ping 不通原因是我主机上安装了 docker,FORWARD 链默认策略被 docker 设置成 drop
iptables -S | less检查规则:
解决方法是修改 FORWARD 的默认策略为 ACCEPT 放行:
参考:
https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/
https://gobomb.github.io/post/learning-linux-veth-and-bridge/
猜你喜欢
- 2025-07-09 Linux 系统管理大容量磁盘(2TB+)操作指南
- 2025-07-09 在linux目录行中找空目录(在linux目录行中找空目录的命令)
- 2025-07-09 群晖系统ssh服务开启和存储空间情况查询方法
- 2025-07-09 Linux文件系统结构全解析(linux中的文件系统包括哪几种)
- 2025-07-09 Linux运维-磁盘篇:磁盘扩充(1)(linux磁盘扩容怎么弄)
- 2025-07-09 VMware下LINUX的虚拟机增加磁盘空间
- 2025-07-09 Vmware虚拟机Linux系统磁盘空间扩容步骤
- 2025-07-09 【生产问题故障排查记录】Linux 删除日志文件后没有释放磁盘空间
- 2025-07-09 开发者必备!线上内存泄漏排查的 8 个 Linux 实战工具
- 2025-07-09 虚拟内存设置、解决linux内存不够问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)