|
先感谢各位高V手,请教有关LWIP中IPV6的IP地址问题。
硬件:STM30F407+DP83848
软件:LWIP,IPV4和IPV6双栈
硬件已调通,测试IPV4,没有问题。但是IPV6不能ping通,已开启LWIP的debug输出。
程序上电时,LWIP输出如下内容:
netif: netmask of interface \0\0 set to 255.255.255.0
netif: GW address of interface \0\0 set to 192.168.1.2
netif_set_ipaddr: netif address being changed
netif: IP address of interface \0\0 set to 192.168.1.8
netif: added interface st IP addr 192.168.1.8 netmask 255.255.255.0 gw 192.168.1.2
netif_ip6_addr_set_state: netif address state being changed
netif: IPv6 address 0 of interface st set to FE80::280:E1FF:FE00:0/0x08
netif_ip6_addr_set_state: netif address state being changed
netif: IPv6 address 0 of interface st set to FE80::280:E1FF:FE00:0/0x10
netif: setting default interface st
etharp_request: sending ARP request.
按照LWIP的源码理解,FE80::280:E1FF:FE00:0应为IPV6的地址,但是通过计算机使用网线与开发板直连不能ping通。
每次执行ping操作时,提示以下信息:
pbuf_alloc(length=86) == 20006a08
ethernet_input: dest:33:33:ff:00:00:00, src:5c:f9:dd:3e:16:2e, type:86dd
pbuf_header: old 20006a18 new 20006a26 (-14)
ip6_input: packet not for us.
pbuf_free(20006a08)
pbuf_free: deallocating 20006a08
很明显计算机识别的mac地址不正确,我也不知道33:33:ff:00:00:00到底表示什么意思。
还有不能理解的是IPV6的邻居发现协议,不知道IPV6是如何告知其它主机自身的IP的,还是说必须要有IPV6的路由存在才能调试,而不能直接使用网线直接连接的方式。
小弟,由于项目需要刚接触IPV6,很多地方理解的不正确,望坛里的高手多多指教,不胜感激。
|
|