关于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

[docker]macvlan实现双vlan互通的更多相关文章

  1. Docker Macvlan 应用部署

    Docker Macvlan 应用部署 MacVLAN有两种桥接模式 Bridge模式:不创建子接口的情况下直接去桥接物理接口.直接桥接到与宿主级的同网段. VLAN Bridge模式:创建子接口去桥 ...

  2. Docker Macvlan

    参考博客:https://blog.csdn.net/daye5465/article/details/77412619 一.Macvlan 交换机的vlan是根据端口来划分的,如果一个PC接入vla ...

  3. Docker Macvlan 介绍 or 工作原理

    Docker Macvlan Network Macvlan Network:属于Docker的网络驱动. Macvlan Network:Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识 ...

  4. 二层交换机当三层交换机,使用单臂路由实现二层交换机上的VLAN互通

    众多中小企业内部网络结构都很简单,仅仅是用一台交换机将所有员工机以及服务器连接到一起,然后通过光纤访问internet而已.当然为了保证部分主机的安全性以及分割内部广播包提高网络传输速度,采取诸如划分 ...

  5. 使用三层交换实现不同网段、不同 VLAN 互通

    上一篇实现了使用Trunk做跨交换机VLAN通信,这一篇就试试使用三层交换实现不同网段,不同VLAN间的通信. 实验拓扑 在一台三层交换机下面连接一台二层交换机,再在二层交换机下面连接两台VPC,地址 ...

  6. Docker Macvlan网络部署

    Macvlan Bridge模式 节点1创建 docker network create -d macvlan --subnet=172.100.1.0/24 --gateway=172.100.1. ...

  7. Docker Mysql数据库双主同步配置方法

    一.背景 可先查看第一篇<Docker Mysql数据库主从同步配置方法>介绍 二.具体操作 1.创建目录(~/test/mysql_test1): --mysql --mone --da ...

  8. [docker] macvlan最佳实战

    macvlan和ipvlan的对比 http://hicu.be/macvlan-vs-ipvlan macvlan ipvlan 参考: https://yq.aliyun.com/articles ...

  9. Docker 部署 RocketMQ 双主双从模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/96/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

随机推荐

  1. 007 关于Spark下的第二种模式——standalone搭建

    一:介绍 1.介绍standalone Standalone模式是Spark自身管理资源的一个模式,类似Yarn Yarn的结构: ResourceManager: 负责集群资源的管理 NodeMan ...

  2. idea模板注释

    类文件头部的注释 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#en ...

  3. go语言学习-函数

    函数声明 函数声明包括函数名,形参列表,返回值列表(可选),函数体组成 func test(parameters) (returns) { // ... } 其中 parameters 就是函数的形参 ...

  4. Codeforces.788C.The Great Mixing(bitset DP / BFS)

    题目链接 \(Description\) 有k种饮料,浓度Ai给出,求用最少的体积配成n/1000浓度的饮料. \(Solution\) 根据题意有方程 (A1x1+A2x2+...+Anxn)/[( ...

  5. json字符串转换对象的方法

    为了方便读者了解json的使用,读者直接粘贴下面代码看效果即可: var json1 = {'name':'小李','age':'11','sex':'女'}; console.log(json1.n ...

  6. db2 OLAP函数使用

    说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...

  7. protobuf 测试使用

    1       介绍 Protocol buffers are a flexible, efficient, automated mechanism for serializing structure ...

  8. 第一章 flex单词计数程序

    学习Flex&Bison目标, 读懂SQLite中SQL解析部分代码 Flex&Bison简介Flex做词法分析Bison做语法分析 第一个Flex程序, wc.fl, 单词计数程序 ...

  9. PID控制器(比例-积分-微分控制器)- I

    形象解释PID算法 小明接到这样一个任务: 有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水. 小明接到任务后就一直守在水 ...

  10. What’s Brewing for .NET Developers

    Microsoft hosted its premier fall developer event – Connect(); // 2016 in New York on November 16-17 ...