Docker MacVlan(Linux)个人简单理解与介绍

2023-11-10 21:50

本文主要是介绍Docker MacVlan(Linux)个人简单理解与介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Docker MacVlan(Linux)

一、介绍

macvlan是一种linux虚拟化网卡技术,可以将一块物理网卡虚拟化成为多块虚拟网卡,并且每个 虚拟网卡都可以将其虚拟mac并且指定相应的IP地址。但是需要linux内核支持macvlan技术。检测方法如下,如果出现报错或者不返回结果则当前系统不支持macvlan。

#!/bin/bash
lsmod | grep macvlan

1.1 工作模式

1.1.1 Private

private模式下于VEPA模式类似,都是各个子设备之间不可用进行通讯,而此模式不同的是,也不能使用外部交换机链接进行通讯,是完全隔离的!

1.1.2 Virtal Ethernet Port Aggregator

各个子设备无法直接进行通讯,需要外部交换机支持(需支持802.1Qbg/VPEA功能——数据可从接口接受并且可以回传),外部通信正常。

在这里插入图片描述

1.1.3 Bridge

桥接模式,各个虚拟的子网卡都被链接到一个虚拟网桥上面可以进行相互通讯,不需要外部交换机支持(内部虚拟)。

在这里插入图片描述

1.1.4 Passthrough

这种模式下会完全接管父接口的所有流量信息,并且每个父接口只允许一个macvlan设备进行连接。并且主接口必须改为混杂模式!

#!/bin/bash
#修改混杂模式命令:
ifconfig 查看网卡,记录网卡编号(XXXX)
ip link set XXXX promisc on
ifconfig 查看是否开启混杂模式,网卡属性中含有PROMISC字样即开启

在这里插入图片描述

二、配合namespace基本使用

#!/bin/bash
ip link add [link DEV] [ name ] NAME[ txqueuelen PACKETS ][ address LLADDR ][ broadcast LLADDR ][ mtu MTU ][ numtxqueues QUEUE_COUNT ][ numrxqueues QUEUE_COUNT ]type TYPE [ ARGS ]
option:
link DEVICE:指定要操作的物理设备
name NAME:指定新虚拟设备的名称
type TYPE:指定新设备的类型
bridge - Ethernet Bridge device
bond - Bonding device
dummy - Dummy network interface
ifb - Intermediate Functional Block device
ipoib - IP over Infiniband device
macvlan - Virtual interface base on link layer address (MAC)
macvtap - Virtual interface based on link layer address (MAC) and TAP.
vcan - Virtual Controller Area Network interface
veth - Virtual ethernet interface
vlan - 802.1q tagged virtual LAN interface
vxlan - Virtual eXtended LAN
ip6tnl - Virtual tunnel interface IPv4|IPv6 over IPv6
ipip - Virtual tunnel interface IPv4 over IPv4
sit - Virtual tunnel interface IPv6 over IPv4
gre - Virtual tunnel interface GRE over IPv4
gretap - Virtual L2 tunnel interface GRE over IPv4
ip6gre - Virtual tunnel interface GRE over IPv6
ip6gretap - Virtual L2 tunnel interface GRE over IPv6
vti - Virtual tunnel interface
nlmon - Netlink monitoring device
geneve - GEneric NEtwork Virtualization Encapsulation
macsec - Interface for IEEE 802.1AE MAC Security (MACsec)
numtxqueues QUEUE_COUNT:指定新设备的传输队列数
numrxqueues QUEUE_COUNT:指定新设备的接收队列数macvvlan创建
ip link add link DEVICE name NAME type { macvlan | macvtap } mode { private | vepa | bridge | passthru  [ nopromisc ] }
范例:ip link add eth0 dev macvlan1 type macvlan mode bridge 
创建一个于eth0链接的macvlan网卡,其是桥接模式
  1. 创建macvlan接口
    1. ip link add eth0 dev macvlan1 type macvlan mode bridge
  2. 创建namespace空间
    1. ip netns add namespace1 创建命名空间
    2. ip link set macvlan1 netns namespace1 将macvlan1绑定到命名空间1上
  3. 配置macvlan网络‘
    1. ip netns exec amespace1 ip addr add 10.0.0.2/24 dev macvlan1 配置macvlan ip

namespace :对于linux而言,其每个子进程类似的都有一个运行空间,这个运行空间内部的看起来就像一个独立的主机(虚拟化)子容器进程映射到父容器上,子容器与子容器相互隔离,但是父容器可以掌管控制子容器的进程。

在这里插入图片描述

ip netns exec namespace ping xxxx 使用指定的namespace运行网络命令

这篇关于Docker MacVlan(Linux)个人简单理解与介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/385488

相关文章

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py