美文网首页
docker 搭建macvlan 网络

docker 搭建macvlan 网络

作者: 北极企鹅ys | 来源:发表于2018-08-06 15:40 被阅读0次

    docker 搭建macvlan 网络

    简单说,macvlan就是在宿主的网卡设置多个vlan信息,根据走的网卡不同,并带有不行的vlan标记。

    交换机需要支持

    macvlan需要交换机上有几个设置:

    • 连接宿主的交换机接口需要改为 Trunk 模式。(这样才能多vlan通过这个口通讯)
    • 交换机上添加macvlan设置的相应vlan信息。
    • 三层交换机上设置各个vlan的网关地址。并实现vlan间互联。

    安装

    环境介绍

    宿主机IP 宿主机vlan macvlan IP vlan 号
    192.168.53.11 233 172.20.30.x 30
    192.168.53.12 233 172.20.19.x 19

    实时生效安装

    yum install -y epel-release
    yum install -y vconfig
    加载模块哦
    modprobe 8021q
    lsmod |grep -i 8021q
    网卡开启混合模式
    ip link set em1 promisc on
    使用vconfig命令配置vlan 
    vconfig add em1 233 
    vconfig add em1 30   # 另外一台设置  vconfig add em1 19
    在em1接口上配置两个VLAN 
    vconfig set_flag em1.233 1 1 
    vconfig set_flag em1.30 1 1   # 另外一台 vconfig set_flag em1.19 1 1
    
    ifconfig em1 0.0.0.0 
    ifconfig em1.233 192.168.53.11 netmask 255.255.255.0 up 
    ifconfig em1.30 172.20.30.2 netmask 255.255.255.0 up 
    

    这样一个临时配置就可以了, 配置docker的网络就可以,docker配置网络的命令后面一起发吧,

    上面属于临时配置,机器重启配置就没有了,不适合生产。

    永久配置

    um install -y epel-release
    yum install -y vconfig
    

    添加模块
    vim /etc/rc.d/rc.local 添加

    /sbin/modprobe 8021q  
    

    网卡开启混合模式

    echo "PROMISC=yes" >> /etc/sysconfig/network-scripts/ifcfg-em1
    

    修改王凯配置文件
    vim /etc/sysconfig/network-scripts/ifcfg-em1

    DEVICE=em1
    NAME=em1
    TYPE=Ethernet
    BONDING_MASTER=yes
    ONBOOT=yes
    BOOTPROTO=none
    PEERDNS=yes
    PROMISC=yes
    

    生成 macvlan 网卡

    vim /etc/sysconfig/network-scripts/ifcfg-em1.233

    DEVICE=em1.233
    NAME=em1.233
    ONBOOT=yes
    IPADDR=192.168.53.11
    NETMASK=255.255.255.0
    GATEWAY=192.168.53.1
    BOOTPROTO=static
    VLAN=yes
    NM_CONTROLLED=no
    

    vim /etc/sysconfig/network-scripts/ifcfg-em1.30

    DEVICE=em1.30
    NAME=em1.30
    ONBOOT=yes
    BOOTPROTO=static
    VLAN=yes
    NM_CONTROLLED=no
    

    另外一台 其他配置都一样, ifcfg-em1.30 网卡信息修改为 ifcfg-em1.19 即可。

    之后重启网卡,如果配置没有问题,网络是可以连接的。

    /etc/init.d/network restart
    

    以后新添加vlan的时候,也可以先做好配置文件。直接ifup即可。
    ifup /etc/sysconfig/network-scripts/ifcfg-em1.19

    网络信息

    [root@wd-slave01 ~]# ifconfig
    em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet6 fe80::d6be:d9ff:feae:80cf  prefixlen 64  scopeid 0x20<link>
            ether d4:be:d9:ae:80:cf  txqueuelen 1000  (Ethernet)
            RX packets 108408  bytes 17234693 (16.4 MiB)
            RX errors 0  dropped 11508  overruns 0  frame 0
            TX packets 24225  bytes 4849942 (4.6 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            
    docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
            inet6 fe80::42:87ff:fecd:c222  prefixlen 64  scopeid 0x20<link>
            ether 02:42:87:cd:c2:22  txqueuelen 0  (Ethernet)
            RX packets 458940  bytes 71009715 (67.7 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 198525  bytes 55224280 (52.6 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    em1.233: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.53.12  netmask 255.255.255.0  broadcast 192.168.53.255
            inet6 fe80::d6be:d9ff:feae:80cf  prefixlen 64  scopeid 0x20<link>
            ether d4:be:d9:ae:80:cf  txqueuelen 1000  (Ethernet)
            RX packets 108408  bytes 17234693 (16.4 MiB)
            RX errors 0  dropped 11508  overruns 0  frame 0
            TX packets 24225  bytes 4849942 (4.6 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    em1.30: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet6 fe80::d6be:d9ff:feae:80cf  prefixlen 64  scopeid 0x20<link>
            ether d4:be:d9:ae:80:cf  txqueuelen 1000  (Ethernet)
            RX packets 2133458  bytes 245138875 (233.7 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1343034  bytes 151915911 (144.8 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    docker 配置网络

    docker network create -d macvlan --subnet=172.20.30.0 --gateway=172.20.30.1 -o parent=em1.30 mac_net1  
    
    docker network ls   查看网络情况    
    docker network inspect 074ebc238447  查看网络详细信息及ip地址分配清凉
    

    启动容器 指定IP 指定网络

    docker run -d --name test1 --ip=172.55.55.10 --network mac_net1 nginx-nettools:1.13  
    或动态分配
    docker run -d --name test2  --network mac_net1 nginx-nettools:1.13  
    

    限制分配ip地址池

    docker network create -d macvlan --subnet=172.20.30.0/24 --gateway=172.20.30.1 --ip-range=172.20.30.48/30 -o parent=em1.20 mac_net30
    这样只能分配4个ip地址
    172.20.30.128/25 也就是 128-255 可得 128个ip地址
    

    我的 github 博客 https://sukbeta.github.io/docker-build-MacVlanNetwork/

    相关文章

      网友评论

          本文标题:docker 搭建macvlan 网络

          本文链接:https://www.haomeiwen.com/subject/pqlgvftx.html