ipv6 flow

一、IP地址短缺的原因:
1、因分類的減少:因分類,有D、E兩大類地址不能使用,A、B、C三類中又有私有地址、本地鏈路地址、本地環回地址、廣播地址不能使用,因而大大減少了可用的IP地址數目。
2、地址分配的不合理:
3、器由器、交換機物理接口、環回接口的佔用;
4、新的地址需求的快速增長
二、節省和解決ip地址緊缺的方法
1、VLSM和CIDR:VLSM讓IP地址劃分更加精確,CIDR使得可以彙總超過主類網絡邊界的路由條目,減少了路由條目的數量
2、私有地址和NAT地址轉換
3、IPV6
三、ipv4的侷限性
1、地址空間的侷限性:43億的地址卻只有2.5個億能用。2011年到2012年就將耗盡
2、安全性:IPV4在網絡層沒有安全性可言,不能實現端對端的加密安全。
3、nat破壞了internet端到端的網絡模型
4、ipv4地址分配雜亂無章,沒有層次性,不可匯聚,網絡設備需要維護龐大的路由表項
5、ipv4包頭過於複雜,使得網絡節點處理的效率不高
四、nat的侷限性
1、破壞了端到端的IP模型;
2、端到端用戶到用戶的安全與加密不能被實現;
3、每個條目都會佔用64K的內存,而且還有一個生存期,極大的佔用內存資源;
4、增加了路由查詢的延遲、增加了CPU的負擔;
5、PAT基於端口映射,故那些基於端口的應該不能被實現,如web.
6、那些內嵌IP地址的應用程序不見得能支持NAT(無法支持,不能總改來改去吧)。
五、IPV6的高級屬性
1、更大的地址空間:
這些地址全球可達
全新的地址分配,使得合理的聚合成爲可能
多重初始地址
2、自動配置:
無狀態自動配置,IPV6的技術核心,通過NTP協議實現
即插即用:plug and play
自動重編址
3、更簡單更有效的IP包頭
更大,但結構簡單
沒有了廣播,代之以組播
沒有檢驗。少了一個檢查和重寫的步驟,大大提高了路由器的性能。
擴展包頭
流標籤
4、移動性和安全性
mobile ip with direct routing
端到端的ipsec
5、QOS
6、組播:ipv6中的IGMP取消了,代之以MLD;PIM中的DM模式被取消了;MBGP
7、與IPV4的兼容
(1)雙站:優選IPV6,次選IPV4
(2)6to4的Tunnel:在IPV6的頭外面再加一個IPV4的頭在IPV4的網絡中進行傳輸。
(3)Nat轉換:網絡層的轉換、傳輸層的轉換、協議(ipv4和ipv6)的轉換
(4)應用層網關進行轉換
六、IPV6地址
1、更大的地址空間
長度爲ipv4地址的4倍
總地址數量:3.4*10的38次方個地址
平均每個人:5*10的28次方個地址
2、地址格式
8個組,每個組用4個16進制的數組成.前導的0可以省略,後面的0則不能省;雙::代表連0,但只能用一次;http地址寫成如下格式:[url=http://[2001::1]:80/index.htm]http://[2001::1]:80/index.htm[/url]
3、IPV6單播地址
(1)未指定的地址,環回地址和ipv4兼容地址:全0的地址爲未指定地址,在沒有可用地址時,當作點位符使用。::1爲環回地址,相當於ipv4中的127.0.0.1.ipv4兼容地址爲::+ipv4地址,或者寫成16進制。
(2)link local:在接口啓用IPV6之後就會產生一個這樣的地址,僅在本地鏈路使用,按64位的接口ID自動配置。格式爲FE80+54個0+64位的接口ID。範圍爲FE80::/10
(3)site local:相當於IPV4的私有地址。格式爲:FEC0+38個0+16位的子網ID+64位的接口ID.原來的定義爲FEC0::/10,新標準爲Unique local,範圍爲FC00::/8和FD00::/8
(4)全球可聚合單播地址:作爲普通應用的IPV6地址。格式爲:48位的全球可路由的前綴+16位的子網ID+64位的接口ID。其中最前面3位由IANA掌握,緊跟着的13位爲TLA頂級聚合字段,用於互聯網骨幹的彙總,接下來的8位爲RES區域,再下來的24位爲NLA網絡層聚合,子網ID爲站點管理,接口ID標識主機。範圍爲:2000---3FFF(目前已定義)。3FFF爲6骨幹使用,非商業化使用。2002爲6to4的Tunnel使用。2001爲商業化使用。向上匯聚爲/48位。
4、IPV6組播地址FF00::/16
(1)格式:FF+Lifetime+Scope+112bit的組ID
其中Lifetime爲0代表永久,爲1代表暫時的
Scope:爲1代表本地接口範圍
爲2代表本地鏈路範圍
爲3代表本地子網範圍
爲4代表本地管理範圍
爲5代表本地站點範圍
爲8代表組織機構範圍
爲E代表全球範圍
(2)保留地址:FF0X::(X=0~F)
FF02::1在本地鏈路起作用,代表所有的節點
FF02::2在本地鏈路起作用,代表所有的路由器
FF02::9在本地鏈路起作用,代表所有的RIP路由器
FF02::1:FFXX:XXXX/104在本地鏈路起作用,代表被請求節點的組播地址。其中一個被請求節點的組播地址的後24位爲本地鏈路地址的後24位,或者說是mac地址的後24位。如果手工配置了全局IPV6地址,還會產生與這些地址相對應的被請求節點的組播地址,格式爲FF02::1:FF+這些地址的最後24bit。每一個全局單播地址和站點地址,都會產生一個這樣的被請求節點的組播地址。如果配置的地址借用了EUI-64格式,因爲產生的結果地址是一樣的,所以在接口信息下只顯示一條。每個節點都會監聽本設備上所有這些被請求節點組播地址,用於響應查詢信息。
FF05::101在本地站點有效,代表所有的NTP服務器
5、IPV6的任意播地址:N位的前綴+(128-N)位的接口ID
6、 節點必須與可選的地址:
(1)link local地址:FE80::/10--------------------必須
(2)loopback地址::1-----------------------------必須
(3)site local/Unique local地址:FEC0::/8或者FC00::/8、FD00::/8-----可選
(4)Auto-configured 6to4地址--------------------可選
(5)被請求節點組播地址FF02::1:FFXX:XXXX---------必須
(6)所有節點的組播地址FF02::1-------------------必須
(7)Global地址:---------------------------------可選
7、一個接口可以有多個IPV6地址,但在進行通迅時選用最大的
8、IPV6與二層技術
(1)幾乎所有鏈路層技術都能支持IPV6:以太、PPP、FDDI、token ring、HDLC、NBMA、ATM、幀中繼、IEEE1394
(2)IPV6擁有一個特定的以太協議ID,0X86DD
(3)組播在以太網中的映射:將FF02+5組0壓縮爲33:33:+IPV6組播地址最後的32bit
IPV4的映射爲0x005e.....
(4)本地鏈路地址的獲得方法:EUI-64、自動配置、DHCP、手工寫:
EUI-64格式,本質是將48位的MAC地址變爲64位的接口ID,做法是將接口mac地址從中間一分爲二,並加進FFFE,然後將第7個二進制位置1(置1爲本地鏈路,置0爲全局唯一),即得到本地鏈路地址。
手動配置本地鏈路地址:R1(config-if)#ipv6 address fe80::1 link-local
借用EUI-64格式:R1(config-if)#ipv6 add 2001:2::/64 eui-64 指定網絡號爲2001:2::/64,主機地址由eui-64獲取(直接取自本地鏈路地址)。這個是爲讓其他地址也借用EUI-64格式。注意這時只會產生一個EUI-64格式的被請求節點的組播地址。
七、IPV6地址的獲取方式
1、手工寫
2、自動配置:
(1)鄰居發現協議NDP:自動前綴分發,然後節點自己加上接口ID(只用於主機)
(2)借用EUI-64格式地址
(3)DHCP
八、配置
1、R1(config)#ipv6 unicast-routing 啓用IPV6單播路由功能
R1(config-if)#ipv6 enable
R1(config-if)#ipv6 address
九、IPV6包格式
(1)格式:版本+traffic class+流標籤+負載長度+下一個包頭+hop limit+源地址+目標地址+下一個包頭+擴展包頭信息+DATA
traffic class相當於IPV4中的TOS字段
流標籤:二十個比特長度。因爲ipv6包文中去掉了協議號和包含端口號的可選項,故不能識別數據流,爲此弄了一個流標籤,在鑑別流的時候由5元組變爲了3元組。配合traffic class實現QOS。
因爲去掉了可選項,因此IPV6的包頭總是定長的。
(2)與IPV4的比較:
保留的字段:可以沿用的是版本字段、源地址和目標地址字段
去掉的字段:IHL(ipv4的包長度分爲總長度和包頭長度,包頭長度可變,IPV6中沒有包頭選項,不需要關心頭部長度,是固定的,只需要一個總長度即可。)、分片標誌,分片標識,分片偏移、checksum字段
替換的字段:TOS替換爲traffic class,TTL變爲hop limit,協議號變爲下一個包頭
新增的字段:流標籤

十、NDP鄰居發現協議
1、作用:
(1)替代IPV4中的ARP,用於三層和二層的映射,以完成數據包的封裝;替代ICMP的重定向和路由器發
(2)建立鄰居關係
(3)主機(只能對主機工作)用來發現路由器,並獲得ip地址
(4)重複地址檢查(DAD)
2、實現
(1)5種消息報文
RS(Router solicitation):ICMP v6類型爲133.主機向路由器發送,用於獲得路由前綴和缺省路由
RA(Router advertisement):ICMP V6類型爲134.路由器的響應報文。
NS(Neighbor solicitation):ICMP V6類型爲135.節點向被請求節點的組播地址發送這個報文,收到這個報文的節點返回自己的二層地址,並以此建立鄰居表.
NA(Neighbor advertisement):ICMP V6類型爲136.節點返回的報文
Redirect:ICMP v6 類型爲137
注:
icmp v6在擴展包頭中的編號爲58
icmp v6作用:路徑mtu發現
NDP協議依賴於本地鏈路上的ICMP消息
RS/RA只會在以太接口上出現,因爲思科默認只有以太口才接主機。
(2)主機獲得路由前綴和默認路由的過程
通過RS/RA報文來實現
主機首先向路由器發送一個RS路由器請求報文,數據包源地址爲主機的本地鏈路地址,目標地址爲所有節點的組播地址FF02::1,目的是爲了確定自己的路由前綴和獲得缺省路由。
路由器在收到RS報文後返回一個RA響應報文,數據包源地址爲路由器本地鏈路地址,目的地址爲所有節點組播地址。數據爲選項、前綴、生存時間、自動配置標記。路由器每隔200秒週期性的通告RA到所有節點組播地址ff02::1。
(3)鄰居發現和建立的過程
以太網上主機會主動發RS查詢,路由器也會主動發RA通告,如果有主機存在那麼主機和路由器之間會建立鄰居關係。如果只有路由器,將只在有數據流量時纔會建立鄰居,並且依賴的是ICMP信息。
這時節點向對方節點的被請求組播地址發送NS查詢,源地址爲本節點的全球可聚合單播地址,數據部分爲本節點的本地鏈路地址,目的是爲查詢對方本地鏈路地址.
其他節點在收到這個報文之後返回一個NA的單播響應數據包,源地址爲自己的全球可聚合單播地址,目的地址爲原發送節點的全局地址,數據部分爲自己的本地鏈路地址,同時將對方加進自己的鄰居表.NA只在剛開始加入IPV6進程和收到NS請求時發送。
發送NS的那個節點在收到返回的NA數據包後,將對方加進自己的鄰居表.
至此,二三層映射完成!
(4)DAD衝突檢測
一個設備或者一個接口加入IPV6,首先假定自己的本地鏈路地址(或者說是MAC地址)與網絡上的其他MAC地址不衝突,併發送一個源地址爲空(代表不需要回應)目標地址爲本設備上自己的被節點請求的組播地址(最後24bit爲自己本地鏈路地址的後24bit)的數據包.
因爲所有節點都監聽以自己的被請求節點組播地址的最後24bit爲最後24bit的組播地址,所以當來了一個最後24bit和自己的被請求節點組播地址相同的被請求節點組播地址的數據包,這個設備會立馬返回一個衝突的信號,申明這個地址已被佔用。(如果衝突,發送DAD信息的那個節點接下來該怎麼辦?)
如果沒有返回衝突信號,則發送DAD信息的節點會認爲自己的本地鏈路地址唯一。這時該節點再發送一個NA通告。
(5)節點加入過程
第一步確定自己的本地鏈路地址合法併發送本地鏈路地址的NA通告:一個節點加入IPV6域時,首先發送源地址爲空目標地址爲FF02::16(這個是什麼地址?做什麼的?)的DAD,然後發送一個源地址爲空,目標地址爲本節點本地鏈路地址的NS查詢信息,以確保自己的地址在本地鏈路唯一。收到返回的DAD查詢信息後確定是啓用還是不啓用接口。如果本地鏈路地址唯一,則啓用接口併發送一個源地址爲自己本地鏈路地址目標地址爲所有節點組播地址的NA鄰居通告。這時還發送一個源地址爲本地鏈路地址目標地址爲FF02::16的數據包(這又是做什麼的?)。
第二步確定全局地址合法並向外發送全局地址的NA通告:接下來發送一個源地址爲空,目標地址爲自己全局地址的NS查詢,還發送一個源地址爲自己的全局地址,目標地址爲FF02::16的查詢,確定這個全局地址唯一後發送NA通告,源地址爲自己的全局地址,目標地址爲所有節點組播地址。然後這個地址被啓用。
如果是以太接口,且下面有主機,路由器還會發送RA路由器通告,源地址爲路由器接口本地鏈路地址,目標地址爲所有節點組播地址。(本地鏈路地址就是用來發RA的,怎麼理解?)
以太鏈路上主機和路由器之間會主動形成鄰居關係,路由器之間有流量才建立鄰居.串口上好像不建立鄰居.

(6)接口鄰居發現協議信息及修改
R2(config-if)#do sh ipv int
FastEthernet0/0 is administratively down, line protocol is down
IPv6 is enabled, link-local address is FE80::C800:5FF:FE4C:0 [TEN]-----以EUI-64格式自動算出來的link local地址。
No global unicast address is configured
Joined group address(es):
FF02::1------------------------------------------------------所有節點組播地址
FF02::2------------------------------------------------------所有路由器組播地址
FF02::1:FF4C:0-----------------------------------------------被請求節點組播地址,路由器會監聽所有這些地址,用於DAD衝突檢測和鄰居請求,響應查詢信息
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1-----------------鄰居發現DAD信息,嘗試次數
ND reachable time is 30000 milliseconds----------------------鄰居發現可達成的或獲得的時間(做什麼用的?)
ND advertised reachable time is 0 milliseconds---------------NA可達成的或獲得的時間(做什麼用的?)
ND advertised retransmit interval is 0 milliseconds----------NA重傳時間
ND router advertisements are sent every 200 seconds----------RA發送週期
ND router advertisements live for 1800 seconds---------------RA生存期
Hosts use stateless autoconfig for addresses.----------------無狀態自動配置模式,非DHCP配置
修改:
R2(config-if)#ipv6 nd ?
advertisement-interval Send an advertisement interval option in RA's
dad Duplicate Address Detection
managed-config-flag Hosts should use DHCP for address config
ns-interval Set advertised NS retransmission interval
other-config-flag Hosts should use DHCP for non-address config
prefix Configure IPv6 Routing Prefix Advertisement
ra-interval Set IPv6 Router Advertisement Interval
ra-lifetime Set IPv6 Router Advertisement Lifetime
reachable-time Set advertised reachability time
suppress-ra Suppress IPv6 Router Advertisements --------抑制RA,不發RA通告
(6)用NDP來替代ARP和ICMP
要ping通一個地址(全球可聚合單播地址或本地站點地址),首先在鄰居表裏得有這個地址和鄰居MAC地址的對應表項。
然後發送一個源地址爲本地全局單播地址或本地站點地址,目標地址爲以鄰居表裏鄰居單播地址後24位爲後24位的被請求節點的組播地址,網絡上如果還存在這個地址的路由器,那麼它會監聽並返回響應數據包。這個返回的數據包是一個NA鄰居通告,源地址爲自己的全局單播地址或本地站點地址,目標地址爲對方的全局單播地址或本地站點地址。此時鄰居關係被重新激活。
查看Debug信息所得:首先兩臺路由器之間並未建立鄰居關係,鄰居表裏並不存在對方的相應條目。這時要P對方,路由器會發送一個源地址爲本節點全局地址目標地址爲對方全局地址的節點請求組播地址的NS查詢。這時因爲會找不到鄰居的MAC地址,數據包會封裝失敗。於是路由器會以源地址爲本節點全局地址,目標地址爲對方節點請求組播地址的數據包完成封裝,因爲對於節點請求的組播地址,在二層以太網上的MAC地址是33:33:+IPV6組播地址最後的32bit,而節點請求的多播地址的最後24bit就是對方全局IPV6地址的後24位,故存在二三層的映射,於是數據包被封裝進而被髮送出去。這個時候NS查詢的源地址爲本節點全局地址,目標地址爲對方節點被請求節點組播地址,數據部分爲本節點MAC地址。對方收到後將被請求節點多播地址轉換爲請求節點地址,並返回一個單播NA通告,以此建立鄰居表項。
對比一下,DAD和ICMP V6都用到了NS/NA,但作用和用法不盡相同:
DAD中NS是爲了在網絡中找尋自己的mac地址,源地址爲空,目標地址爲自己的被請求節點的組播地址;
icmp v6中NS是爲了找尋網絡中對方的MAC地址,源地址爲自己,目標地址爲對方的被請求節點組播地址

十一、IPV6路由
(1)靜態路由:ipv6 route 2001:2::/64 Serial1/0 先開啓IPV6單播路由
(2)動態路由:
R1(config)#int s1/0
R1(config-if)#ipv6 rip cisco enable
全局模式開啓協議則可調其他屬性
十二、GRE隧道
(1)環境:兩邊是IPV6,中間是IPV4
(2)目的:實現IPV6的對接
(3)配置:
R1(config)#interface tunnel 0
R1(config-if)#tunnel source s1/0
R1(config-if)#tunnel destination 10.1.23.2
R1(config-if)#ipv6 enable
R1(config-if)#tunnel mode ipv6ip
R1(config-if)#ipv6 address 2001:1::3/64
理解得簡單一點就是把tunnel或者隧道當成自己的一個接口就行了,其他的該怎麼做怎麼做。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章