zoukankan      html  css  js  c++  java
  • [docker]macvlan实现双vlan互通

    关于vlan的冷知识

    vlan范围:0~4095
        0,4095 保留 仅限系统使用 用户不能查看和使用这些VLAN
        1 正常 Cisco默认VLAN 用户能够使用该VLAN,但不能删除它
        2-1001 正常 用于以太网的VLAN 用户可以创建、使用和删除这些VLAN
        1002-1005 正常 用于FDDI和令牌环的Cisco默认VLAN 用户不能删除这些VLAN
        1006-1024 保留 仅限系统使用 用户不能查看和使用这些VLAN
        1025-4094 扩展 仅用于以太网VLAN
    

    实验环境


    发现在workstation上不支持混杂模式,导致vlan不通

    在centos上

    - 在no1 no2上开启vlan功能
    modprobe --first-time 8021q
    modinfo 8021q
    
    - 在no1和no2上添加2个vlan
    ip link add link eth0 name eth0.10 type vlan id 10
    ip link set dev eth0.10 up
    
    ip link add link eth0 name eth0.20 type vlan id 20
    ip link set dev eth0.20 up
    
    
    - 在no1上操作docker
    docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=eth0.10 mac_net10
    docker network create -d macvlan --subnet=172.16.20.0/24 --gateway=172.16.20.1 -o parent=eth0.20 mac_net20
    
    docker run -itd --name b1 --ip=172.16.10.10 --network mac_net10 busybox
    docker run -itd --name b2 --ip=172.16.20.10 --network mac_net20 busybox
    
    
    - 在no2上操作docker
    docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=eth0.10 mac_net10
    docker network create -d macvlan --subnet=172.16.20.0/24 --gateway=172.16.20.1 -o parent=eth0.20 mac_net20
    
    docker run -itd --name b3 --ip=172.16.10.11 --network mac_net10 busybox
    docker run -itd --name b4 --ip=172.16.20.11 --network mac_net20 busybox
    
    - 测试
    通
    $ docker exec b3 ping 172.16.10.10
    PING 172.16.10.10 (172.16.10.10): 56 data bytes
    64 bytes from 172.16.10.10: seq=0 ttl=64 time=0.434 ms
    64 bytes from 172.16.10.10: seq=1 ttl=64 time=0.516 ms
    ^C
    
    不通
    $ docker exec b3 ping 172.16.20.10
    

    查看802.1q的数据包

    https://github.com/lannyMa/scripts/blob/master/802.1q-vlan.pcap

    使用单臂路由的模式使得2个vlan相通

    - 配置no3-容器的网关
    ip link add link eth0 name eth0.10 type vlan id 10
    ip link set dev eth0.10 up
    ip link add link eth0 name eth0.20 type vlan id 20
    ip link set dev eth0.20 up
    ifconfig eth0.10 172.16.10.1 netmask 255.255.255.0 up
    ifconfig eth0.20 172.16.20.1 netmask 255.255.255.0 up
    
    - 用n3的vlan10 ping n1的vlan20的地址
    $ docker exec b3 ping 172.16.20.10
    PING 172.16.20.10 (172.16.20.10): 56 data bytes
    64 bytes from 172.16.20.10: seq=0 ttl=63 time=0.573 ms
    64 bytes from 172.16.20.10: seq=1 ttl=63 time=0.576 ms
    64 bytes from 172.16.20.10: seq=2 ttl=63 time=0.555 ms
    

    Ubuntu版-vbox里做的,因为他的网卡支持混杂模式

    参考: Ubuntu16.04的docker阿里云安装: https://yq.aliyun.com/articles/110806

    apt-get install vlan
    
    ip link add link enp0s8 name enp0s8.10 type vlan id 10
    ip link set dev enp0s8.10 up
    
    ip link add link enp0s8 name enp0s8.20 type vlan id 20
    ip link set dev enp0s8.20 up
    
    
    docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=enp0s8.10 mac_net10
    docker network create -d macvlan --subnet=172.16.20.0/24 --gateway=172.16.20.1 -o parent=enp0s8.20 mac_net20
    
    docker run -itd --name b1 --ip=172.16.10.10 --network mac_net10 busybox
    docker run -itd --name b2 --ip=172.16.20.10 --network mac_net20 busybox
    
    
    docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=enp0s8.10 mac_net10
    docker network create -d macvlan --subnet=172.16.20.0/24 --gateway=172.16.20.1 -o parent=enp0s8.20 mac_net20
    
    docker run -itd --name b3 --ip=172.16.10.11 --network mac_net10 busybox
    docker run -itd --name b4 --ip=172.16.20.11 --network mac_net20 busybox
    
    
  • 相关阅读:
    ActiveMQ的消息模式——队列模式(Queue)
    在foxmail上添加阿里邮箱
    Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 错误解决
    博客园首页新随笔联系管理订阅订阅随笔- 89 文章- 0 评论- 3 Centos7开放及查看端口
    tomcat设置为开机自启动
    Tensorflow2疑难问题---2、tensorflow2.3的GPU版本安装
    Tensorflow2疑难问题---1、课程介绍
    tensorflow2的gpu的版本安装(一些核心点)
    此环境变量太大, 此对话框允许将值设置为最长2047个字符(解决方法)
    windows下cuda的安装
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8067226.html
Copyright © 2011-2022 走看看