我在将应用程序迁移到IPv6环境中时遇到了一些异常问题。
我正在使用.NET远程处理连接到提供主机名的远程服务。该主机名(ipv6.dt112979.company)在我的DNS服务器上注册(在网卡和DNS中启用了IPv6的Windows 2003 Server上运行)作为AAAA主机。
问题在于,每当我尝试连接到该服务器时,都会得到“没有这样的主机已知”。我已经设置了Wireshark,并且没有发出任何DNS查询。我已经完成了“ipconfig / flushdns”并且观察到了相同的结果。
所以,我创建了一个简单的应用程序:
Dns.GetHostAddresses("ipv6.dt112979.company");
结果总是“找不到这样的主人”。
我做了一个NSLOOKUP,结果是:
nslookup ipv6.dt112979.company
Server: company-dev03.company
Address: 10.200.10.207
Name: ipv6.dt112979.company
Address: fe80::a5c3:bfde:5ece:e833
您是否知道问题可能是什么? 我用.NET 3.5和.NET 4.0进行了测试,问题是一样的。 测试是在Windows 7机器上进行的。
如果我有ipv6.dt112979.company的A记录,那么该呼叫会超过但只返回IPv4地址。
祝你好运, Nuno Centeio
答案 0 :(得分:2)
我弄明白了这个问题。 我没有完全启用IPv6网络。我依赖于私有地址(FE80::),尽管能够执行ping和nslookup,看起来像Winsocks2不喜欢它。
我已将Cisco UBE配置为拥有真正的IPv6网络,一切都按预期开始工作。
感谢您的帮助。
答案 1 :(得分:1)
Dns.GetHostAddresses
返回一组IPaddress值,你确定要循环遍历所有这些吗?
此外,如果本地计算机不支持IPv6,则在使用Dns.GetHostAddresses
时会从结果列表中过滤IPv6结果。您提到您已确保远程主机支持IPv6,但您确定本地主机也支持此功能吗?