文摘:牛的大腦-IPv6

來源:
牛的大腦-IPv6
http://systw.net/note/af/sblog/more.php?id=60

簡介

IPv6為1995年SIPP更名,原名為IPNG(NextGeneration)
IPv5是實驗性

IPv6位址長度128bit(16 bytes), IPv4位址長度32bit(4 bytes)
header長度固定320 bits(40 bytes)

IPv6位址分類

保留IP
::/0 表示default route (ip -6 route中可用, ipv4是0/0)
::/128表示unspecified address(未知的位置),或無適合ip
::1/128 為loopback位置,等同於ipv4的127.0.0.1
64:ff9b::/96      IPv4/IPv6 translation  (NAT64,DNS64)
::ffff:0:0/96     IPv4 mapped addresses.
::ffff:0:0:0/96   IPv4 translated addresses.
可參考wiki https://en.wikipedia.org/wiki/Reserved_IP_addresses#IPv6

Ipv6是可以有多種address type, ipv4只能一種type
unicast, mutlicast, anycast/cluster, 沒有ipv4的broadcast type
1-to-1, 1-to-many, 1-to-nearest/1-to-1-of-many

unicast分為
1. scoped - global unicast 相當於ipv4 public ip ----> 2000::/3
2. no-scoped
 2.1 unique local unicast 相當於ipv4 private ip ----> FD00::/8
 2.2 link-local unicast ----> FE80::/10
另有不使用的
Site-Local unicast ----> FEC0::/10
IPv4-Compatible ---->
格式為[96bit的0][32bit ipv4位置]
ex:ipv4位置135.75.43.52,等同於16進位的874B2B34,因此ipv6位置是::874B:2B34

Site-Local,Link-Local,unique-local不可被繞送,類似ipv4的私有ip

multicast為FF00::/8
 2表示link-local,也就是網路FF02::/16
 5表示site:也就是網路FF05::/16

常見的群播位址
ff02::1 相同鏈路上的所有ipv6 client節點
ff02::2 相同鏈路上的所有ipv6 router節點
ff02::1:ff00:0/104 solicited node multicast address(請求節點群播位址),用於ND,DAD
ff02::1:2 轉送到dhcp伺服器的router位置
ff05::1:3 dhcp伺服器位址
ff05::101 ntp伺服器位址
常見的routing protocol群播位址
FF02::5,FF02::6 OSPF訊息
FF02::9 RIPv2訊息
FF02::A EIGRP訊息

anycast
格式為[不固定首碼][0000...]

IPv6分配方式


1. Stateful Auto-configuration(全狀態自動配置)
ipv6主機使用ipv6群播位置ff02::1:2尋找Stateful DHCPv6位置(ipv4使用廣播), stateful:伺服器會追蹤狀態訊息(同dhcpv4),

2. Stateless Autoconfiguration(無狀態自動配置)
1透過ndp來學習prefix,prefix長度,預設閘道
 1.1主機發送NDP的RS訊息到ff02::2以要求所有ROUTER回覆,目前子網路的ipv6 prefix以及預設閘道是多少
 1.2router透過NDP的RA訊息到ff02::1以回覆所有主機
2使用EUI-64的格式來計算IPv6位址的主機id
ps:目前IPv6位址=子網路prefix+eui64位址
3使用無狀態dhcp學到dns的ipv6位址
管理員需事先在Stateless DHCPv6 server內指定好DNS位址
ps:透過RDNSS技術可不用透過DHCPv6解決DNS問題

3. static-configuration(手動設定)
手動指派128bit完整位置
手動指派64bit prefx並要求設備使用EUI64格式

ND(neighbor discovery)

RFC4861
ND訊息種類
RS(Router Solicitation,路由器邀請封包)
RA(Router Advertisement,路由器公告封包)
NS(Neighbor Solicitation,芳鄰邀請封包)
NA(Neighbor Advertisement,芳鄰公告封包)
Redirect(重蹈封包)

DAD(duplicate address detection,重複位址偵測)
IPv6學到位址時,會執行DAD以檢查是否有ip重覆
透過ndp的ns訊息做檢查

IND(inverse neighbor discovery)找出IPv6的位址
該機制會使用請求節點群播位址ff02::1:ff00:0/104

Address Resolution
主要用來找出MAC,主機傳送封包前會從mac table找mac(如同IPv4的ARP程式)
若沒有mac則做以步驟
1.1主機發送NS(neighbor solicitation)的ICMP訊息到FF02::1:FF00:0/104(solicited node),要求對方回覆MAC位置
1.2對方將mac透過NA(neighbor advertisement)的ICMP訊息 以回覆該主機


ipv6取代ipv4的功能
IPv6 IPv4
ICMPv6 ICMP
ND ARP,icmp router discovery,icmp redirect
MLD IGMP

MLD(Multicast Listener Discovery)
用來交換 IPv6 路由器之間的成員資格狀態資訊,這些路由器支援多點傳送及多點傳送群組的成員。
獨立成員主機報告多點傳送群組中的主機成員資格,並且多點傳送路由器每隔一段時間輪詢一次成員資格狀態。


ipv4/ipv6互通方式

dual stack(雙堆疊):設備同時使用ipv4和ipv6
translator(位址協定轉換機制),ipv6主機和ipv4主機轉換和通訊, 使用到位址64:ff9b::/96
tunneling:將ipv6封裝在ipv4上,使用部份ipv4設備建立起ipv6網路





留言