您现在的位置是:首页 >技术交流 >veth pair网站首页技术交流
veth pair
veth pair(Virtual Ethernet Pair)是 Linux 内核提供的一种虚拟网络设备,用于连接两个网络命名空间(Network Namespaces)或虚拟环境。它总是成对出现,数据从一个设备进入,从另一个设备出来,类似于一根虚拟的网线。
veth pair 的特点
1、成对出现:
veth pair 由两个虚拟网络接口组成,一端发送的数据会从另一端接收。
例如:veth0 和 veth1 是一对,发送到 veth0 的数据会从 veth1 出来,反之亦然。
2、跨命名空间通信:
veth pair 通常用于连接不同的网络命名空间,实现命名空间之间的网络通信。
3、灵活性:
veth pair 可以像普通网络接口一样配置 IP 地址、MAC 地址、路由等。
4、轻量级:
完全由 Linux 内核实现,性能开销低。
veth pair 的常见用途
1、容器网络:
在 Docker、Kubernetes 等容器技术中,veth pair 用于连接容器的网络命名空间和宿主机的网络命名空间。
2、网络命名空间隔离:
用于在 Linux 中创建隔离的网络环境,实现网络资源的隔离和测试。
3、虚拟网络拓扑:
在虚拟化环境中,veth pair 可以用于构建复杂的虚拟网络拓扑。
4、网络功能测试:
用于测试网络配置、路由、防火墙规则等。
veth pair 的使用示例

1. 创建 veth pair
#sudo ip link add veth0 type veth peer name veth1
创建一对 veth pair,分别命名为 veth0 和 veth1。
2. 查看创建的 veth pair
#ip link show
输出中可以看到 veth0 和 veth1 两个接口。

3. 将veth1 移动到另一个网络命名空间
#sudo ip netns add ns1 # 创建网络命名空间 ns1/ns2
#sudo ip link set veth0 netns ns1 # 将 veth0 移动到 ns1 中,veth1移动到ns2中

4. 配置 IP 地址并启动接口
在命名空间 ns1 中配置 veth0:
#sudo ip netns exec ns1 ip addr add 10.0.0.1/24 dev veth0
#sudo ip netns exec ns1 ip link set veth0 up
在命名空间 ns2中配置 veth1:
#sudo ip netns exec ns2 ip addr add 10.0.0.2/24 dev veth1
#sudo ip netns exec ns2 ip link set veth1 up
5. 测试连通性
从命名空间ns1 ping 命名空间 ns2:
# ip netns exec ns1 ping 10.0.0.2
从命名空间 ns1 ping 命名空间2:
# ip netns exec ns2 ping 10.0.0.1






U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结