主题中讨论的其他器件:CC3120
尊敬的 TI 团队:
我希望了解在启用 DHCP 时设置辅助 DNS 服务器选项的一些说明、以及在何时使用第二个 DNS 的一些信息。
正在覆盖辅助 DNS
我遇到应用程序设置的辅助 DNS 服务器被覆盖的问题。 我已经介绍了以下将复制条件的步骤。
按以下顺序发生的事情:
SL_NETAPP_EVENT_IPV4_ACQUIRED在 SL 应用程序事件处理程序中收到- 指示另一个任务更改状态并配置辅助 DNS
- 执行下面的块 A 中的代码
- 另一个任务
sl_NetCfgGet稍后检查辅助 DNS 地址(使用)(以记录 DHCP 给定数据和辅助 DNS 数据) - 次 DNS 地址与 DHCP 服务器提供的主 DNS 匹配,而不是配置的 DNS (在
192.168.1.254我的情况下,与)1.1.1.1
块 A
//此处我们还需要设置辅助 DNS,因为 IP 采集已覆盖 SWRU455J 中规定的值-§5.3.3 DNS 地址 //将辅助 DNS 设置为 CloudFlare 的 DNS 服务器 DNS_OPT.DnsSecondval ServerAddr = SL_IPv4_VAL (1、1、1); Int16_t SL_Secondval = 0; sl_ret_val = sl_NetCfgSet (sl_netcfg_IPV4_DNS_CLIENT、0、CONFIG_Len、 (uint8_t *)&DNS_OPT); 断言(sl_ret_val = 0);
以下是我在测试功能时发现的观察结果:
- 设置得太早,NWP 似乎会用 DHCP 服务器提供的主服务器覆盖次要服务器
- 应用程序接收到 IP 获取事件、但在该回调中或之后快速设置辅助 DNS 将导致其被覆盖。
- 尝试将 DHCP 流程从"机会续订流程"调整回"完全续订流程"、但似乎没有效果。
反复尝试设置辅助 DNS 服务器将最终导致其"粘滞"。 我假设这是因为在 DHCP 过程完全完成后、DHCP 过程将完成、并将保留设置辅助 DNS 服务器 IP。
我在这个问题上最大的挂机是、当尝试设置辅助 DNS 服务器时、我知道我必须等待 DHCP 进程完成、但没有一个独特的事件可以知道何时可以安全地设置辅助 DNS。
次要 DNS 使用
我在设备上运行了一些次 DNS 服务器集的实验、并创建了一个无法再访问主 DNS 的方案。 调用 SlNetUtil_getHostByName (具体调用在 SNTP 库中)和调用 sl_NetAppDnsGetHostByName (在 AWS 库中)似乎都失败。 我尝试调整超时/重试值、正如 E2E 上的 CC3120 MOD 博文中提到的、但似乎没有任何效果。 如果主 DNS 不可用、名称解析似乎不会故障转移到次 DNS。
您能否就上述两个问题中的任何一个/两个问题提供任何指导?
非常感谢、
-Tom