这篇文章将为大家详细讲解有关Linux虚拟网络设备veth-pair有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
引用>
01 veth-pair是什么
顾名思义,veth-pair就是一对的虚拟设备接口,和水龙头/桶设备不同的是,它都是成对出现的。一端连着协议栈,一端彼此相连着。如下图所示:
正因为有这个特性,它常常充当着一个桥梁,连接着各种虚拟网络设备,典型的例子像”两个名称空间之间的连接”,“桥机汇之间的连接”、“码头工人容器之间的连接”等等,以此构建出非常复杂的虚拟网络结构,比如OpenStack中子。
02 veth-pair的连通性
我们给上图中的veth0和veth2分别配上IP: 10.1.1.2和10.1.1.3,然后从veth0萍一下veth2。理论上它们处于同网段,是能ping通的,但结果却是平不通。
抓个包看看,<代码> tcpdump例数十分我veth0 代码>
root@ubuntu: ~ # tcpdump例数十分我veth0 tcpdump:详细输出镇压,使用- v或vv完整协议解码 听>回声1比;/proc/sys/net/ipv4/conf/veth2/accept_local 回声1比;/proc/sys/net/ipv4/conf/veth0/accept_local 回声0比;/proc/sys/net/ipv4/conf/all/rp_filter 回声0比;/proc/sys/net/ipv4/conf/veth0/rp_filter 回声0比;/proc/sys/net/ipv4/conf/veth2/rp_filter完了再平就行了。
root@ubuntu: ~ #萍我veth0 10.1.1.3 - c 2 从10.1.1.2 veth0萍10.1.1.3(10.1.1.3):56(84)字节的数据。 从10.1.1.3 64字节:icmp_seq=1 ttl=64=0.047 ms 从10.1.1.3 64字节:icmp_seq=2 ttl=64=0.064 ms 推荐- - - - - - - - - 10.1.1.3萍统计数据 2包传输,2,0%包丢失,3008毫秒的时间 rtt min/avg/max/mdev 0.113/0.025/0.072=0.047/我女士们对这个通信过程比较感兴趣,可以抓包看看。
对于veth0口:
root@ubuntu: ~ # tcpdump例数十分我veth0 tcpdump:详细输出镇压,使用- v或vv完整协议解码 听> root@ubuntu: ~ # tcpdump例数十分我veth2 tcpdump:详细输出镇压,使用- v或vv完整协议解码 听> root@ubuntu: ~ # tcpdump例数十分我瞧 tcpdump:详细输出镇压,使用- v或vv完整协议解码 听alt=" Linux虚拟网络设备veth-pair有什么用“>03两个名称空间之间的连通性强>
名称空间是Linux 2.6。x内核版本之后支持的特性,主要用于资源的隔离。有了名称空间,一个Linux系统就可以抽象出多个网络子系统,各子系统间都有自己的网络设备,协议栈等,彼此之间互不影响。
如果各个名称空间之间需要通信,怎么办呢,答案就是用veth-pair来做桥梁。
根据连接的方式和规模,可以分为“直接相连”、“通过桥相连”和“通过ov相连”。
3.1直接相连强>
直接相连是最简单的方式,如下图,一对veth-pair直接将两个名称空间连接在一起。
给veth-pair配置IP、测试连通性:
#创建名称空间 ip netns ns1 ip netns ns2 #创建一对veth-pair veth0 veth2 ip l veth0类型veth veth2同伴的名字 #将veth0 veth2分别加入两个ns ip l s veth0 netns ns1 ip l s veth2 netns ns2 #给两个veth0 veth2配上IP并启用 ip netns exec ns1 ip 10.1.1.2/24 dev veth0 ip netns exec ns1 ip l s veth0 ip netns exec ns2 ip 10.1.1.3/24 dev veth2 ip netns exec ns2 ip l s veth2 #从veth0平veth2 (root@localhost ~) # ip netns exec ns1萍10.1.1.3 萍10.1.1.3(10.1.1.3)56(84)字节的数据。 从10.1.1.3 64字节:icmp_seq=1 ttl=64=0.073 ms 从10.1.1.3 64字节:icmp_seq=2 ttl=64=0.068 ms 推荐- - - - - - - - - 10.1.1.3萍统计数据 15包传输,15,0%包丢失,时间14000毫秒 rtt min/avg/max/mdev 0.201/0.032/0.084=0.068/女士
Linux桥相当于一台交换机,可以中转两个命名空间的流量,我们看看veth-pair在其中扮演什么角色。
如下图,两对veth-pair分别将两个名称空间连到桥上。
Linux虚拟网络设备veth-pair有什么用