• 基于MACVLAN配置VMWARE虚拟机中容器网络


    基于MACVLAN配置VMWARE虚拟机中容器网络

    测试部环境组 201711

    0 文档说明

    MACVLAN是docker的一种支持跨主机网络的driver。macvlan本身是linux kernel模块,功能是允许同一个物理网卡配置多个MAC地址,即多个interface,每个interface可以配置自己的IP。本质上是一种网卡虚拟化技术。最大的优点是性能极好。

    相对原使用pipework配置容器IP,更为方便,且容器重启后IP仍存在。

    测试部主要使用macvlan为各容器配置静态IP,使用方法总结如下。

    1 若docker主机为虚拟机,则开启对应VLAN的混杂模式

    图片略

     

    2 虚拟机可添加多个网卡,容器即可配置不同地址段IP

    配置步骤如下:

    2.1 假设当前ubuntu虚拟机配置的网桥br43,地址段为172.28.2.0/24

    修改模式:

    ip link set br0 promisc on

    创建network

    docker network create -d macvlan --subnet=172.28.2.0/24 --gateway=172.28.2.254 -o parent=br43 cslc-macvlan1

    虚拟机创建容器

    docker run -itd --name=u16-sie --hostname=u16-sie --net=cslc-macvlan1 --ip=172.28.2.205 172.28.2.2:4000/sie:171101 /bin/bash

     

    至此容器172.28.2.205与其他各环境,各虚拟机,办公网络均可互通。

     

    2.2 为虚拟机添加一个网卡,VLAN为TD_280

    ip addr show对照mac地址确定是哪一个接口eth?

    为网卡添加地址

    ip addr add 172.26.80.1/24 dev eth3

    ifconfig eth3 up

    ip link set eth3 promisc on

    创建第二个docker network

    docker network create -d macvlan --subnet=172.26.80.0/24 --gateway=172.26.80.254 -o parent=eth3 cslc-macvlan2

    虚拟机创建容器

    docker run -itd --name=u16-sie1 --hostname=u16-sie1 --net=cslc-macvlan2 --ip=172.26.80.205 172.28.2.2:4000/sie:171101 /bin/bash

    至此容器172.26.80.205与其他各环境,各虚拟机,办公网络均可互通。

     

    3 测试方法:

    外部ping容器ip

    ping 172.26.80.205

    ping 172.28.2.205

    容器ping外部ip

    docker exec u16-sie1 ping -c2 172.26.80.254

    docker exec u16-sie ping -c2 172.26.80.254

    docker exec u16-sie1 ping -c2 172.28.2.254

    docker exec u16-sie ping -c2 172.28.2.254

    docker exec u16-sie1 ping -c2 172.20.18.254

    docker exec u16-sie ping -c2 172.20.18.254

     

    说明:因macvlan通过主机网卡/网桥与外部通信,容器与所属主机之间无法ping。

     

  • 相关阅读:
    Ubuntu 指令汇总
    ROS环境下Pointgrey相机的配置方法
    BUG战斗史 —— 日期格式与字符串之间的转换
    Effective Java —— 使类和成员的可访问性最小化
    JDBC和桥接模式
    Effective Java —— 覆盖equals时总要覆盖hashCode
    AutoValue —— Generated immutable value classes
    Effective Java —— 覆盖equals时遵守通用约定
    Effective Java —— try-with-resources 优先于 try-finally
    Effective Java —— 消除过期的对象引用
  • 原文地址:https://www.cnblogs.com/DaweiJ/p/8462987.html
Copyright © 2020-2023  润新知