vxlan:
192.168.1.112 ———— 192.168.1.108 —— 192.168.1.109
192.168.1.112配置:
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
192.168.1.108配置:
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store=consul://192.168.1.112:8500 --cluster-advertise=ens33:2376
systemctl daemon-reload
systemctl restart docker.service
192.168.1.109配置:
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store=consul://192.168.1.112:8500 --cluster-advertise=ens33:2376
systemctl daemon-reload
systemctl restart docker.service
访问192.168.1.112:8500在网页上就可以看到添加进来的两个主机了
192.168.1.108配置:
docker network create -d overlay ov_net1 ——创建一个vxlan的网卡 (它会同步到192.168.1.109上 默认网段为10.0.0.0/24网段)
docker run -itd --name bbox1 --network ov_net1 busybox
docker exec bbox1 ip r (会看到两块网卡eth0、eth1)
通讯时会走172.17.0.0/16这块网卡 给所有overly提供通讯的
192.168.1.109配置:
docker run -itd --name bbox2 --network ov_net1 busybox
docker exec bbox2 ping -c 2 www.baidu.com ——跨网段访问
ln -s /var/run/docker/netns /var/run/netns
ip netns
ip netns exec 1-9f33003ff1 brctl show ——查看一下匿名空间就能看到它们走的是vxlan网络
ip netns exec 1-9f33003ff1 ip -d l show vxlan0 ——查看它们用的是哪个VLAN

docker network connect ov_net1 bbox3 ——如何想让不同的容器通讯添加相同的网卡

macvlan:

ip link show ens33 ——查看ens33
ip link set ens33 promisc on ——开启混杂模式 (两台机器都开启)
ip link show ens33

docker network create -d macvlan --subnet 172.16.86.0/24 --gateway 172.16.86.1 -o parent=ens33 mac_net1
docker network ls

docker run -itd --name bbox2 --ip=172.16.86.11 --network mac_net1 busybox

modinfo 8021q
modprobe 8021q ——添加802.1q模块

配置子接口
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
修改:
dhcp——manual
cp ifcfg-ens33 ifcfg-ens33.10

vi ifcfg-ens33.10
OTPROTO=none
NAME=ens33.10
DEVICE=ens33.10
IPADDR=192.168.23.11
PREFIX=24
NETWORK=192.168.23.0
ONBOOT=yes
VLAN=yes

cp ifcfg-ens33.10 ifcfg-ens33.20
vi ifcfg-ens33.20
OTPROTO=none
NAME=ens33.20
DEVICE=ens33.20
IPADDR=192.168.22.11
PREFIX=24
NETWORK=192.168.22.0
ONBOOT=yes
VLAN=yes

ifup ifcfg-ens33.10
ifup ifcfg-ens33.20

docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=ens33.10 mac_net10 ——创建macvlan网卡
docker network create -d macvlan --subnet=172.16.20.0/24 --gateway=172.16.20.1 -o parent=ens33.20 mac_net20
docker run -itd --name bbox10 --ip=172.16.10.10 --network mac_net10 busybox ——创建容器并且使用macvlan网卡
docker run -itd --name bbox20 --ip=172.16.20.10 --network mac_net20 busybox

ifconfig ens33.10 172.16.10.1 netmask 255.255.255.0
78 ifconfig ens33.20 172.16.20.1 netmask 255.255.255.0
79 iptables -t nat -A POSTROUTING -o ens33.10 -j MASQUERADE
80 iptables -t nat -A POSTROUTING -o ens33.20 -j MASQUERADE
81 iptables -A FORWARD -i ens33.10 -o ens33.20 -m state --state RELATE,ESTABLISHED -j ACCEPT
82 iptables -A FORWARD -i ens33.20 -o ens33.10 -m state --state RELATE,ESTABLISHED -j ACCEPT
83 iptables -A FORWARD -i ens33.10 -o ens33.20 -j ACCEPT
84 iptables -A FORWARD -i ens33.20 -o ens33.10 -j ACCEPT
85 docker exec -it bbox10 ping -c 2 172.16.20.10

vxlan和macvlan操作的更多相关文章

  1. kubernetes之flannel

    kubernetes网络通信 容器间的通信   pod内的容器通信(lo) Pod之间的通信   pod IP <-----> pod IP Pod与Service之间的通信 podIP ...

  2. docker 网络实践

    #docker 网络模式 环境 centos7. , Docker version -ce docker自带网络类型 bridge,host,none,container,overlay,macvla ...

  3. docker网络实践

    docker网络.md #docker 网络模式 环境 centos7.4 , Docker version 17.12.0-ce docker自带网络类型 bridge,host,none,cont ...

  4. DOCKER学习_005:Flannel网络配置

    一 简介 Flannel是一种基于overlay网络的跨主机容器网络解决方案,也就是将TCP数据包封装在另一种网络包里面进行路由转发和通信, Flannel是CoreOS开发,专门用于docker多机 ...

  5. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  6. 【Network】OVS VXLAN/GRE 实践

    参考资料: OVS/VXLAN/GRE参考 ovs vxlan IP overray_百度搜索 OVS操作总结-Neutron-about云开发 OpenStack OVS GRE/VXLAN网络_z ...

  7. Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  8. Neutron 理解(14):Neutron ML2 + Linux bridge + VxLAN 组网

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  9. 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN

    offload 现在,越来越多的网卡设备支持 offload 特性,来提升网络收/发性能.offload 是将本来该操作系统进行的一些数据包处理(如分片.重组等)放到网卡硬件中去做,降低系统 CPU ...

随机推荐

  1. 【转载】 C#中List集合使用First方法查找符合条件的第一个元素

    在C#的List集合相关操作中,很多时候需要从List集合中查找出符合条件的第一个元素对象,如果确认在List集合中一定存在符合条件的元素,则可以使用First方法来查找,First方法调用格式为Fi ...

  2. UnicodeDecodeError: 'utf-8' codec can't decode byte..问题

    解决UnicodeDecodeError: 'utf-8' codec can't decode byte..问题 问题描述: 问题分析: 该情况是由于出现了无法进行转换的 二进制数据 造成的,可以写 ...

  3. C++线程同步与互斥之互斥体

    抢红包练习 第一步:在第一个文本框中输入一个值,比如1000: 第二步:点击抢红包,同时创建3个线程,每个线程循环进行抢红包的操作,每次抢50; 第三步:使用Mutex进行线程控制,当第一个文本框中的 ...

  4. Nginx 操作响应头信息的实现

    前置条件:需要编译 ngx_http_headers_module 模块,才支持 header 头信息操作 add_header 意思为将自定义的头信息的添加到响应头,指令为 add_header n ...

  5. 【hbase】hbase的shell操作笔记

    HBase Shell $ ./bin/hbase shell # 进入交互界面 DDL操作: create:创建表(默认命名空间为default) # create '表名','列族1','列族2' ...

  6. 关于MySql升级JDBC架包导致时区问题报错(The server time zone value '?й???????' is unrecognized or represents more than one time zone)

    报错信息: The server time zone value '?й???????' is unrecognized or represents more than one time zone. ...

  7. commons-io之FileUtils、IOUtils

    原文:https://blog.csdn.net/justry_deng/article/details/93616705 commons-io简单说明:Common IO 是一个工具库,用来帮助开发 ...

  8. tornado项目工程

    项目模块基本架构如下: -------------application.py import tornado.web from views import index, login import con ...

  9. 使用 create-react-app 快速构建 React 开发环境

    在终端执行以下命令创建项目: 1.指定创建的项目位置(这里以桌面为例) cd Desktop 2.创建 React 项目 npx create-react-app my-app 3.进入项目并启动 c ...

  10. 微信小程序~基础组件

    (1)视图容器 名称 功能说明 movable-view 可移动的视图容器,在页面中可以拖拽滑动 cover-image 覆盖在原生组件之上的图片视图 cover-view 覆盖在原生组件之上的文本视 ...