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

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效