linux – 如何正确发送路由器广告?

linux – 如何正确发送路由器广告?,第1张

概述我正在开发没有设备的IPv6 linux设备驱动程序.所以我现在试图用假的路由器广告消息欺骗内核. unsigned char c[] = {0x33, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 61, 0x86, 0xdd, //IPv6 type 0x60, 0x00, 0x00, 0x00, 我正在开发没有设备的IPv6 linux设备驱动程序.所以我现在试图用假的路由器广告消息欺骗内核.
unsigned char c[] = {0x33,0x33,0x00,0x02,61,0x86,0xdd,//IPv6 type            0x60,//Version,...            0x00,24,//payload length            58,//next header             255,//hop limit             0xfe,0x80,0xff,0xfe,0x3d,//source            0xff,0x01,//destination            134,//type            0,//code,0x7a,0x2c,//checksum            255,//current hop limit            0x80,//flag            0xff,//reachable timer            0x00,//source link-layer address               };

我试图使用Tcpdump来抓取我发送给内核的这个数据包.我发现内核确实得到了这个数据包.

13:32:59.989851 00:00:00:00:00:3d (oui Ethernet) > 33:33:00:00:00:02 (oui UnkNown),ethertype IPv6 (0x86dd),length 78: (hlim 255,next-header ICMPv6 (58) payload length: 24) fe80::200:ff:fe00:3d > ip6-allnodes: [icmp6 sum ok] ICMP6,router advertisement,length 24    hop limit 255,Flags [managed],pref medium,router lifetime 65535s,reachable time 0s,retrans time 0s      source link-address option (1),length 8 (1): 00:00:00:00:00:3d        0x0000:  0000 0000 003d

但之后我使用ip -6 neigh来检查内核是否在邻居表中有假节点.我找不到它了.

我的问题是什么?任何的想法?

解决方法 为什么假冒路由器广告?

在你的情况下我会做的是将第二个linux放在同一个以太网链路上(如果你没有物理设置,在VMWare或任何其他虚拟环境中),在第二个linux上安装radvd,并让radvd发送路由器广告链接.

总结

以上是内存溢出为你收集整理的linux – 如何正确发送路由器广告?全部内容,希望文章能够帮你解决linux – 如何正确发送路由器广告?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存