Kubernetes 网络 (2) veth pair

Submitted by Lizhe on Tue, 07/28/2020 - 02:55

veth 是虚拟以太网卡 ( Virtual Ethemet )的缩写。

veth 设备总是成对的,因此我们称之为 veth pair。 veth pair 常被用于 跨 network namespace 之间的通信,即分别将 veth pair 的两端放在不同的 namespace 里

20200728010538

仅有veth pair设备,容器是无法访问外部网络的。

从容器发出的数据包,实际上是直接进了 veth pair 设备的协议栈。

如果容器需要访问网络,则需要使用网桥等技术将 veth pair 设备接收的数据包转发出去。

 

sudo ip link add veth0 type veth peer name veth1

创建的 veth pair 在主机上表现为2块网卡,默认会创建在当前进程的命名空间内

20200728011042

 

这里的MTU默认是 1500,

20200728011715

可以看到默认的初始状态是 down,这就是为什么上一节中我们需要 设置它为 up 

 

lizhe@ubuntu:~$ sudo ip link set dev veth0 up
lizhe@ubuntu:~$ sudo ip link set dev veth1 up

20200728011936

 

配置ip

 

sudo ifconfig veth0 10.10.10.1/24

sudo ifconfig veth1 10.10.10.2/24 

 

20200728012705

 

如何查看某个 veth pair 两端的设备

20200728014456