Bridge、Host、Overlay、Macvlan、Ipvlan 的适用场景
解读
国内面试官问这道题,不是让你背定义,而是看你是否能在真实交付链路里选对网络驱动。
Docker 网络驱动直接决定容器能否过等保、能否上生产、能否在多云环境横向扩容。答得好,必须给出**“业务特征→合规要求→性能瓶颈→运维成本”四维决策路径,并指出国内云厂商(阿里云、腾讯云、华为云)的底层限制与典型踩坑点**。
知识点
- Bridge:默认 NAT 网桥,CNI 插件 calico/macvlan 未接管时唯一选择;适合单宿主机开发/测试,宿主机端口映射(-p)依赖 iptables,高并发 NAT 表打满是常见故障。
- Host:容器与宿主机共用 netns,零 NAT 转发延迟;适合日志采集(Filebeat)、监控节点(node-exporter)、Service Mesh sidecar( Envoy 热升级) 这类需要抓宿主机网卡或打标 QoS 的场景;必须接受容器与宿主机端口 1:1 冲突,等保 2.0 要求关闭(因为无法做网络隔离)。
- Overlay:跨宿主机 VXLAN 隧道,Swarm 原生、Kubernetes 早期 flannel-udp 模式;适合线下机房裸机多节点、混合云打通(阿里云私网与腾讯云 VPN 互联)场景;MTU 需要减 50(VXLAN 头),国内 2022 年后新建项目基本被 Calico BGP 或 Cilium eBPF 替代,但存量 Swarm 遗产仍需维护。
- Macvlan:容器直接拿到宿主机同二层 VLAN IP,广播域可见,性能接近物理机;适合传统金融“强网络策略”场景:
- 需要固定私网 IP 过防火墙白名单(券商柜台、央行清算网)
- 需要IPv6 地址直接暴露在交换机(政府网站 IPv6 改造)
限制:宿主机网卡必须打开混杂模式,阿里云 ECS 禁止(会触发安全告警),华为云裸金属服务器可用。
- Ipvlan:Macvlan 的“无 MAC”版,共用宿主机 MAC,不触发交换机 MAC 表爆炸;适合高密度短生命周期容器(CI Runner、压测 Pod),单宿主机 4k 容器场景;国内云厂商只有华为云 Turbo 系列裸金属公开支持,需要内核 ≥4.9 且打开 802.1Q 子接口。
答案
Bridge:单节点开发、测试,或作为 CNI 未接管时的兜底;注意 NAT 表打满时切换 HostNetwork 或 Macvlan。
Host:对延迟极度敏感、需要抓宿主机流量、端口冲突可控的系统组件;等保场景需走例外审批。
Overlay:存量 Swarm、线下裸机多节点、混合云 VPN 打通;新项推荐直接上 Calico BGP 或 Cilium,不要新造 Overlay。
Macvlan:金融、政企需要固定私网 IP 过防火墙、IPv6 直通交换机;公有云 ECS 不能用,只能选裸金属或私有云。
Ipvlan:单节点 >1k 容器的高密度压测、CI 场景;需内核与交换机双向支持,国内仅华为云裸金属大规模落地。
拓展思考
- 国内云厂商“隐形锁”:阿里云 ENI 多 IP 模式实际走的 Ipvlan L2,但控制台不暴露,直接调用 OpenAPI 创建 ENI-Trunking 可绕过 20 容器/ENI 上限,这是大厂面试加分项。
- 等保 2.0 三级要求“不同等级系统之间必须网络隔离”,Host 模式容器与宿主机共享网络命名空间,无法通过测评,必须在 Overlay/Macvlan 里再挂一层微隔离(NeuVector、青藤)。
- Service Mesh 场景下,sidecar 需要拦截所有出入流量,若用 Macvlan/Ipvlan 直接暴露 IP,iptables 规则无法注入,需改用 Cilium eBPF kube-proxy replacement,面试可主动抛出“sidecar-less”趋势,展示对下一代数据面的理解。