首页主机资讯Overlay配置中如何设置MTU

Overlay配置中如何设置MTU

时间2025-12-04 15:55:03发布访客分类主机资讯浏览643
导读:Overlay 网络 MTU 设置指南 一、通用原则与计算 隧道封装会额外增加报文头部开销,导致外层 IP 包变大。为避免分片与丢包,需让承载网络(物理/Underlay)MTU ≥ 工作负载看到的 MTU + 封装开销。 常见开销与建议...

Overlay 网络 MTU 设置指南

一、通用原则与计算

  • 隧道封装会额外增加报文头部开销,导致外层 IP 包变大。为避免分片与丢包,需让承载网络(物理/Underlay)MTU ≥ 工作负载看到的 MTU + 封装开销。
  • 常见开销与建议值如下(以物理网络 MTU 为基准):
    • VXLAN:开销约50 字节 → 建议工作负载/隧道 MTU = 物理 MTU - 50
    • IP-in-IP:开销约20 字节 → 建议工作负载/隧道 MTU = 物理 MTU - 20
    • Geneve(NSX-T 常用):开销约50–58 字节(以太网 14 + Geneve 8 + UDP 8 + IP 20,部分实现还含选项字段),通常按物理 MTU - 50 规划,并将承载网络提升到≥1600以留足余量
  • 同一 Overlay 域内所有节点与工作负载的 MTU 应保持一致;若无法统一承载 MTU,可在端点将 MTU 调小以适配最小路径 MTU,但需评估对 TCP/UDP 的影响(UDP 场景尤为敏感)。

二、Docker Swarm Overlay 设置

  • 自定义业务 Overlay 网络
    • 创建时指定 MTU(示例为 1450):
      • docker network create -d overlay --opt com.docker.network.driver.mtu=1450 my-overlay
    • 在 Compose 中使用外部网络:
      • networks: app-net: external: true name: my-overlay
  • Swarm 控制面与节点路由相关网络
    • 需在初始化/加入 Swarm 之前完成,且所有节点保持一致:
      • 重建 docker_gwbridge(先记录 Subnet)
        • docker network rm docker_gwbridge
        • docker network create --subnet 172.18.0.0/16 --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=1450 docker_gwbridge
      • 重建 ingress 网络(先记录 Subnet/Gateway)
        • docker network rm ingress
        • docker network create --driver overlay --ingress --subnet 10.255.0.0/16 --gateway 10.255.0.1 --opt com.docker.network.driver.mtu=1450 ingress
  • 验证
    • 在容器内查看网卡 MTU(如 eth0 应为设定的 1450)。

三、Kubernetes/Calico 设置

  • 计算与选择
    • 物理 MTU 1500 时:VXLAN 建议 1450;IPIP 建议 1480;物理 9000 时:VXLAN 8950、IPIP 8980
  • 配置方式
    • 工作负载网卡 MTU(Felix 配置,影响新建 Pod):
      • kubectl patch configmap/calico-config -n kube-system --type merge -p ‘{ “data”:{ “veth_mtu”: “1440”} } ’
    • 隧道/Overlay MTU(与 veth MTU 保持一致):
      • 在 FelixConfiguration 中设置 tunnel_mtu(示例 1440),使隧道接口与 Pod 接口 MTU 一致,避免分片与性能问题。
  • 变更生效
    • 对现有工作负载,变更 MTU 后需重启相关 calico-node 才能生效。

四、NSX-T 环境设置

  • 承载网络要求
    • 由于 Geneve 封装,建议将物理网络/VTEP 路径 MTU 提升到≥1600,以避免封装后报文被丢弃。
  • 验证方法
    • Underlay TEP 大包测试(ESXi/Edge):
      • vmkping ++netstack=vxlan -d -s 1570 (发送 IP 包约 1598,小于 1600 便于验证)
    • Overlay 端到端测试(虚拟机内):
      • Linux:ping -M do -s 1472 < 目标IP> (ICMP 载荷 1472 + 8 头 = 1480,适配 1500 路径)
      • Windows:ping -f -l 1472 < 目标IP>
  • 现象与建议
    • 若承载 MTU 不足,可能出现跨主机通信异常、丢包或性能劣化;统一调高承载 MTU 是最稳妥方案。

五、Rancher IPsec Overlay 设置

  • IPsec 封装开销约98 字节,容器接口 MTU 计算为:容器 MTU = 网络 MTU - 98
  • 配置要点
    • 同一环境中的全部主机需保持一致的 MTU 配置;需在主机、Docker Daemon、IPsec/VXLAN 基础服务等多处统一设置,否则会出现随机网络错误。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Overlay配置中如何设置MTU
本文地址: https://pptw.com/jishu/763627.html
centos进程如何进行调试 CentOS Overlay配置中的安全问题

游客 回复需填写必要信息