docker macvlan虚拟化网络与宿主机通信问题解决——筑梦之路

这篇具有很好参考价值的文章主要介绍了docker macvlan虚拟化网络与宿主机通信问题解决——筑梦之路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

默认情况下各个macvlan之间可以通讯,但是不能与宿主机进行通讯!!

主要原因:为了安全而禁止互通

如宿主机ping容器的ip,尽管他们属于同一网段,但也是ping不通的,反过来也是。

这里用两个实例来说明如何解决这个问题。

实例一

环境说明:

宿主机: 10.0.1.80
容器:10.0.1.2
虚拟 IP(做路由实现通信):10.0.1.8
宿主机物理网卡名称:ens33

# 添加一个虚拟接口桥接到物理网卡
ip link add macvlan-proxy link ens33 type macvlan mode bridge

# 给虚拟接口配置ip
ip addr add 10.0.1.8/32 dev macvlan-proxy

# 启用虚拟接口
ip link set macvlan-proxy up

# 添加到容器网络的静态路由规则
ip route add 10.0.1.2/32 dev macvlan-proxy

此时,就可以实现宿主机和容器通信了

使用 ifconfig 查看是否有 macvlan-proxy 的网卡出现。
使用 route -n 查看是否有相关路由出现
10.0.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 macvlan-proxy
使用 ping 直接测试

 实例二

环境说明:

宿主机网络:192.168.100.100

容器网络:172.20.0.0/16

虚拟IP:172.20.1.2/32

宿主机物理网卡:ens32


ip link add macvlan-proxy link ens32 type macvlan mode bridge

ip addr add 172.20.1.2/32 dev macvlan-proxy

ip link set macvlan-proxy up

ip route add 172.20.1.2/16 dev macvlan-proxy

此处容器网络和宿主机不同网段,宿主机通过虚拟IP和容器网络进行通信

另一种方式:

环境说明:

宿主机网络:192.168.100.100

容器网络:172.20.0.0/16

虚拟IP:192.168.100.110/32

宿主机物理网卡:ens32


ip link add macvlan-proxy link ens32 type macvlan mode bridge

ip addr add 192.168.100.110/32 dev macvlan-proxy

ip link set macvlan-proxy up

ip route add 172.20.1.2/16 dev macvlan-proxy

设置转发

# 有固定公网ip地址
iptables -t nat -I POSTROUTING -s 172.20.0.0/16 -j SNAT --to-source 192.168.100.100
# 没有固定公网ip地址
iptables -t nat -A POSTROUTING  -s 172.20.0.0/16 -j MASQUERADE (伪装)


如需要宿主机网段和容器网段通信,则需要添加静态路由

ip route add 172.20.0.0/16 via 192.168.100.100 dev ens32

参考资料:

解决Docker macvlan网络与宿主机通讯问题_docker macvlan无法ping通网关_不会拯救世界的SuperMan的博客-CSDN博客

macvlan 网络 docker 容器与宿主机通信 - 运维学习记录

https://www.cnblogs.com/bakari/p/10893589.html文章来源地址https://www.toymoban.com/news/detail-733013.html

到了这里,关于docker macvlan虚拟化网络与宿主机通信问题解决——筑梦之路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 虚拟机中docker安装rabbitmq 宿主机不能访问rabbitmq管理界面问题解决

    1, MacOS的操作系统, 通过Vmware Fusion虚拟机软件, 安装了Centos7操作系统, 里面安装了docker engine(1.13.1); 2, 试验rabbitmq, 下载了rabbit:latest镜像 3, 通过如下命令启动rabbitmq 4, 启动之后, 在宿主机浏览器测试访问虚拟机中的rabbitmq http://192.168.88.100:15672/ 试验结果: 拒绝访问 1, 检查centos-l

    2024年02月10日
    浏览(10)
  • 什么是网络虚拟化 网络虚拟化简介

    这个概念产生的比较久了,VLAN,VPN, VPLS等 都可以归为网络虚拟化的技术。近年来,云计算的浪潮席卷IT界。几乎所有的IT基础构架都在朝着云的方向发展。在云计算的发展中,虚拟化技术一直是重要的推动因素。作为基础构架,服务器和存储的虚拟化已经发展的有声有色,

    2024年02月05日
    浏览(10)
  • Docker Compose网络系列--docker-compose连接到宿主机网络

    原文网址:Docker Compose网络系列--docker-compose连接到宿主机网络_IT利刃出鞘的博客-CSDN博客 说明 本文介绍如何实现docker-compose连接到宿主机网络。 需求场景 docker-compose.yml中的services下的容器是无法与宿主机网络连接的,让多个应用进行网络连接的方法:docker-compose.yml设置netwo

    2024年02月15日
    浏览(9)
  • pod,docker启动使用宿主机网络的方案

    这是一个Docker命令,用于在主机网络模式下运行一个名为\\\"identity\\\"的容器,并将容器内部的端口18092映射到主机上的端口18092。 解析该命令的各个部分: docker run :运行一个新的容器。 --net=host :使用主机网络模式,这意味着容器将与主机共享网络命名空间,可以直接使用主机

    2024年02月11日
    浏览(15)
  • mininet虚拟网络中的主机与宿主Ubuntu及因特网互通实现

    mininet虚拟网络中的主机与宿主Ubuntu及因特网互通实现

    环境: Win10(物理机),Vmware workstation ,Ubuntu(vm中的虚拟机),mininet 构建的虚拟网络环境说明: 在一win10的物理机中安装了vm平台,在vm中加载了一ubuntun系统,在改ubuntu系统中安装了mininet。 目标: 通过mininet 构建虚拟网络环境(使用python代码构建一个交换机,一个控制器

    2024年03月10日
    浏览(26)
  • Docker虚拟化概念

    Docker虚拟化概念

    1、虚拟化技术的概念 虚拟化技术主要是将物理资源转变为逻辑上可以管理的资源; 用以打破物理资源结构之间的壁垒; 让计算的原件运行在虚拟的基础之上;而不是直接运行在硬件设备资源上; 说白了就是硬件资源转变成虚拟资源; 虚拟化技术的底层是要进行虚拟的硬件

    2024年02月05日
    浏览(12)
  • 虚拟化及Docker基础

    虚拟化及Docker基础

    一、虚拟化 1.1 云端 1.2 云计算服务模式分层 1.3 虚拟化架构 1.3.1 寄居架构 1.3.2 原生架构 1.4 虚拟化产品 1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低) 1.4.2 半虚拟化 (虚拟机可以使用真机物理机) 1.4.3 全虚拟化 (直接使用物理硬件,性能高) 1.4.4 KVM和EXSI详解 二

    2024年04月28日
    浏览(8)
  • Oracle VM virtual Box 安装虚拟机并网络连接宿主机且能ping通外网

    Oracle VM virtual Box 安装虚拟机并网络连接宿主机且能ping通外网

    Oracle VM virtual Box新建虚拟机,按照下图所示新建虚拟机: 1.新建虚拟机 2.配置虚拟机相关信息,如系统名称,存储位置,系统类型,内存大小等 3.配置虚拟机磁盘大小,点击创建,创建虚拟机成功 4.虚拟机初始化设置 5.启动虚拟机,并且设置相关的信息 设置登录root登录密码

    2024年04月28日
    浏览(13)
  • 虚拟化容器化与docker

    虚拟化容器化与docker

    物理机 : 实际的服务器或者计算机。相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。 虚拟化 :是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算

    2024年02月16日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包