IPv4侷限性:
1.地址短缺.
2.IP頭部比較複雜.
3.路由器和主機的配置比較複雜.
4.複雜的重編址.
5.路由表非常龐大.
5.IP安全,IP組播和移動IP部署困難.
IPv4解決方案:
1.NAT(PAT)
端到端的IP模型被破壞了,轉發速率慢,佔用資源多.
2.子網劃分(VLSM)
3.DHCP.
4.CIDR.
5.強制高效的地址管理.
IPv6特點:
1.龐大的地址空間
全球可達性和靈活性.
支持更好的地址聚合.
支持多宿主.
支持Stateless地址自動配置.
支持即插即用.
端到端之間不需要NAT.
支持更好的重編址機制.
2.更簡單的報頭
路由更有效.
性能和轉發速率可靠.
不存在廣播.
不存在校驗和.
支持擴展報頭.
流標籤.
3.支持移動性和安全性
遵循RFC的移動IP.使用擴展報頭(路由選擇報頭和目的地址報頭).
強制的IPsec(AH和ESP).
4.過渡方式豐富多彩
雙棧
6-to-4 Tunnel
NAT轉換
IPv4與IPv6對比
1.地址空間
IPv4地址是32bits,可提供2^32個地址.
IPv6地址是128bits,可提供3.4x10^38個地址.
2.報頭
IPv4報頭長度範圍是20 - 60字節,IPv6報頭為固定長度40字節.
Version(4bit) IPv4為0x0100,IPv6為0x0110.
Traffic Class(8bit) 與IPv4的ToS相對應,主要用於DiffServ.
Flow Label(20bit) IPv4中流使用5元素標記分別是源和目的IP地址,源和目的端口號以及上層協議.IPv6中流只使用源和目的IP地址以及流標籤.
Payload Length(16bit) IPv6數據包有效負載長度.
Hop Limit(8bit) IPv4中是TTL,每經過一條路由器將其減1.
Next Header(8bit) 逐跳選項報頭(0),目的選項報頭(60),路由報頭(43),分段報頭(44),AH報頭(51),ESP報頭(50)
IPv6編址
8個16bit的十六進制段用":"分隔,每個16bit段中值範圍是0x0000 - 0xFFFF.
IPv6地址簡寫規則
1.每個16bit段中如果起始為0,則可省略.
2.在連續的16bit段如果都為0,則可書寫為"::",但每個IPv6地址只能出現一個"::".
::/0是IPv6的缺省地址.
::/128是IPv6的未指定地址(Unsecified Address).
::1/128是IPv6的Loopback接口地址.
IPv6地址類型
1.單播
用於一個單獨的接口.
A.全局單播地址(Global Unicast Address)
範圍是2000-3FFF,2000被保留.
2001::/16 全球第一個商用IPv6地址.
2002::/16 6-to-4 Tunnel保留使用.
3FFF::/16 非商業化IPv6地址,教育和科研等使用.
注:每個接口上可以存在多個全局單播地址.
B.鏈路本地單播地址(Link Local Unicast Address)
範圍是FE80::/10.用於在本地鏈路上標識設備的唯一性.
EUI-64是在MAC地址第24位後插入FFFE從而形成了Interface-ID,接口MAC地址第7位置為1,表示是全局唯一的.
C.站點本地單播地址(Site Local Unicast Address)
範圍是FEC0::/10.類似於IPv4的私有IP地址.
2.組播
標識一組設備.
Flag 0表示是永久的, 1表示是臨時的.
Scope 1表示本地接口,2表示是鏈路本地,3表示本地子網,4表示本地管理,5表示是場點本地,8表示組織本地,E表示全球範圍.
FF02::1--本地鏈路上的所有節點.
FF02::2--本地鏈路上的所有路由器.
FF02::5--本地鏈路上的所有OSPFv3路由器.
FF02::6--本地鏈路上的所有OSPFv3 DR.
FF02::9--本地鏈路上的所有RIP路由器.
FF02::A--本地鏈路上的所有EIGRP路由器.
FF02::C--本地鏈路上的所有DHCP服務器.
FF02::D--本地鏈路上的所有PIM路由器.
FF02::1:FFXX.XXXX--請求節點地址.
FF05::101--場點本地上的所有NTP服務器.
3.任意播
一到最近.多個設備共享一個相同的地址.路由器會選擇最近的設備到達目的地.
Neighbor Discovery Protocol(NDP)
依靠ICMPv6實現的,IPv6協議號是58.
1.重複地址檢測DAD(Duplicate Address Detection)
使用ICMPv6類型135 NS和請求節點地址.
路由器A發送NS,Source-IPv6為::,Destination-IPv6為其自己的請求節點地址.
路由器B也發送NS,如果出現重複地址的話,則只允許一方使用其配置的IPv6地址.
Router(config-if)#ipv6 nd daa attempt value--設置接口上DAD請求次數,設置為0表明不發送DAD請求.
2.代替ARP
使用ICMPv6類型135 NS和136 NA以及請求節點地址.
路由器A發送的NS中Source-IPv6為::,Destination-IPv6為路由器B的請求節點地址.Source-MAC為Y,Destination-MAC為路由器B的IPv6地址到組播MAC地址的映射.
路由器A發送的NS中Source-IPv6為W,Destination-IPv6為X.Source-MAC為Z,Destination-MAC為Y.
Router(config)#ipv6 neighbor ipv6-address/prefix-length interface mac-address--手工設置IPv6鄰居的MAC地址.
Router(config-if)#ipv6 nd ns-interval milliseconds--調整NS的發送間隔.
Router(config-if)#ipv6 nd reachable-time milliseconds--調整IPv6鄰居可達性的時間驗證間隔,默認為30分鐘.
Router#show ipv6 neighbors--查看IPv6的鄰居表(相當於IPv4的ARP表).
Router#clear ipv6 neighbors--清除IPv6的鄰居表.
3.無狀態的自動配置(Stateless autoconfiguration).
使用ICMPv6類型133 RS和134 RA.
1).前綴通告
使用ICMPv6類型134和組播地址FF02::1.
路由器A週期性發送RA,Source-IPv6為路由器A的本地鏈路地址,Destination-IPv6為FF02::1,RA消息中包含前綴,前綴長度以及接口MTU.
PC B發送RS,Source-IPv6為PC B的本地鏈路地址,Destination-IPv6為FF02::2.
Router(config-if)#ipv6 nd prefix ipv6-prefix/prefix-length [default valid-lifetime preferred-lifetime at valid-date preferred-date] off-link no-autoconfig no-advertise
ipv6-prefix/prefix-length RA中通告的前綴信息,無狀態自動配置的Prefix-length默認為64.
default 採用默認參數.
valid-lifetime 無狀態配置得到的IPv6地址的有效期.
preferred-lifetime IPv6地址保持首選項狀態的時間.
Router(config-if)#ipv6 nd suppress-ra--關閉接口上發送RA,通常用於連接路由器時.
Router#show ipv6 routers
4.MTU發現(PMTUD).
使用ICMPv6類型2,數據包超長錯誤信息.使用PMTUD發現的MTU值被源端緩存.
Router#show ipv6 mtu
5.ICMP重定向.
使用ICMPv6類型137.
Router(config-if)#ipv6 redirects
133 Router Solicitation(RS)前綴請求
RS由主機發送.源地址為鏈路本地單播地址,目的地址為FF02::2.每次啟動時只能發送3個RS.
134 Router Advertisement(RA)前綴通告
RA由路由器發送.源地址為鏈路本地單播地址,目的地址為FF02::1.每200s或收到RS時發送.
包含MAC地址,MTU以及prefix信息.
135 Neighbor Solicitation(NS)鄰居請求
NS數據包中的源地址為::(Local),目的地址為FF02::1:FFXX.XXX(XX.XXXX為鏈路本地單播地址的最後24bits),其中的target中包含本地鏈路單播地址.
136 Neighbor Advertisement(NA)鄰居通告
NA中宣告本地路由器使用的IPv6地址,其中源地址為其全局單播地址或鏈路本地單播地址,目的地址為FF02::1.
137 Redirect
配置命令
Router(config)#ipv6 unicast-routing--啟用IPv6路由.
Router(config-if)#ipv6 enable--在接口上自動配置鏈路本地單播地址.
Router(config-if)#ipv6 address FE80:x.x.x.x.x.x.x/n link-local--修改鏈路本地單播地址
Router(config-if)#ipv6 address x.x.x.x.x.x.x.x/n--直接配置IPv6全局單播地址.
Router(config-if)#ipv6 address x.x.x.x.x.x.x.x/n EUI-64--依據Interface-ID配置全局單播地址.
Router(config-if)#ipv6 address autoconfig--IPv6地址無狀態自動配置.
Router#show ipv6 interface slot/port
Router#show ipv6 neighbors
Router#show ipv6 route--查看IPv6路由表.
Router#show ipv6 protocols
IPv6路由協議
1.Static
Router(config)#ipv6 route ipv6-prefix/prefix-length {next-hop | interface} [distance]
Next-hop必須指定為下一跳的本地鏈路地址且要配置出站接口.
Router(config)#ipv6 route ipv6-prefix/prefix-length interface link-local-address--推薦IPv6靜態路由配置方式.
Router(config)#ipv6 ::/0 interface next-hop--配置IPv6缺省路由.
2.RIPng
DV路由協議,最大跳數為15跳,RIP的防環機制仍然保留.使用組播地址FF02::9.使用UDP端口號521.
下一跳地址為鏈路本地單播地址,更新源地址也是本地鏈路地址.
Router(config)#ipv6 router rip tag--啟用RIPng進程,tag只標識進程本地有效.
Router(config-if)#ipv6 rip tag enable--接口上啟用RIPng進程.
Router(config-if)#ipv6 rip tag default-information {only | originate}--宣告RIPng缺省路由,only表示只宣告缺省路由抑制其他明細路由.originate表示既宣告缺省也宣告明細.
Router(config-if)#ipv6 rip tag summary-address ipv6-prefix/prefix-length--配置RIPng路由彙總.
Router(config-if)#ipv6 rip tag metric-offset number--配置RIPng偏移列表.
Router#debug ipv6 rip
Router#clear ipv6 rip tag
3.OSPFv3
與IPv4具有相同機制.
攜帶IPv6地址,鏈路本地單播地址用於源.
Link-ID取消了.OSPFv3 Router-ID必須手工指定.
OSPFv3 LSA
0x2001 LSA 只包含ADV Router以及鄰居的Router-ID
0x2009 LSA(鏈路) 包含鏈路本地單播地址以及接口地址.
0x2009 LSA(區域內前綴) 包含前綴信息.
以上三個LSA 相當於將OSPFv2 Router LSA進行了拆分.
0x2003 LSA(區域內前綴LSA)
0X2004 LSA(區域間前綴LSA)
0x2005 LSA 攜帶外部網絡的前綴信息.
Router(config)#ipv6 router ospf process-id
Router(config-rtr)#router-id x.x.x.x--必須手工設置Router-id.
4.IS-IS
Router(config)#router isis [tag]
Router(config-router)#net network-entiy-title
Router(config-if)#ipv6 router isis
5.MP-BGPv4
Router(config)#router bgp autonomous-system
Router(config-router)#no bgp default ipv6-unicast
Router(config-router)#bgp router-id x.x.x.x--IPv6中仍然使用一個32bit的點分十進制表示的Router-ID.
Router(config-router)#neighbor ipv6-address remote-as autonomous-sysytem
Router(config-router)#address-family ipv6 unicast
Router(config-router-af)#neighbor ipv6-address activate
Router(config-router-af)#network ipv6-prefix/prefix-length
Router#show bgp ipv6 [summary]
6.EIGRPv3
IPv4與IPv6的轉換
1.雙棧
IPv4以太網幀的協議ID為0x0800,IPv6以太網幀的協議ID為0x86DD.
在Cisco路由器接口上同時配置了IPv4和IPv6地址就是啟用了雙棧.
2.Tunnel
路由器必須支持雙棧.將IPv6數據包封裝到IPv4數據包中.【IPv4報頭 IPv6報頭 有效載荷】
IPv6有效載荷減少了20字節(IPv4報頭).封裝在IPv4的IPv6數據包使用IP協議號41.
1).IPv6 over IPv6
Router(config)#interface tunnel number
Router(config-if)#ipv6 address ipv6-prefix/prefix-length--推薦使用/64前綴.
Router(config-if)#tunnel source ipv4-address
Router(config-if)#tunnel destination ipv6-address
Router(config-if)#tunnel mode ipv6ip
Router(config)#ipv6 route ipv6-prefix/prefix-length tunnel number
2).6-to-4 Tunnel
使用2002::/16的地址空間,IPv4地址轉換為IPv6地址的形式是2002:IPv4-address::/48.
Router(config)#interface loopback number
Router(config-if)#ip address ipv4-address netmask
Router(config)#interface interface-type interface-number
Router(config-if)#ipv6 address ipv6-prefix/prefix-length
Router(config)#interface tunnel number
Router(config-if)#ipv6 unnumbered interface-type interface-number
Router(config-if)#tunnel source interface-type interface-number
Router(config-if)#tunnel mode ipv6ip 6to4
Router(config)#ipv6 route 2002::/16 tunnel number
3).6-to-4 Tunnel 中繼
在6-to-4 Tunnel上增加一條缺省路由.
Router(config)#ipv6 route ::/0 2002:IPv4-address::xx
3.NAT-PT
Router(config-if)#ipv6 nat
Router(config-if)#ipv6 nat prefix ipv6-prefix/96
Router(config)#ipv6 nat v6v4 source ipv6-address ipv4-address
Router(config)#ipv6 nat v4v6 source ipv4-address ipv6-address
Router#show ipv6 nat translations
閱讀更多 網事如煙釋然 的文章