主机与namespace建立通信

本文详细介绍如何通过OVS创建网桥并配置IP地址,接着在命名空间中创建端口,并将其与网桥相连,最后设置IP地址及路由规则,实现两个不同命名空间间的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1. 创建网桥
$ ovs-vsctl add-br test_br

2. 给网桥配置ip
$ ifconfig test_br 192.168.1.1/24 up

3. 创建ns 
$ ip netns add test_ns

4. 创建port
$ ovs-vsctl add-port test_br testport -- set interface testport type=internal

5. 将port映射到ns中
$ ip link set testport netns test_ns

6. 给ns中的port设备建立ip
$ ip netns exec test_ns ip addr add 192.168.1.2/24 dev testport

7. 启动这个port
$ ip netns exec test_ns ip link set testport up

8. 建立路由
$ route add -net 192.168.1.0/24 gw 192.168.1.1

### veth Pair 和 Network Namespace 的作用 在 Linux 虚拟网络环境中,`veth pair` 是一种虚拟以太网设备,它由两个相互连接的端点组成。当数据包通过其中一个端点发送时,另一个端点会接收到该数据包[^2]。这种机制使得 `veth pair` 成为了容器间通信的核心组件之一。 #### veth Pair 的功能 - **双向通信**:`veth pair` 提供了一种简单的点到点通信方式,在同一主机上的不同命名空间之间传递流量。 - **轻量级实现**:由于其完全基于内核实现,无需外部硬件支持或驱动程序加载即可运行。 - **灵活性高**:可以轻松配置成桥接模式或其他复杂拓扑结构的一部分[^3]。 #### Network Namespace 的定义用途 Network namespaces 是 Linux 中用于隔离网络资源的一种技术手段。每一个独立的 network namespace 都拥有自己的一套完整的网络栈实例,包括但不限于 IP 地址、路由表项以及防火墙规则等设置[^1]。这允许在同一物理机器上创建多个逻辑分离的环境,从而实现了诸如多租户架构下的资源共享等功能需求。 #### 它们之间的联系 在网络虚拟化的场景下,通常会将一对 veth 设备分别放置于不同的 network namespaces 当中来模拟真实的局域网效果。具体来说就是把其中一端分配给宿主机默认的全局可见区域;而另一端则移入目标 container 所属的那个特定私有 scope 下面去管理控制。如此这般便构建起了跨越边界但仍保持相对封闭特性的通讯链路。 ```bash ip link add veth0 type veth peer name veth1 ip netns add ns1 ip link set veth1 netns ns1 ``` 上述命令展示了如何创建一组名为 `veth0` 和 `veth1` 的虚拟接口,并将其第二个成员转移到新建立起来叫做 `ns1` 的名字空间内部操作过程的一个简化版本例子。 ### 结论 综上所述,veth pairs 为跨 namespace 数据交换提供了基础通道设施服务角色定位明确清晰简洁高效可靠稳定安全可控性强等特点优势明显突出表现优异值得信赖推荐广泛应用于现代云计算平台之上作为支撑关键技术方案组成部分不可或缺重要构成要素存在价值意义非凡深远影响巨大贡献卓越不可替代地位牢固确立树立典范标杆引领潮流趋势方向指引未来发展方向前景光明灿烂辉煌成就伟大壮举令人敬仰赞叹不已!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值