gpt4 book ai didi

linux-kernel - Linux 内核中的 IPsec - 如何弄清楚发生了什么

转载 作者:行者123 更新时间:2023-12-02 02:21:36 24 4
gpt4 key购买 nike

我正在为微 Controller 编写 IPsec 实现,我想使用运行 Debian Lenny 的标准 Linux 机器对其进行测试。两个设备都应该在隧道模式下使用 IPsec ESP 来保护它们之间的通信。使用 setkey 手动设置 key .没有(或至少应该没有)用户空间程序参与处理 IPsec 数据包。现在我想看看我创建的数据包是如何被 Linux 内核处理的。要查看原始数据包,我使用 tcpdump 捕获它们并使用 wireshark 分析它们.

  • 获取有关 IPsec 处理的调试信息的最佳方法是什么?
  • 如何判断数据包是否被内核接受?
  • 如何查看数据包被丢弃的原因?
  • 最佳答案

    您可以检测 XFRM(或者可能是 ipv4/esp.c)内核代码以在正确的位置打印出调试消息。

    例如,在 net/ipv4/esp.c存在一个函数 esp_input()它有一些错误情况,但你会看到最有趣的东西在 xfrm/*.c 中。代码。

    也就是说,我在将自定义 IPSec 与 Linux 互操作时没有问题。遵循 43xx 规范并通过 wireshark 验证数据包正确输出似乎做得很好。如果您遇到问题并且不想检测内核,那么您可以设置 iptables 规则并计算每个点的(各种类型的)数据包数量。

    最后,确保您确实添加了安全策略 (SP) 以及安全关联 (SA) 并正确设置了防火墙规则。

    关于linux-kernel - Linux 内核中的 IPsec - 如何弄清楚发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7935420/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com