mc胖丁 2024-05-15 22:39 采纳率: 25%
浏览 22
已结题

keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)

keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包,是什么原因呢?测试中途网络设备无关,手动在备机配置静态路由,可以正常通过大字节数据包。有什么好的办法解决吗?

  • 写回答

23条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-05-15 22:39
    关注
    获得0.45元问题酬金

    🕗晚上好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:落霞与孤鹜齐飞,秋水共长天一色。

    原因:

    Keepalived 虚拟 IP 地址使用的 VRRP 协议有一个默认的 MTU 值为 1472 字节。超过此大小的数据包将被丢弃。

    解决方案:

    有以下几种方法可以解决此问题:

    1. 手动配置 VRRP MTU:

    在主和备 Keepalived 配置文件中,添加以下选项:

    vrrp_instance <INSTANCE_NAME> {
        ...
        mtu <MTU_VALUE>
        ...
    }
    

    将 MTU_VALUE 设置为需要支持的大数据包大小。

    2. 使用 VRRP 广播地址:

    将 VRRP 广播地址配置为网络上支持更大 MTU 的路由器或交换机。这将绕过 VRRP 协议的 MTU 限制。

    3. 使用 GRE 隧道:

    GRE(通用路由封装)隧道可以在两台主机之间创建虚拟点对点链路。将 GRE 隧道配置为具有更大的 MTU,以允许更大数据包通过。

    4. 使用 IP 分片:

    IP 分片是一种将大数据包分解为较小片段的技术,以便它们可以通过具有较小 MTU 的网络。但是,这会导致额外的开销和潜在的性能问题。

    5. 检查网络设备:

    确保网络设备(例如交换机或路由器)上配置了正确的 MTU 大小。如果设备不支持所需的 MTU,则需要升级或更换设备。

    完整代码示例:

    在主和备 Keepalived 配置文件中添加以下选项:

    vrrp_instance <INSTANCE_NAME> {
        ...
        mtu 1600
        ...
    }
    

    将 mtu 设置为 1600 以支持 1600 字节大小的数据包。

    评论

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)