好消息,超酷的在线虚拟网络实验室上线了!点击开始实验

为获得更好的浏览效果,建议您使用 Firefox 或者 Chrome 浏览器



MSR系列路由器对Windows主机进行IPv6ND和静态NATPT经验的案例

 

一、组网

MSR和各主机进行简单的组网,组网图如下

二、问题描述:

在如上组网及部分配置后,察看MSR上的配置:

MSR配置

#

 //使能设备IPv6

 ipv6

#

 //配置设备的natpt IPv6侧静态配置,将XP IPv6 PC1::215:c5ff:fe0d:1903转换成2.0.0.1

 natpt v6bound static 0001::0215:c5ff:fe0d:1903 2.0.0.1

 //配置natpt前缀为2::

 natpt prefix 0002::

#

interface Ethernet0/0

 port link-mode route

 //配置接口的IPv6地址

 ipv6 address 1::1/64

 //取消nd ra的抑制

 undo ipv6 nd ra halt

 //使能NATPT

 natpt enable

#

interface Ethernet0/1

 port link-mode route

 //IPv4侧接口地址

 ip address 1.2.0.1 255.255.255.252

 //使能NATPT

 natpt enable

#

如上配置后,从IPv6主机ping6 2::1.2.0.2

C:\>ping6 2::1.2.0.2

 

Pinging 2::102:2

from 1::b4e5:4ede:bf70:8dea with 32 bytes of data:

 

请求超时。

请求超时。

请求超时。

请求超时。

 

Ping statistics for 2::102:2:

    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

 

C:\Documents and Settings\Administrator>

但是从IPv4主机ping 2.0.0.1却能成功,且立刻在MSR上如下操作:

<2021>display natpt session all

 

 NATPT Session Info:

 No    IPV6Source                                   IPV4Source             Pro

       IPV6Destination                              IPV4Destination

 1     0002::0102:0002                        ^    0 1.2.0.2        ^    0  ICMP

       0001::0215:c5ff:fe0d:1903              ^    0 2.0.0.1        ^    0

<2021>

也就是说如上配置后只能从IPv4主机侧发起连接,而不能从IPv6侧发起连接。

三、过程分析:

检查IPv6侧主机的IPv6地址信息:

XP IPv6 PCIPv6地址信息

C:\Documents and Settings\Administrator>netsh

netsh>interface ipv6

netsh interface ipv6>show address

正在查询活动状态...

 

 

接口 5: Teredo Tunneling Pseudo-Interface

 

地址类型   DAD 状态   有效寿命     首选寿命     地址

---------  ---------- ------------ ------------ -----------------------------

链接         首选项            infinite     infinite fe80::ffff:ffff:fffd

 

接口 4: 本地连接

 

地址类型   DAD 状态   有效寿命     首选寿命     地址

---------  ---------- ------------ ------------ -----------------------------

临时         首选项         6d22h57m49s     22h55m2s 1::b4e5:4ede:bf70:8dea

公用         首选项        29d23h56m56s  6d23h56m56s 1::215:c5ff:fe0d:1903

链接         首选项            infinite     infinite fe80::215:c5ff:fe0d:1903

 

接口 2: Automatic Tunneling Pseudo-Interface

 

地址类型   DAD 状态   有效寿命     首选寿命     地址

---------  ---------- ------------ ------------ -----------------------------

链接         首选项            infinite     infinite fe80::5efe:10.153.43.145

 

接口 1: Loopback Pseudo-Interface

 

地址类型   DAD 状态   有效寿命     首选寿命     地址

---------  ---------- ------------ ------------ -----------------------------

环回         首选项            infinite     infinite ::1

链接         首选项            infinite     infinite fe80::1

 

netsh interface ipv6>

可以看到本地连接4上有2个无状态地址自动配置生成的IPv6地址,一个是路由器natpt v6bound static中配置的1::215:c5ff:fe0d:1903EUI-64方式生成的),另一个是1::b4e5:4ede:bf70:8dea(微软通过MAC Hash方法生成的),那么是不是Windows主机默认使用Hash生成的地址呢?通过Ethereal包显示果然使用的是1::b4e5:4ede:bf70:8dea,因此改变IPv6主机上的操作:

C:\>ping6 -s 1::215:c5ff:fe0d:1903 2::1.2.0.2

 

Pinging 2::102:2

from 1::215:c5ff:fe0d:1903 with 32 bytes of data:

 

Reply from 2::102:2: bytes=32 time=21ms

Reply from 2::102:2: bytes=32 time=21ms

Reply from 2::102:2: bytes=32 time=21ms

Reply from 2::102:2: bytes=32 time=20ms

 

Ping statistics for 2::102:2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 20ms, Maximum = 21ms, Average = 20ms

 

C:\>

由此可见Windows主机默认会使用通过Hash生成的IPv6地址,因此可以将MSR的配置改成:

MSR配置

#

 //配置设备的natpt IPv6侧静态配置,将XP IPv6 PC1::b4e5:4ede:bf70:8dea转换成2.0.0.1

 natpt v6bound static 0001::b4e5:4ede:bf70:8dea 2.0.0.1

 //配置natpt前缀为2::

 natpt prefix 0002::

#

MSR其余配置保持不变即可:

C:\>ping6 2::1.2.0.2

 

Pinging 2::102:2

from 1::b4e5:4ede:bf70:8dea with 32 bytes of data:

 

Reply from 2::102:2: bytes=32 time=22ms

Reply from 2::102:2: bytes=32 time=21ms

Reply from 2::102:2: bytes=32 time=21ms

Reply from 2::102:2: bytes=32 time=21ms

 

Ping statistics for 2::102:2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 21ms, Maximum = 22ms, Average = 21ms

 

C:\>

 

四、结论

微软认为通过EUI-64方式生成不安全,因为可以从IPv6地址猜测MAC地址,所以微软自行搞了一个Hash方式的地址,而且首选使用这个地址作为IPv6通信的源地址。

五、解决方法:

静态NATPT实验。可以不用结合ND,而给IPv6主机单独配置IPv6地址,并在IPv6主机发起通信时抓包判断使用的IPv6源地址,必须保证路由器上NATPT配置IPv6地址和通信源地址相吻合。另外一个解决办法就是使用动态NATPT*

X Close
X Close