技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 网络系统 --> 解决 IPv6 路由发现协议得到错误地址的问题

解决 IPv6 路由发现协议得到错误地址的问题

浏览:2407次  出处信息

      IPv6 环境一般使用 DHCPv6ICMPv6 协议自动配置网络参数,网关配置错误或多个网关的存在会导致客户端得到错误或冲突的配置参数。最近在我使用的 IPv6 环境中,就出现了网关同时给一个客户端分配多组 IPv6 地址、两个 IPv6 路由的问题,这使得路由发生混乱,IPv6 网络无法连通。由于种种原因,网管一直未能解决此问题,我们只好试图在客户端动动脑筋。

      按照 IPv4 的经验,如果 DHCP 有问题,直接手工配置静态地址即可。但我们的环境中,即使手工配置了静态的 IPv6 地址和路由,发现没过多久又会恢复原状。看来还是有一定的自动配置机制在作祟。经搜索得知,这是 ICMPv6 的路由发现(Router Discovery)特性,系统会根据其收到的 ICMPv6 包自动修改 IPv6 配置。下面要做的就是过滤与路由发现相关的包。

      在 Linux 下,可以使用 ip6tables(即 iptables 的 IPv6 版本)过滤相应的 ICMPv6 包:

/sbin/ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j DROP

      可以将上述命令加入 /etc/rc.local。或使用 ip6tables-save 导出到文件,在启动网络前使用 ip6tables-restore 恢复。

      在 Windows Vista/7 或 Windows Server 2008 以后的版本,可以使用这条命令:

netsh interface ipv6 set interface "[你的网卡名称,比如 Local Area Connection]" routerdiscovery=disable

      执行一次之后持久生效,重启后不用再次执行。

      而在 Windows XP 下,目前还没有发现很好的办法。XP 对 IPv6 的支持仅仅是一个“预发行版”,实现并不完善。手工配置 IPv6 地址和路由只能使用“ipv6 adu”、“ipv6 rtu”命令,而没有图形界面支持;虽然 XP SP2 以后 Windows 防火墙加入了 IPv6 支持,但仍不支持 ICMPv6。我没有查到 XP 下屏蔽路由发现协议的标准方法,目前可行的办法是使用支持 ICMPv6 的第三方防火墙软件,比如 ZONEALARM Internet Security 8 以上版本。

建议继续学习:

  1. nginx自定义模块编写-根据post参数路由到不同服务器    (阅读:5748)
  2. accept_ra 的一个例子    (阅读:4335)
  3. 如何设置双网卡路由    (阅读:4204)
  4. debian开启与关闭IPV6    (阅读:3164)
  5. 开源世界中的算法与数据结构 3 -- Linux IPv6 FIB表实现    (阅读:2201)
  6. Debian 下关闭ipv6    (阅读:2112)
  7. KVM 中搭建 VLAN 和 IPv6 环境    (阅读:1773)
  8. windows下设置路由    (阅读:1743)
  9. 前端路由实现与 react-router 源码分析    (阅读:947)
  10. 从 React Router 谈谈路由的那些事    (阅读:425)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1