如何在Linux中显示IPv6 NDISC缓存?


14

假设您已在Linux系统之一上配置了IPv6代理NDP,如下所示:

ip -6 neighbor add proxy 2001:db8:1234::5 dev eth1

您如何验证配置已完成?ip -6 neighbor show似乎没有显示代理条目,ip -6 neighbor show proxy也不是受支持的命令。


也许ip -6 neighbor show nud all吧?
Zoredache

那会显示更多地址(例如:: dev lo),但不会显示代理。
Gerald Combs 2010年

Answers:


1

我认为ip工具只是不打印NTF_PROXY标志。在ip / ipneigh.c中,在NTF_ROUTER块之后,尝试添加

   if (r->ndm_flags & NTF_PROXY) {
            fprintf(fp, " proxy");
    }

我没有安装NDP代理,因此无法对其进行测试。但是,通过阅读内核源代码,似乎所有条目都将被返回,并且应该为代理条目设置标志。


不幸的是,那没有用。我还尝试添加“ fprintf(fp,“标志:%02x \ n”,r-> ndm_flags);“ 到print_neigh的开头,并且所有条目都没有设置NTF_PROXY标志。
Gerald Combs 2010年

0

您是否尝试过ip ntable?


它为我提供了有关NDISC缓存的许多有用信息,但没有条目本身。我开始认为这些是只写值,至少对于我的内核版本而言。
Gerald Combs 2010年

0

为了完整性:

 shell> ip -6 neigh del proxy 2001:db8:1234::1234:5678 dev eth1
 shell> ip -6 maddr show dev eth1                      
 3:      eth1
         inet6 ff02::1:ff34:5678
 ...

这只是最后6个字节,但这通常是您所需要的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.