采用macvlan绕过某些软件需要MAC授权的问题

news/2024/11/6 7:16:42 标签: macvlan, docker, MAC绑定, 授权

采用macvlan绕过某些软件需要MAC授权的问题

    • 一.背景介绍
    • 二.macvlan原理
      • 1. 支持多层网络架构
      • 2. 通过 MAC 地址进行区分
      • 3. 网络架构
      • 4. 直接与外部网络通信
      • 5. 限制与注意事项
      • 6. 实际应用场景
    • 三.操作步骤
      • 1.开启混杂模式[必须]
      • 2.创建macvlan网络
      • 3.创建容器
      • 4.安装软件并验证

一.背景介绍

macvlan_6">二.macvlan原理

Dockermacvlan 网络驱动程序允许容器直接连接到物理网络接口,使其能够像物理网络设备一样与网络上的其他设备通信。了解 macvlan 的原理对于掌握其使用方法及适用场景非常重要。以下是 macvlan 的关键原理:

1. 支持多层网络架构

macvlan 允许多个容器共享单个物理网络接口 (eth0 或其他),并通过不同的 MAC 地址进行通信。这使得多个容器可以在同一子网中各自拥有独立的 IP 地址。

2. 通过 MAC 地址进行区分

每个 macvlan 容器可以分配一个唯一的 MAC 地址,这样物理网卡可以识别并正确转发数据包。物理网络中的交换机使用 MAC 地址来转发帧到正确的目的地,这样容器之间的通信不会因为它们共享同一个物理网络接口而发生冲突。

3. 网络架构

  • 主机:运行 Docker 守护进程(daemon)的宿主机。
  • 物理网卡:宿主机上连接到物理网络的以太网接口,例如 eno3
  • macvlan 网络:在 Docker 中创建的虚拟网络,允许容器以 macvlan 的方式连接到物理网卡。

4. 直接与外部网络通信

由于容器具有自己的 MAC 地址和 IP 地址,它们可以直接与外部网络上的设备通信,不需要过多的中间处理或 NAT 操作。这适用于需要直接访问网络服务、设备或资源的场景。

5. 限制与注意事项

  • 容器与宿主机的通信macvlan 网络的一个限制是,容器与宿主机之间不能直接通信。如果需要容器能够与宿主机进行通信,可能需要使用其他网络模式(例如 bridge 网络)。
  • 路由和设置:在某些情况下,您可能需要设置具体的路由与防火墙规则,以确保容器通过宿主机的网络接口访问外部网络。
  • 混杂模式:使用 macvlan 网络时,通常需要将物理网卡设置为混杂模式,以允许它接收网络中的所有数据包。

6. 实际应用场景

  • 虚拟化环境:多个容器需要直接连接到特定的物理网络。
  • 需要单独网络配置的服务:如负载均衡、专用服务实例等。
  • 去中心化的部署:如 microservices,需要独立的 IP 以便进行服务发现等。

通过了解 macvlan 的原理,您可以更高效地利用 Docker 的网络功能,满足不同的网络需求。

三.操作步骤

1.开启混杂模式[必须]

sudo ip link set eno3 promisc on
ip link show eno3

macvlan_50">2.创建macvlan网络

docker network rm my_macvlan_network
docker network create -d macvlan \
    --subnet=192.168.10.0/24 \
    --gateway=192.168.10.254 \
    -o parent=eno3 \
    my_macvlan_network
  • eno3为可以联网的网卡
  • 192.168.10.254为eno3网卡的网关
  • 192.168.10.0为eno3所在的网段

3.创建容器

docker run -it --rm --network my_macvlan_network \
    --mac-address=00:e1:1e:8c:65:19 \
    --ip=192.168.10.116 \
	-v $PWD:/home -w /home \
    ghcr.io/intel/llvm/ubuntu2204_base /bin/bash
  • 00:e1:1e:8c:65:19 为获得授权的MAC地址

4.安装软件并验证



http://www.niftyadmin.cn/n/5740549.html

相关文章

成功解决WSL2上的Ubuntu22.04执行sudo apt-get update指令报错问题

问题:输入sudo apt-get update指令会显示如下报错 问题所在:Temporary failure in name resolution 显然是系统无法解析域名。这可能是 DNS 配置问题。 解决方案: 临时修改 DNS 配置 尝试手动修改 /etc/resolv.conf 文件来使用公共 DNS 服务…

通过Flink读写云原生数据仓库AnalyticDB PostgreSQL版(ADB PG)数据

本文介绍如何通过阿里云实时计算Flink版实时读写云原生数据仓库AnalyticDB PostgreSQL版数据。 背景信息 云原生数据仓库AnalyticDB PostgreSQL版是一种大规模并行处理(MPP)数据仓库服务,可提供海量数据在线分析服务。实时计算Flink版是基于…

使用Python编写一个微信机器人

最近心血来潮,想通过Python编写一个微信机器人。网上搜索了一下可以使用itchat这个包来完成: https://github.com/why2lyj/ItChat-UOS 需要注意的时普通的itchat包已经用不了了,因为微信在很久以前就关闭了通过网络登录的途径,但是…

【算法】Floyd多源最短路径算法

目录 一、概念 二、思路 三、代码 一、概念 在前面的学习中,我们已经接触了Dijkstra、Bellman-Ford等单源最短路径算法。但首先我们要知道何为单源最短路径,何为多源最短路径 单源最短路径:从图中选取一点,求这个点到图中其他…

Python——Selenium快速上手+方法(一站式解决问题)

目录 前言 一、Selenium是什么 二、Python安装Selenium 1、安装Selenium第三方库 2、下载浏览器驱动 3、使用Python来打开浏览器 三、Selenium的初始化 四、Selenium获取网页元素 4.1、获取元素的实用方法 1、模糊匹配获取元素 & 联合多个样式 2、使用拉姆达表达式 3、加上…

CSS中的背景色和前景色

目录 1 对比度的计算1.1 亮度计算1.2 对比度比率 2 在线计算对比度 在我们的样式设计中,通常会有背景色和前景色的概念。前景色我们通常用来设置文本的颜色,而背景色通常是文本的所在容器的颜色。比如如果我们把文本放在普通容器里,那普通容器…

[C++]——哈希(附源码)

目录 ​编辑 ​编辑 一、前言 二、正文 2.1 unorder系列关联式容器 2.1.1 unordered_map 2.1.1.1 unorderer_map的介绍 ①unordered_map的构造 ②unordered_map的容量 ③unordered_map的迭代器 ④unordered_map的元素访问 ⑤unordered_map的查询 ⑥unordered_map的修改操…

写文件回前端进行下载,报错:原因:CORS 头缺少 ‘Access-Control-Allow-Origin‘)

后端写文件返回前端&#xff0c;出现该错误。 解决 设置允许跨域 response.setHeader("Access-Control-Allow-Origin", "*"); 代码 后端 public void exportTemplate(HttpServletResponse response) { ArrayList<ActiveGifts> activeGifts new…