解决 IPv6 路由发现协议得到错误地址的问题
IPv6 环境一般使用 DHCPv6 和 ICMPv6 协议自动配置网络参数,网关配置错误或多个网关的存在会导致客户端得到错误或冲突的配置参数。最近在我使用的 IPv6 环境中,就出现了网关同时给一个客户端分配多组 IPv6 地址、两个 IPv6 路由的问题,这使得路由发生混乱,IPv6 网络无法连通。由于种种原因,网管一直未能解决此问题,我们只好试图在客户端动动脑筋。
按照 IPv4 的经验,如果 DHCP 有问题,直接手工配置静态地址即可。但我们的环境中,即使手工配置了静态的 IPv6 地址和路由,发现没过多久又会恢复原状。看来还是有一定的自动配置机制在作祟。经搜索得知,这是 ICMPv6 的路由发现(Router Discovery)特性,系统会根据其收到的 ICMPv6 包自动修改 IPv6 配置。下面要做的就是过滤与路由发现相关的包。
在 Linux 下,可以使用 ip6tables(即 iptables 的 IPv6 版本)过滤相应的 ICMPv6 包:
可以将上述命令加入 /etc/rc.local。或使用 ip6tables-save 导出到文件,在启动网络前使用 ip6tables-restore 恢复。
在 Windows Vista/7 或 Windows Server 2008 以后的版本,可以使用这条命令:
执行一次之后持久生效,重启后不用再次执行。
而在 Windows XP 下,目前还没有发现很好的办法。XP 对 IPv6 的支持仅仅是一个“预发行版”,实现并不完善。手工配置 IPv6 地址和路由只能使用“ipv6 adu”、“ipv6 rtu”命令,而没有图形界面支持;虽然 XP SP2 以后 Windows 防火墙加入了 IPv6 支持,但仍不支持 ICMPv6。我没有查到 XP 下屏蔽路由发现协议的标准方法,目前可行的办法是使用支持 ICMPv6 的第三方防火墙软件,比如 ZONEALARM Internet Security 8 以上版本。
建议继续学习:
- nginx自定义模块编写-根据post参数路由到不同服务器 (阅读:6999)
- 如何设置双网卡路由 (阅读:5293)
- accept_ra 的一个例子 (阅读:5298)
- debian开启与关闭IPV6 (阅读:3978)
- 开源世界中的算法与数据结构 3 -- Linux IPv6 FIB表实现 (阅读:2999)
- Debian 下关闭ipv6 (阅读:2950)
- windows下设置路由 (阅读:2483)
- KVM 中搭建 VLAN 和 IPv6 环境 (阅读:2225)
- 前端路由实现与 react-router 源码分析 (阅读:1955)
- 从 React Router 谈谈路由的那些事 (阅读:1248)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Jian Lin 来源: 林健的BLOG
- 标签: IPv6 路由
- 发布时间:2010-01-18 12:15:55
-
[331] WordPress插件开发 -- 在插件使用 -
[150] 解决 nginx 反向代理网页首尾出现神秘字 -
[91] IOS安全–浅谈关于IOS加固的几种方法 -
[53] 二维码的生成细节和原理 -
[50] Linux Used内存到底哪里去了? -
[48] Shell的那些事儿 -
[48] 到底什么是MVC? -
[47] 中间件和稳定性平台 -
[47] Hacker News 排名算法工作原理 -
[44] 浅谈MySQL索引背后的数据结构及算法
