现在的位置: 首页 > 综合 > 正文

关于ipv6的使用1

2017年12月22日 ⁄ 综合 ⁄ 共 4479字 ⁄ 字号 评论关闭

sles11sp2:~ # tracepath6 1080::8:800:200C:417A
 1?: [LOCALHOST]                      pmtu 16436
 1:  1080::8:800:200c:417a                      0. 81ms reached
     Resume: pmtu 16436 hops 1 back 1

sles11sp2:~ # ifconfig eth0 inet6 add 1080::8:800:200C:417A

1. 认识IPv6地址

IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示;而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,用\":\"分成8段,用16进制表示;可见,IPv6地址空间相对于IPv4地址有了极大的扩充。

RFC2373 中详细定义了IPv6地址,按照定义,一个完整的IPv6地址的表示法:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

例如: 2001:0000: 1F 1F :0000:0000:0100: 11A 0:ADDF

为了简化其表示法, rfc2373提出每段中前面的0可以省略,连续的0可省略为\"::\",但只能出现一次。例如:

1080:0:0:0:8:800: 200C : 417A 可简写为 1080::8:800: 200C : 417A

FF01:0:0:0:0:0:0:101 可简写为 FF01::101

0:0:0:0:0:0:0:1 可简写为 ::1

0:0:0:0:0:0:0:0 可简写为 ::

类似于 IPv4中的CDIR表示法,IPv6用前缀来表示网络地址空间,比如:

2001:251:e000::/48 表示前缀为48位的地址空间,其后的80位可分配给网络中的主机,共有2的80次方个地址。

为了使您更好的理解 IPv6,在这里给出一个表格,以比较IPv4和IPv6地址对应关系和区别。

IPv4地址

IPv6地址

组播地址( 224.0.0.0/4)

IPv6组播地址(FF00::/8)

广播地址

无,只有任播( anycast)地址

未指定地址为 0.0.0 .0

未指定地址为 ::

回路地址为 127.0.0.1

回路地址为 ::1

公用 IP地址

可汇聚全球单播地址

私有地址( 10.0.0 .0/8、172.16.0.0/12和192.168.0.0/16)

本地站点地址( FEC0::/48)

Microsoft自动专用IP寻址自动配置的地址(169.254.0.0/16)

本地链路地址( FE80::/64)

表达方式:点分十进制

表达方式:冒号十六进制式(取消前置零、零压缩)

子网掩码表示:以点阵十进制表示法或前缀长度表示法( CIDR)

子网掩码表示:仅使用前缀长度表示法( CIDR)

2. IPv6地址作用域和地址分类

•  IPv6地址指定给接口,一个接口可以指定多个地址。

•  IPv6地址有作用域:

link local地址 本链路有效

site local地址 本区域(站点)内有效,一个site通常是个校园网

global地址 全球有效,即可汇聚全球单播地址

•  IPv6地址分类:

unicast 单播(单点传送)地址

multicast 组播(多点传送)地址

anycast 任播(任意点传送)地址

IPv6没有定义广播地址,其功能由组播地址替代

3. 常见的IPv6地址及其前缀

•  ::/128  即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口。

•  ::1/128 即0:0:0:0:0:0:0:1,回环地址,相当于IPv4中的localhost(127.0.0.1),ping locahost可得到此地址。

•  2001::/16  全球可聚合地址,由 IANA 按地域和ISP进行分配,是最常用的IPv6地址,属于单播地址。

•  2002::/16  6 to 4 地址,用于6to4自动构造隧道技术的地址,属于单播地址。

•  3ffe::/16   早期开始的IPv6 6bone试验网 地址,属于单播地址。

•  fe80::/10   本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发以fe80开头的地址。

•  ff00::/8  组播地址。

•  ::A.B.C.D  兼容IPv4的IPv6地址,其中<A.B.C.D>代表IPv4地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址。

•  ::FFFF:A.B.C.D   是IPv4映射过来的IPv6地址,其中<A.B.C.D>代表IPv4地址,例如 ::ffff:202.120.2.30 ,它是在不支持IPv6的网上用于表示IPv4节点。

4. 综合组网技术

在目前 IPv6和IPv4共存的情况下,实现V4和V6互联互通的综合组网技术和策略有:

1) 双栈策略

双栈策略是指在网元中同时具有 IPv4和IPv6两个协议栈,它既可以接收、处理、收发IPv4的分组,也可以接收、处理、收发IPv6的分组。对于主机(终端)来讲,“双栈”是指其可以根据需要来对业务产生的数据进行IPv4封装或者IPv6封装。对于路由器来讲,“双栈”是指在一个路由器设备中维护IPv6和IPv4两套路由协议栈,使得路由器既能与IPv4主机也能与IPv6主机通信,分别支持独立的IPv6和IPv4路由协议,IPv4和IPv6路由信息按照各自的路由协议进行计算,维护不同的路由表。IPv6数据报按照IPv6路由协议得到的路由表转发,IPv4数据报按照IPv4路由协议得到的路由表转发。

2) 隧道策略

隧道策略是 IPv4/v6综合组网技术中经常使用到的一种机制。所谓“隧道”,简单地讲就是利用一种协议来传输另一种协议的数据技术。隧道包括隧道入口和隧道出口(隧道终点),这些隧道端点通常都是双栈节点。在隧道入口以一种协议的形式来对另外一种协议数据进行封装,并发送。在隧道出口对接收到的协议数据解封装,并做相应的处理。在隧道的入口通常要维护一些与隧道相关的信息,如记录隧道MTU等参数。在隧道的出口通常出于安全性的考虑要对封装的数据进行过滤,以防止来自外部的恶意攻击。

隧道的配置方法分为手工配置隧道和自动配置隧道,而自动配置隧道又可以分为兼容地址自动隧道、 6to4隧道、6over4、ISATAP、MPLS隧道、GRE隧道等,这些隧道的实现原理和技术细节都不相同,相应的,其应用场景也就不同。

PMTU(Path MTU,路径最大传输单元)是在源节点和目的节点之间的路径上的任一链路所能支持的链路MTU的最小值。

在IPv6网络中,分段不在中间路由器上进行。当需要传送的数据报文长度比链路MTU大时,只由源节点本身对数据报文进行分段,中间路由器不对数据报文进行再次分段。这就要求源节点在发送数据报文前能够发现整个发送路径上的所有链路的最小MTU,然后以该MTU值发送数据报文,这就是PMTU发现。

PMTU发现过程如图2-9所示,图中各步骤含义如下:

(1)源节点向目的节点发送一个IPv6数据报文,其长度为1500字节。

(2)中间路由器RTA的链路MTU值为1400字节,所以它会用ICMPv6数据报文超长消息向源节点应答,告诉源节点"路径上的MTU值为1400字节"。

(3)源节点向目的节点发送一个IPv6数据报文,其长度为1400字节。

(4)中间路由器RTB的链路MTU值为1300字节,所以它会用ICMPv6数据报文超长消息向源节点应答,告诉源节点"路径上的MTU值为1300字节"。

(5)源节点向目的节点发送一个IPv6数据报文,其长度为1300字节。

a)    查看网络配置 ifconfig,同ipv4
b)    配置ip地址,ifconfig eth0 inet6 add 2001:da8:da8:da8:16fe:b5ff:fed9:b533/80,eth0网卡可以和ipv4公用
c)    删除ip地址,ifconfig eth0 inet6 del 2001:da8:da8:da8:16fe:b5ff:fed9:b533/80
d)    查看路由表,route -A inet6 –n
e)    添加删除路由类似ipv4,如:
        route -A inet6 add default gw 2001:da8:da8:da8:16fe:b5ff:fed9:b534
        route -A inet6 del default gw 2001:da8:da8:da8:16fe:b5ff:fed9:b534
f)    查看arp表,ip -6 neigh,arp命令不支持ipv6的arp查询
g)    万能命令ip,只要加上-6,所有ipv4下的命令都可以执行。
h)    使用ping6,类似于ipv4下的ping,如果ping6的目标是链路本地地址,则需要使用-I参数
i)    使用traceroute6,类似ipv4下的traceroute
j)    网络抓包tcpdump,本身就支持v4和v6的数据包,只是平时v6的数据包比较少而已,为了只看v6的数据包,可以加上协议字段,如
        tcpdump -nn host 2001:da8:da8:da8:16fe:b5ff:fed9:b534
        tcpdump -nn ip6
        tcpdump -nn icmp6
k)    使用ssh和scp
        ssh -P22 2001:da8:da8:da8:16fe:b5ff:fed9:b534,-6只是强制使用v6地址,没有-6的时候如果对端是v6地址,则也可以正常使用。
        scp -P22 [2001:da8:da8:da8:16fe:b5ff:fed9:b534]:/tmp/a /tmp/,注意需要使用中括号,因为v6地址中的‘:’会和ip后面的‘:’混淆掉。
l)    使用mtr,新版本的mtr已经支持v6了,用法同v4,加上-6则强制使用v6地址
m)    使用curl,用法同v4,-6则强制使用v6地址
        curl http://2001:da8:da8:da8:16fe:b5ff:fed9:b534/
n)    使用fping6,使用方法同fping
        fping6 2001:da8:da8:da8:16fe:b5ff:fed9:b534
o)    使用telnet,方法同ipv4,注意目标地址不能为链路本地地址
        telnet fe80::216:3eff:fe56:aff8 22
p)    使用wget,新版的wget已经支持v6,-6强制使用v6地址
        wget  http://lvs.lxdns.net/testcdn.htm -e http-proxy=http://[2001:da8:da8:da8:16fe:b5ff:fed9:b534]
q)    使用netstat,方法同ipv4
r)    使用ip6tables,方法同iptables

【上篇】
【下篇】

抱歉!评论已关闭.