Docker Macvlan网络实验

实验环境

虚机 IP 角色 OS
docker1 190.100.100.41 docker宿主机 CentOS7.5
docker2 190.100.100.42 docker宿主机 CentOS7.5
linux 190.100.100.40 软路由 CentOS7.5

以上操作系统环境全部为vmware workstation运行的虚机
本次实验由易到难共分3个阶段,分别是网卡独占模式、子接口模式(为了共享物理网卡)以及网关模式(目的是为了打通二层的vlan)

一:网卡独占模式

此方法是最原始也最简单的工作模式
优点:配置简单
缺点:在物理网卡有限的情况下,不能复用物理资源,导致资源浪费;另外也不利于容器之间的隔离

本次实验使用docker1和docker2的ens37网卡
ens37

Docker1配置

  1. 创建macvlan网络
    docker network create -d macvlan --subnet=166.66.66.0/24 -o parent=ens37 mac_net1
    参数说明:
    -d macvlan —指定网络类型为macvlan
    –subnet=166.66.66.0/24 —指定网络CIDR
    -o parent=ens37 —指定网卡(即使网卡上存在IP也不影响创建macvlan)
    mac_net1 —给创建的macvlan网络起一个名字
    创建macvlan网络
  2. 启动虚机并指定IP
    docker run -itd --name macvlan --ip=166.66.66.41 --network mac_net1 centos
    启动虚机并指定IP
    创建了一个名称为macvlan的容器,并分配IP地址为:166.66.66.41

Docker2配置

  1. 创建macvlan网络
    docker network create -d macvlan --subnet=166.66.66.0/24 -o parent=ens37 mac_net1
    参数说明:
    -d macvlan —指定网络类型为macvlan
    –subnet=166.66.66.0/24 —指定网络CIDR
    -o parent=ens37 —指定网卡(即使网卡上存在IP也不影响创建macvlan)
    mac_net1 —给创建的macvlan网络起一个名字
    创建macvlan网络
  2. 启动虚机并指定IP
    docker run -itd --name macvlan --ip=166.66.66.42 --network mac_net1 centos

启动虚机并指定IP

测试网络连通

从docker1 ping docker2

从docker1 ping docker2

从docker2 ping docker1

从docker2 ping docker1
至此,第1个试验测试完成,停止虚机并删除macvlan配置,进行下一个实验。

二:子接口macvlan

Docker1虚机配置

生成网卡子接口配置

配置文件内容如下:

ens37.10子接口配置

cd /etc/sysconfig/network-scripts/
cat ifcfg-ens37.10 ifcfg-ens37.20
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37.10
DEVICE=ens37.10
ONBOOT=yes
VLAN=yes

ens37.20子接口配置

cd /etc/sysconfig/network-scripts/
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37.20
DEVICE=ens37.20
ONBOOT=yes
VLAN=yes

启用网卡

[root@docker1 network-scripts]# ifup ens37.10 ens37.20
INFO      : [ipv6_wait_tentative] Waiting for interface ens37.10 IPv6 address(es) to leave the 'tentative' state
INFO      : [ipv6_wait_tentative] Waiting for interface ens37.10 IPv6 address(es) to leave the 'tentative' state
[root@docker1 network-scripts]#

在这里插入图片描述

创建子接口macvlan

docker network create -d macvlan --subnet=166.66.10.0/24 -o parent=ens37.10 mac_net10
docker network create -d macvlan --subnet=166.66.20.0/24 -o parent=ens37.20 mac_net20

[root@docker1 network-scripts]# docker network create -d macvlan --subnet=166.66.10.0/24 -o parent=ens37.10 mac_net10
1c121ffa87321ae0ffc0f506c910e4a372dc628ec4dd10b10a82fd437fe82262
[root@docker1 network-scripts]# docker network create -d ma
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值