zoukankan      html  css  js  c++  java
  • vxlan和macvlan操作

    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

  • 相关阅读:
    窗口和消息
    输出文字
    《windows程序设计》第一章,建议想学API的每天看一章
    hdu 1008为何不对?求大神指导!
    课程设计(物体类),图片可能没有加载出来,自己运行一下就行了
    二叉树前序、中序、后序遍历相互求法
    哈希表工作原理
    c++中关于static关键字的问题
    Halcon学习笔记之缺陷检测(二)
    Halcon学习笔记之缺陷检测(一)
  • 原文地址:https://www.cnblogs.com/guarderming/p/9455959.html
Copyright © 2011-2022 走看看