《Kubernetes网络权威指南》读书笔记 | Macvlan的救护员:IPvlan

本文介绍了《Kubernetes网络权威指南》中的IPvlan和Macvlan技术,特别关注它们在Linux和Docker中的使用,包括L2和L3模式的区别,以及如何在Docker网络中实现跨网络通信。
摘要由CSDN通过智能技术生成

书籍来源:《Kubernetes网络权威指南:基础、原理与实践》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:《Kubernetes网络权威指南》读书笔记 | 汇总_COCOgsta的博客-CSDN博客


Macvlan先天存在的不足:

  • 无法支持大量的MAC地址;
  • 无法工作在无线网络环境中。

1.9.1 IPvlan简介

与Macvlan类似,IPvlan也是从一个主机接口虚拟出多个虚拟网络接口。区别在于IPvlan所有的虚拟接口都有相同的MAC地址,而IP地址却各不相同。

Linux 内核3.19版本才开始支持IPvlan,Docker从4.2版本起能够稳定支持IPvlan。

IPvlan有两种不同的模式,分别是L2和L3。一个父接口只能选择其中一种模式,依附于它的所有子虚拟接口都运行在该模式下。

  1. L2模式

IPvlan L2模式和Macvlan bridge模式的工作原理很相似,父接口作为交换机转发子接口的数据。

  1. L3模式

L3模式下,IPvlan有点像路由器的功能。只要父接口相同,即使虚拟机/容器不在同一个网络,也可以互相ping通对方,因为IPvlan会在中间做报文的转发工作。

图1-30 IPvlan L3模式

需要在外部路由器上配置好对应的路由规则,否则IPvlan的网络是不能被外部直接访问的。

1.9.2 测试IPvlan

创建两个测试用的network namespace:

创建IPvlan的虚拟网卡接口,创建IPvlan虚拟接口的命令和Macvlan格式相同:

把IPvlan接口放到前面创建好的network namespace中:

给两个虚拟网卡接口配置不同网络IP地址,并配置好路由项:

测试两个网络的连通性:

1.9.3 Docker IPvlan网络

从Docker1.13版本开始加入了对IPvlan的支持,测试过程如下所示。

创建IPvlan的网络,需要在创建Docker网络时把网络驱动(-d)设置成ipvlan,同时设置IPvlan的工作模式为L3:

启动两个容器,发现在同一个IPvlan网络的两个容器可以互相ping通:

创建另外一个IPvlan网络,和前面的网络不在同一个广播域:

在新建的网络中运行容器,发现可以ping通前面网络中的容器:

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值