之前学习研究了下 linux 内核中的网络设备,工作之余总结了几篇关于网络设备的使用和内核中网络数据包的走向。今天来一起讨论下 vEth设备以及 vEth 设备和 linux network namespace 在 docker、虚拟化中的基本应用。本文主要讲的是 vEth 设备的基本走向,以及跨 network namespace 的使用。vEth 与 bridge(网桥)、network namespace 的使用将在今后的文章中继续讨论。文中有理解有误的地方,还望各位读者积极指出。

一.Linux 内核中的 vEth 设备

1. vEth 设备的特点

图 1-1-1

二.实验验证(环境:Centos7,3.10 内核)

1. 只给 vEth0 配置 ip,vEth1 不配置 ip 实验(这里不给 vEth1 设备配置 IP 的原因 就是想看看在 vEth1 没有 IP 的情况下,vEth0 收到协议栈的数据后会不会转发给 vEth1)


图 2-1-1

图 2-1-2

图 2-1-3

图 2-1-4

图 2-1-5

图 2-1-6

图 2-1-7

图 2-1-8

2.给 vEth0 和 vEth1 都配置 ip 进行实验

图 2-1-1

图 2-2-1

图 2-2-2

图 2-2-3

图 2-2-4

图 2-2-5

图 2-2-6

图 2-2-7

图 2-2-8

三.不同 vEth 设备在不同 network namespace 间的数据收发

1. namespace 的特点

2. network namespace 之间通信实验

图 3-2-1

图 3-2-2

 

图 3-2-3

图 3-2-4

图 3-2-5

图 3-2-6

图 3-2-7

图 3-2-8

四. 下次分享预告

1. Bridge 设备介绍。

2. 使用 bridge 设备连接不同的 namespace 进行数据转发。

3. OVS、OVS 代替 bridge 设备进行不同 namespace 之间数据转发简介。

源链接

Hacking more

...