首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

docker网络之macvlan

macvlan接口类型简单说类似于子接口,但相比子接口来说,macvlan接口拥有自己独立的mac地址,因此使用macvlan接口可以允许更多的二层操作。...macvlan有四种模式:VEPA,bridge,Private和Passthru macvlan接口会监听并接收链路上到达本mac地址的报文,因此macvlan(除bridge外)仅能向外部网络发送报文...设备不能直接接收在同一个物理网卡的其他macvlan设备的数据包,但是其他macvlan设备可以将数据包通过物理网卡发送出去,然后通过hairpin设备返回的给其他macvlan设备,用于管理内部vm直接的流量...passthru模式:该模式仅允许一块网卡上面部署一个macvlan接口,其他使用macvlan的容器将启动失败,但只要不使用macvlan,该容器还是可以正常启动。...macvlan同bridge一样,都是linux原生支持的,可以手动实现自己的macvlan通信,具体配置操作参见:linux 网络虚拟化:macvlan 总结:通过以上示例可以看出,macvlan类型的接口可以当作正常的

2.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

linux 虚拟网络_macvlan原理

macvlan是Linux操作系统内核提供的网络虚拟化方案之一,更准确的说法是网卡虚拟化方案。...macvlan应该很简单。 1.环境准备 假设有一块物理网卡,名称是enp0s8,连接到网络192.168.187.0/24网段,就在enp0s8上实验macvlan。...dev enp0s8macv.01 type macvlan ip link add link enp0s8 dev enp0s8macv.02 type macvlan ip link set enp0s8macv...3.macvlan作用 从以上的创建步骤可以看出,macvlan并没有创建网络,只是虚拟了网卡,共享了物理网卡所连接的外部网络,它的效果与桥接模式是一样的。...而macvlan只涉及到一个虚拟设备macvlan。可以看出,macvlan方案涉及到的虚拟设备更少,数据包处理所经过的点就更少,效率就更高。macvlan会出现在一些对网络性能要求极高的场景下.

1.5K20

Linux 虚拟网卡技术:Macvlan

这也就意味着,只要是从 Macvlan 子接口发来的数据包(或者是发往 Macvlan 子接口的数据包),物理网卡只接收数据包,不处理数据包,所以这就引出了一个问题:本机 Macvlan 网卡上面的 IP...Macvlan vs Bridge ---- 说到 Macvlan,就不得不提 Bridge,因为你可以把 Macvlan 看成一个简单的 Bridge。但他们之间还是有很大的区别的。...Macvlan Macvlan 有以下特点: 可让使用者在同一张实体网卡上设定多个 MAC 地址。...Macvlan 的工作模式 ---- Macvlan 共支持四种模式,分别是: VEPA(Virtual Ethernet Port Aggregator) 在 VEPA 模式下,所有从 Macvlan...Passthru 此种模式会直接把父接口和相应的MacVLAN接口捆绑在一起,这种模式每个父接口只能和一个 Macvlan 虚拟网卡接口进行捆绑,并且 Macvlan 虚拟网卡接口继承父接口的 MAC

21.1K52

Docker 网络 host、bridge、macvlan 工作原理

yangjunsss.github.io 摘要 Docker 作为容器的主流平台,不仅仅提供了虚拟化隔离,同时也配备的网络隔离技术,并使用不同的网络驱动满足不同的场景,这篇文章对 Docker 的3种网络实现Host、Bridge、Macvlan...模式 在一些特定场景中,比如一些传统应用或者监控应用需要直接使用 HOST 的物理网络,则可以使用 kernel 提供的 macvlan 的方式,macvlan 是在 HOST 网卡上创建多个子网卡,...macvlan 要求物理网卡支持混杂 promisc 模式并且要求 kernel 为 v3.9-3.19 和 4.0+,因为是直接通过子接口转发数据包,所以可想而知,性能比 bridge 要高,不需要经过...macvlan 支持四种模式: private:子接口之间不允许通信,子接口能与物理网络通讯,所有数据包都经过父接口 eth0 vepa(Virtual Ethernet Port Aggregator...所以模式都不能与 eth0 通信,并且 macvlan 在公有云上的支持并不友好。

2.8K11

Docker 网络模型之 macvlan 详解,图解,实验完整

上一篇文章我们详细介绍了 macvlan 这种技术,macvlan 详解,由于它高效易配置的特性,被用在了 Docker 的网络方案设计中,这篇文章就来说说这个。...下面我们做两个实验,分别验证相同 macvlan 网络和不同 macvlan 网络的连通性。...1.2 不同 macvlan 网络之间的通信 接下来,我们来看看不同 macvlan 网络之间的连通性,搭建以下的拓扑环境: ?...由于 macvlan 网络会独占物理网卡,也就是说一张物理网卡只能创建一个 macvlan 网络,如果我们想创建多个 macvlan 网络就得用多张网卡,但主机的物理网卡是有限的,怎么办呢?...在 Docker 中,macvlan 只支持 bridge 模式。 相同 macvlan 可以通信,不同 macvlan 二层无法通信,可以借助三层路由完成通信。

12.4K51

Linux 网络虚拟化 Macvlan(基于物理网络接口虚拟网络接口) 认知

——村上春树 物理网卡的分身术:Macvlan Macvlan(MAC Virtual LAN)是一种在 Linux 操作系统上实现的网络虚拟化技术。...通俗的来讲,macvlan 可以基于一个物理网卡设备,生成多个MAC地址和IP 地址不同的逻辑网卡 Macvlan五大工作模式解析 Macvlan出现之前,我们可以通过网卡别名(例如eth0:1)的方式为一块以太网卡添加多个...所有从Macvlan接口发出的流量,不管目的地址是什么,全部发送给父接口,类似于连接到一个特殊的交换机,这个交换机负责处理 Macvlan 接口与物理网络之间的通信,使得 Macvlan 接口可以与其他设备进行通信...在这种模式下,每个父接口只能和一个Macvlan网卡捆绑,并且Macvlan网卡继承父接口的MAC地址。...Macvlan 设备基本命令 在宿主机上创建 Macvlan 设备 ip link add veth2.1 link veth2 type macvlan mode bridge ip link set

15810

同宿主机暴露多个docker容器IP

可以在linux命令行执行lsmod | grep macvlan查看当前内核是否加载了该驱动;如果没有查到,可以通过modprobe macvlan来载入。...3 创建docker macvlan网络使用如下命令创建一个macvlan网络:docker network create -d macvlan --subnet=192.168.1.0/24 --gateway...基于macvlan网络创建容器docker run --net=macvlan --ip=192.168.1.12 --name test -itd alpine:3.6然后进入容器docker exec...3 创建macvlan bridge要实现宿主机和容器互通,需要在宿主机上再创建一个macvlan网络设备,将这个设备作为bridge,再修改路由使宿主机访问容器时指向该设备。...建立一个名为macbridge的macvlan设备,并分配ip:ip link add macbridge link eth0 type macvlan mode bridgeip addr add 192.168.1.11

1.9K50

Docker 容器跨主机多网段通信解决方案

一、MacVlan 实现Docker的跨主机网络通信的方案有很多,如之前博文中写到的通过部署 Consul服务实现Docker容器跨主机通信 Macvlan工作原理: Macvlan是Linux内核支持的网络接口...当容器需要直连入物理网络时,可以使用MacvlanMacvlan本身不创建网络,本质上首先使宿主机物理网卡工作在‘混杂模式’,这样物理网卡的MAC地址将会失效,所有二层网络中的流量物理网卡都能收到。...二、配置实例 实例1(实现容器基于macvlan的单网段跨主机通信) 实现效果: 两台centos 7.3,分别运行着docker服务; 两台docker服务器创建相同的一个MacVlan网络,使docker...实例2(基于macvlan的跨主机网络多网段的解决方案) 实现的效果如下: 两台centos 7.3,分别运行着docker服务; 每台宿主机创建了两个MacVlan网段供容器使用(172.10.16.0...-o parent=ens33.20 mac_net20 #创建一个macvlan网络,给其定义一个网段、网关及绑定到ens33.20 #接下来分别基于刚刚创建的macvlan网络运行一个容器 2、第二台

2.7K21

完善cni的ipam方案

上两周,为了优化k8s的网络性能,最终选择了macvlan+ptp方案,最终性能也达到标准了。但其实存在一个问题,macvlan的pod的IP其实不太好分配。...原来ip分配的问题 原来的方案直接使用官方的host-local进行IP分配,虽然很稳定,但不同的node节点需要配置一个不重叠的网段,最终需要底层网络预先分配一个比较大的网段作为macvlan的地址范围...namespace: kube-system labels: tier: node app: macvlan data: etcd.pem: | -----BEGIN...mountPath: /etc/kube-macvlan/ containers: - name: kube-macvlan...这样部署就很方便了,命令如下: kubectl apply -f macvlan-dpl.yaml 总结 通过这两周的实践,基本完成了开发cni网络插件的一整套流程,算是又开启了一门技能。

3.9K30

Docker网络——实现容器间通信、容器与外网通信以及容器的跨主机访问

网络方案的实现 Macvlan是一个新的尝试,是真正的网络虚拟化技术的转折点。...网络实际上就是使用了Linux提供的macvlan驱 动。...在两台主机上各创建macvlan网络 创建macvlan网络不同于桥接模式,需要指定网段和网关(因为要保证跨主机上网段和网关是相同的),并且都得是真实存在的。...会独占主机网卡,但可以使用vlan子接口实现多macvlan网络 vlan可以将物理二层网络划分为4094个逻辑网络,彼此隔离,vlan id取值为1~4094 在两台主机上分别使用创建的macvlan1...macvlan会独占主机的网卡的解决方案 前面说过macvlan会独占主机网卡,但可以使用vlan子接口实现多macvlan网络 vlan可以将物理二层网络划分为4094个逻辑网络,彼此隔离,vlan

9.8K10

Docker 跨主机网络方案分析

macvlan macvlan 就如它的名字一样,是一种网卡虚拟化技术,它能够将一个物理网卡虚拟出多个接口,每个接口都可以配置 MAC 地址,同样每个接口也可以配自己的 IP,每个接口就像交换机的端口一样...macvlan 的做法其实就是将这些虚拟出来的接口与 Docker 容器直连来达到通信的目的。...一个 macvlan 网络对应一个接口,不同的 macvlan 网络分配不同的子网,因此,相同的 macvlan 之间可以互相通信,不同的 macvlan 网络之间在二层上不能通信,需要借助三层的路由器才能完成通信...,如下,显示的就是两个不同的 macvlan 网络之间的通信流程。...weave weave 网络没有借助服务发现协议,也没有 macvlan 那样的虚拟化技术,只需要在不同主机上启动 weave 组件就可以完成通信。

2.3K90
领券