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
实时生效安装
1 | yum install -y epel-release |
这样一个临时配置就可以了, 配置docker的网络就可以,docker配置网络的命令后面一起发吧,
上面属于临时配置,机器重启配置就没有了,不适合生产。
永久配置
1 | um install -y epel-release |
添加模块
vim /etc/rc.d/rc.local 添加
1 | /sbin/modprobe 8021q |
网卡开启混合模式
1 | echo "PROMISC=yes" >> /etc/sysconfig/network-scripts/ifcfg-em1 |
修改王凯配置文件
vim /etc/sysconfig/network-scripts/ifcfg-em1
1 | DEVICE=em1 |
生成 macvlan 网卡
vim /etc/sysconfig/network-scripts/ifcfg-em1.233
1 | DEVICE=em1.233 |
vim /etc/sysconfig/network-scripts/ifcfg-em1.30
1 | DEVICE=em1.30 |
另外一台 其他配置都一样, ifcfg-em1.30 网卡信息修改为 ifcfg-em1.19 即可。
之后重启网卡,如果配置没有问题,网络是可以连接的。
1 | /etc/init.d/network restart |
以后新添加vlan的时候,也可以先做好配置文件。直接ifup即可。
ifup /etc/sysconfig/network-scripts/ifcfg-em1.19
网络信息
1 | [root@wd-slave01 ~]# ifconfig |
docker 配置网络
1 | docker network create -d macvlan --subnet=172.20.30.0 --gateway=172.20.30.1 -o parent=em1.30 mac_net1 |
1 | docker network ls 查看网络情况 |
启动容器 指定IP 指定网络
1 | docker run -d --name test1 --ip=172.55.55.10 --network mac_net1 nginx-nettools:1.13 |
限制分配ip地址池
1 | 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 |
感觉文章还可以的话,帮忙点点下面的广告哦! 谢谢支持!