今天调试的时候发现了不少问题,这里记下来以便以后查阅。首先是隧道的问题:
IPv6-in-IPv6隧道,如 A-B----C-D, BC之间有隧道
在B的路由表上添加将发送至D的包由隧道转发,如ip6tnl1接口,之后数据包会自动封装,最外层的包目的地址为C,源地址为B。 而且B并不需要知道怎么路由到D,只需要封装数据发送至C,C会自动将包解封装发送至D(C要知道到D的路由)。
这里B如果将B发往C的数据也通过隧道接口转发,会陷入死循环?因为封装后的数据包目标地址为C,然后查B的路由,由正常的接口如eth0转发。
接着是rule的问题,之前测试时#ip rule list,其实看到的是ipv4的rule。所以应该使用#ip -6 rule list
最后是发现如果#vi /etc/sysctl.conf #sysctl -p 打开IPv6转发功能之后,机器接入有DHCPv6的网络将不能自动获取全局IPv6地址。
可以随意设置自己网络的IP,即使接入了外网,关键是路由。
Wireshark可以查看经过隧道封装后的包,今天试验了ICMPv6报文经过封装,虽然wireshark上显示的协议是ICMPv6,但是包里是有两个IPv6报头的。
以后牛逼了要自己写这些网络软件,当网络hacker。
阅读(1901) | 评论(7) | 转发(0) |