<IPv6>
每个IPV6-enabled 接口必须包括至少一个回环(::1/128)和一个link-local地址
任意播地址是一个全局的单播地址
当一个IPV6节点发送多播数据包到一个多播地址时,数据包中的源地址不能是一个多播地址。而且在任何ipv6扩展路由选择包头中,多播地址不能作为源地址
多播指定地址
多播的地址 范围 含义 描述
FF01::1 节点 所有节点 在本地接口范围的所有节点
FF01::2 节点 所有路由器 在本地借口范围的所有路由器
FF02::1 本地链路 所有节点 在本地链路范围的所有节点
FF02::2 本地链路 所有路由器 在本地链路范围的所有路由器
FF02::5 站点 所有路由器 在一个站点范围内的所有路由器
节点必需的ipv6地址
必须的地址 地址表示
每个网络接口的本地链路地址 FF80::/10
回环地址 ::1
所有节点多播地址 FF01::1,FF02::1
分配的可聚合全球单播地址 2000::/3
所有的每个单播和任意播地址的被请求节点多播地址 FF02::1:FFxx:xxxx其中xx:xxxx
是每个单播或任意播地址的24
bit
主机所属的所有组的多播地址 FF00::/8
路由器必需的ipv6地址
必需的地址 地址表示
一个节点的所有必需的ipv6地址 FE80::/10,::1,FF01::1,FF02::1,2000::/3,
FF02::1:FFxx:xxxx,FF00::/8
所有路由器多播地址 FF01::2,FF02::2,FF05::2
子网路由器任意播地址 UNICAST_PREFIX :0:0:0:0
其他任意播配置地址 2000::/3
多播以太网前缀 33:33加在低32比特的前面
·IPv4的局限性:
1.地址空间的局限性:IP地址空间的危机由来已久,并正是升级到IPv6的主要动力。
2.安全性:IPv4在网络层没有安全性可言,安全性一直被认为是由网络层以上的层负责。
3.自动配置:对于IPv4节点的配置比较复杂,让很多普通用户无所适从。
4.NAT:破坏了Internet端到端的网络模型。
5.由于IPv4地址分配杂乱无章,没有层次性,网络设备需要维护庞大的路由表项。
6.IPv4包头过于复杂,使得网络节点处理的效率不高。
ipv4 路由转发的时候,ip包会变checksum(校验和) 和TTL(每经过一个路由器TTL值减一)
ipv6 只变TTL
CPU现在无法实现128位的转发。
最好只是64位的。
·IPv4 点分十进制 32bit
IPv6 冒号分十六进制 128bit
·Theoretical limit: 4.3 billion (十亿) 43亿
Practical limit : 250 million (百万) 2.5亿
Over 420 million Internet in Y2001
(less than 10% of the worldwide population)
没有广播,组播代替广播。所以没有ARP。
ipv6 enable
ipv6 install
Unicast : one to one
·单播地址用于一对一的连接
·IPv6单播地址有以下几种类型:
-Unspecified Address 0:0:0:0:0:0:0:0/128 => ::/128
-Loopback Address 0:0:0:0:0:0:0:1/128 => ::1/128
-IPv4 Compatible Address ::192.168.30.1 => ::C0A8:1E01
-Link Local Address FE80::/10(前10位以FE80开头)
-Site Local Address (Private) FEC0::/10
-Aggregate Global Unicast Address 2xxx:xxxxx/3 - 3FFF: :FFFF
2001::/16 IPV6因特网地址
2002::/16 6to4过渡地址
LINK LOCAL:
1.起用IPV6默认生成Link Local地址
2.看到下一跳都是对端的Link Local地址,不是公网IP地址.
Unspecified Address(未指定的地址或默认地址)
在一个接口可以配置很多IPv6地址,所以学习路由就有可能现很多下一跳。
所以出现Link Local地址唯一标识一个节点。看到下一跳都是对端的Link Local地址。
没有网络号和广播地址
R1 E0: ipv6 address 2001::/127
R2 E0: ipv6 address 2001::1/127
EUI-64 ( Extended Universal IDentifier )
ipv6 address 2001::/64 eui-64
Multicast : one to many
·FF00::/8
-永久的:由IANA指定的。FFxy x=0000
-临时的:可自行定义的。FFxy x=0001
FF02::1 本地链路所有节点
FF02::2 本地链路所有路由器
·被请求节点组播地址:
FF02::1:FF00:0000/104
(单播地址的低24位)
对Link Local Address会自动相应生成被请求节点组播地址
对Aggregate Global Unicast Address会自动相应生成被请求节点组播地址
<将本路由器的接口MAC地址换算为Link Local Address>:
例:MAC地址: 88:88:88:88:88:88
相对应IPV6: FE80::8A88:88FF:FE88:8888
因为 二进制的第七位,"0"变"1","1"变"0"
所以 8A88
Anycast : one to nearest---------任意播
组播的接受对象是一组成员,是个群体.任意播是多个设备共享一个地址.分配IPv6单播(unicast)地址给拥有相同功用的一些设备.发送方发送一个以任意播为目标地址的包,当路由器接受到这个包以后,就转发给具有这个地址的离它最近的设备.单播地址用来分配任意播地址.对于那些没有配备任意播的的地址就是单播地址;但是当一个单播地址分配给不止一个接口的时候,单播地址就成了任意播地址
Mobile方面的特性,移动设备漫游到其他区域,不必接入原始的接入点,
只需要找到最近的即可。
· 以太网帧内协议ID
IPv4 0x0800 0x0800 IP 0x0806 ARP
IPv6 0x86DD
ipv6 unicast-routing
就加入了FF02::2
没有AGUA,直接用Link-local地址时。
可以用ipv6 enable
R2(config)#ipv6 enable 这一命令在没有AGUA地址的情况下会根据MAC地址生成一个link-local地址
MAC地址--0010.7b80.032f
加入ff.fe--0010.7b.ff.fe.80.032f
(将第7位转换)--210.7bff.fe80.32f
加上前缀--FE80::0210:7BFF:FE80:032F这是link-local地址
再生成被请求节点的组播地址--FF02::1:FF80:32F
Show ipv6 interface
debug ipv6 packet
ipv6 address 2001::1/64
ipv6 address fe80::1 link-local 手工设定link-local地址,通常不会这样做
ipv6 address 2001:1::/64 eui-64 根据前缀自动生成一个IPv6地址,后面用的是link-local的后面的地址
< NDP(Neighbor Discovery Protocol)>
NS (Neighbor Solicitation) 135
NA (Neighbor Advertisement) 136
debug ipv6 icmp
sh ipv6 neighor (Ethernet有)
cle ipv6 neighor
RS (Router Solicitation) 133
RA (Router Advertisement) 134 (200S发一次)
S0:ipv6 address autoconfig (自己配置获取地址)
interface Tunnel0
no ip address
ipv6 enable
ipv6 rip R enable
tunnel source Loopback0
tunnel destination 8.8.4.4
tunnel mode ipv6ip
<配置>:
R1(config)#ipv6 enable 自动产生Link Local地址
R1(config-if)#ipv6 address 2001::1/16 配置IPV6的IP地址(一个接口可配多个IPV6地址,没有主次之分)
R1(config-if)#ipv6 address 2001::/16 每配置一个IPV6地址自动生成一个被请求节点组播地址
R1(config-if)#ipv6 address 2003::ff/16
R1(config)#ipv6 unicast-routing 启动路由器的IPv6路由功能
R1(config-if)#ipv6 address co
R1(config-if)#ipv6 nd prefix 2002::/64 at
debug ipv6 icmp
show ipv6 route
show ipv6 interface ethernet 0
show ipv6 interface ethernet 0 prefix 可以看到通告出来哪些前缀
show ipv6 neighbor
if#ipv6 nd suppress-ra 在路由器互连的环境中没必要发RA,用这一命令禁掉,RA只是路由器给PC发前缀用
1.在IPV4中的作用:"ping" 和"traceroute"
2.在IPV6中的作用:ICMP ERROR (基于Path MTU Discovery)
重定向
在IPV6中,ACL必须命名,写法类似IPV4扩展访问列表
Ipv6 access-list wolf
Deny ipv6 2001:12::2/128 any
Permit ipv6 any any
Int s0
Ipv6 traffic-filter wolf out
Ipv6的access-list语句的后面默认隐含三条语句:
Permit icmp any any nd-ns
Permit icmp any any nd-na
Deny ipv6 any any
在ACL默认的三条语句:Permit icmp any any nd-ns
Permit icmp any any nd-na
Deny ipv6 any any
应用了访问列表之后,P包不通会提示AAAAA
在IPV6中使用UDP521端口,在IPV4中是520端口
R1(config)#ipv6 unicast-routing
R1(config)#ipv6 router rip wolf 必须要有一个进程号
R1(config-if)#ipv6 rip wolf enable 必须进入接口下开启接口的RIP
Show ipv6 route
Show ipv6 route rip
show ipv6 rip
IPV6的metric值出口和入口都加1.
IPV6的水平分割是整个路由器开启(在进程中关闭),IPV4是在接口下开关的,在帧中继的HUB-stake模式中要关闭水平分割
在IPV6中使用的是OSPFV3版
Ipv6 router ospf 110
Router-id 2.2.2.2 注意:必须使用一个类似IPV4地址的标识
Int s0
Ipv6 ospf 110 area 0 也是在接口下宣告
Int lo0
Ipv6 ospf 110 area 0 环回口依然是主机路由,128位,可通过改网络类型来改动
Show ipv6 route ospf
Int s0
Ipv6 ospf neighbor 2001::2 注意OSPF指邻居在接口下做
本试验只能在Rack00上做
Router isis
Net 49.0001.2222.2222.2222.00
Log-adjacency-changes all 当邻居起来时出个提示
Int s0
Ipv6 router isis IPV4的ISIS也是在接口下启用
重分布直连:
Router isis
Redistribute connected 在IPV4中直接在ISIS进程中重分布
Router isis
Address-family ipv6 在IPV6中重分布必须进这一进程
Redistribute connected 注意重分布命令必须在address-family进程中用
《BGP》
使用TCP179端口,和IPV4中一样
Router bgp 3
No autosummary
B router-id 3.3.3.3
No synchronization
Neighbor 2001:13::1 remote-as 1
Address-family ipv6 注意进入address-family进程下
Neighbor 2001:13::1 activate 必须在address-family进程下激活,否则不起效
R3(config-router-af)#network 3::/64 也要在address-family下宣告
Show bgp ipv6 neighbor
Show bgp ipv6 summary 注意bgp与ipv6反过来了
Clear ip bgp * 清邻居的命令和IPV4中一样
<6to4>IOS tunnel
1.自动Tunnel(tunnel没有目标地址)
2.自动分配前缀 2002::/16(即:2002:IPV4::/48)
3.没有IPV6路由
IPv6是IPv4的增强版本,和IPv4相比,有很多优点包括:
1.支持更大的地址空间
2. IPv6的头部格式比IPv4的头部更为简化,IPv6的头部可以根据需要进行扩展(简单并不代表短,注意不要混淆)
3.更高的安全性和能很好的和移动IP相互兼容
4.能够平滑过渡IPv4到IPv6
移动IP是IETF标准,使得移动设备在不中断现有连接的情况下进行迁移.这一特征是内建在IPv6中的,但是IPv4就不是.IP Sec是IETF开发的标准,用于增强IP网络安全性,这一特性对IPv6是必须的
IPv6 Addressing
如下图对于两种版本的IP进行比较:
可以看出IPv4是32位长,4字节;IPv6是128位长,16字节;IPv4支持的地址最多达到42亿,IPv6支持的地址多达3.4乘以10的38次方.增加IP地址的位长即增加了IP包头部信息的大小
IPv6的表示方法:
1.X:X:X:X:X:X:X:X(每个X代表16位的16进制数字).不区分大小写
2.排头的0可省略,比如09C0就可以写成9C0,0000可以写成0
3.连续为0的字段可以以::来代替,但是整个地址中::只能出现一次.比如FF01:0:0:0:0:0:0:1就可以简写成FF01::1
来看几个简写的例子:
0:0:0:0:0:0:0:0可以写成::
0:0:0:0:0:0:0:1可以写成::1
Multicast Use
IPv4中的广播(broadcast)可以导致网络性能的下降甚至广播风暴(broadcast storm).在IPv6中,就不存在广播这一概念了,取而代之的是组播(multicast)和任意播(anycast),任意播也称为泛播.
组播的接受对象是一组成员,是个群体.任意播是多个设备共享一个地址.分配IPv6单播(unicast)地址给拥有相同功用的一些设备.发送方发送一个以任意播为目标地址的包,当路由器接受到这个包以后,就转发给具有这个地址的离它最近的设备.单播地址用来分配任意播地址.对于那些没有配备任意播的的地址就是单播地址;但是当一个单播地址分配给不止一个接口的时候,单播地址就成了任意播地址
Autoconfiguration
来看下IPv6的自动配置:当本地链路的路由器发送网络类型信息给所有节点的时候.支持IPv6的主机就把它自己64位的链路层地址附着在64位的前缀自动配置成128位长的地址,保证地址的唯一性.自动配置启用即插即用(Plug and Play)
IPv6 Renumbering
IPv6的重编号:路由器发送组播数据包,其中数据包中包含2个前缀,一个是拥有比较短的生存期的前缀,还有一个是新的拥有正常时间的前缀.通知网络上的节点用完旧的前缀后换成新的前缀,这样就能进行平滑的前缀过渡
IPv4 to IPv6 Transitioning
两种转换的方式:
1.双栈(dual stack)
2.IPv6到IPv4(6to4)的隧道(tunnel)
还有一种是利用NAT来翻译46地址
来看看双栈配置的例子,如下:
Router#sh run
(略)
!
interface Ethernet0
ip address 192.168.99.1 255.255.255.0
ipv6 address 3ffe:b00:c18:1::3/127
!
(略)
再来看看隧道技术,如下图所示:
可以看出隧道技术是在双栈路由器上,将IPv6包封装在IPv4包中,然后经过IPv4网络传递到另外一端的双栈路由器上去,然后再由它解封装
要注意的是对采用了隧道技术的网络进行排错的话比较复杂,要记住的是这只是一个过渡方案,不是最终的体系结构
对隧道进行配置,需要满足以下2个条件:
1.在连接网络的两端采用双栈路由器
2.在双栈路由器的接口同时配置IPv4和IPv6的地址
如下图所示: