IPv6 協定與特性介紹 TWNIC 郭晟偉 Outline z IPv6 Addressing Unicast Aggregatable Global Scoped address Link-Local Unique-local Special IPv6 address Unspecified Loopback IPv4/IPv6 transition Multicast Anycast z Protocol IPv6 Header ICMPv6 Neighbor Discovery Address Autoconfiguration Address Notation z z z 以16進位,每16位元為單位並以‘:’為區隔來表示 2001:3600:4368:1234:0008:AB12:98CE:1000 IPv4以十進位,每8位元為單位並以‘‧’為區隔來表 示,如202.39.157.141 為使標示簡潔,位於一單位內前方之0可省略 2001:3600:4368:1234:8:AB12:98CE:1000 為使標示簡潔,若有連續為0 之位元,可以“::”表示, 但一個位址中只能使用一次 2001:3600::1 與 2001:3600:0000:0000:0000:0000:0000:0001 2001:3600::3:0000:1與 2001:3600:0000:0000:0000:0003:0000:0001 IPv6 - Addressing Model Addresses are assigned to interfaces z z z Interface ‘expected’ to have multiple addresses Addresses have scope z No change from IPv4 Model Link Local Unique Local Global Global Addresses have lifetime Valid and Preferred lifetime Site-Local Link-Local Unique-Local Basic Address Types z Unicast z Multicast z Address of a single interface Delivery to single interface for one-to-one communication Address of a set of interfaces Delivery to all interfaces in the set for one-to-many communication Anycast Address of a set of interfaces Delivery to a single interface in the set for one-to-nearest communication Nearest is defined as being closest in term of routing distance U M M M A A A Global Routing Prefixes Allocation Prefix binary Prefix hex Fraction of address space Unassigned 0000 0000 ::0/8 1/256 Reserved 0000 001 Global unicast 001 2000::/3 1/8 Link-local unicast 1111 1110 10 FE80::/10 1/1024 Reserved (formely Site-local unicast) 1111 1110 11 FEC0::/10* * deprecated 1/1024 Local IPv6 address 1111 110 FC00::/7 Private administration 1111 1101 FD00::/8 Multicast 1111 1111 FF00::/8 1/128 The updated list of address allocations can be found at: http://www.iana.org/assignments/ipv6-address-space. 1/256 Global Unicast Address z z z Global routing prefix A service provider is assigned a portion of this prefix by the Internet Assigned Numbers Authority (IANA), and it then allocates a subspace to its customers. Its length is 48 bits or shorter based on the RFC 4291 recommendations.* Subnet ID An organization receives a prefix from its service provider where the global routing prefix identifies the service provider (SP) and the organization inside the SP, and the subnet ID identifies the organizational structure of its network.* Interface ID The low-order 64 bits of the address are used to identify the interfaces of nodes on a link. * Current allocations Prefix Allocation RFC 2000::/3 Assignable Global Unicast Address space Allocations made out of the 2000::/3 space can be viewed at http://www.iana.org/assignments/ipv6unicast-address-assignments RFC 3513 2001:0000::/32 Teredo RFC 4380 2001:DB8::/32 For documentation purposes only, nonroutable RFC 3849 2002::/16 6to4 RFC 3056 3FFE::/16 6Bone Testing (to be phased out by June 2006) RFC 2471 IPv6 interface identifier z z z z Lowest-order 64-bit field of unicast address Globally unique or locally unique within a subnet Future higher-layer protocols may take advantage of globally-unique interface IDs to identify nodes independently of their current location Configure interface identifier manual configuration DHCPv6 (configures whole address) automatic derivation from MAC address or other hardware serial number pseudo-random generation (for client privacy) the latter two choices enable “serverless” or “stateless” autoconfiguration, when combined with high-order part of the address learned via Router Advertisements The conversion of a universally administered, unicast IEEE 802 address to an IPv6 interface identifier Special IPv6 address z Unspecified address(0:0:0:0:0:0:0:0 or ::) Indicate the absence of an address Equivalent to IPv4 0.0.0.0 Never assigned to an interface or used as a destination address Loopback address (0:0:0:0:0:0:0:1 or ::1) Identify a loopback interface IPv4-compatible address (0:0:0:0:0:0:w.c.x.z or ::w.c.x.z) (RFC4291) Used by dual-stack nodes IPv6 traffic is automatically encapsulated with an IPv4 header and send to the destination using the IPv4 infrastructure IPv4 mapped address (0:0:0:0:0:FFFF:w.c.x.z or ::FFFF:w.c.x.z) (RFC 4291) Represent an IPv4-only node to an IPv6 node Never used as a source or destination address of IPv6 packet z z z Address for IPv4/IPv6 Transition z z 6to4 Addresses (RFC 3056) IPv6 hosts or networks communicate over an IPv4-only infrastructure EX: 62.2.84.115, the 6to4 address is 2002:3e02:5473::/48 ISATAP addresses (RFC 4214) The Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) is an automatic tunneling mechanism EX: Host: 192.168.0.1 and 64-bit prefix of 2001:DB8:510:200::/64, the ISATP address is 2001:DB8:510:200:0:5EFE:C0A8:1 Address for IPv4/IPv6 Transition(cont.) z Teredo Addresses (RFC 4380) Link-Local Unicast Addresses z z z z z meaningful only in a single link zone, and may be re-used on other links Link-local addresses for use during autoconfiguration and when no routers are present Required for Neighbor Discovery process, always automatically configuration An IPv6 router never forwards link-local traffic beyond the link Prefix= FE80::/64 1111111010 10 bits 0 interface ID 54 bits 64 bits Unique-Local Address z z z z z z meaningful only in a single site zone, and can not be re-used in other sites Equivalent to the IPv4 private address space Replace Site-Local Addresses L identifies the assignment policy. Only value 1 (FD00::/8) is currently in use designating a local assignment* Global ID is a 40-bit identifier that ensures the global uniqueness of the address. It is generated pseudo-randomly and must not be sequential. Because ULAs should not be globally routed, they do not need to be aggregated, so sequential global IDs are not necessary * Prefix= FC00::/7 L=1 表示Local L=0 保留中 1111110 L Global ID subnet ID 7 bits 1 bits40 bits 16 bits interface ID 64 bits Multicast IPv6 addresses z z z Multicast address can not be used as source or as intermediate destination in a Routing header low-order Transient(T) flag indicates permanent (T=0) / transient(T=1) group; three other flags reserved Scope field 1: node-local 2: link-local 5: site-local 8: organization-local E: global Others: reserved 11111111 flags scope 8 4 4 group ID 112 bits Anycast IPv6 address z z z z z Assigned to multiple interface Only used as destination address Only assigned to router anycast addresses are indistinguishable from unicast Subnet-router anycast address is predefined and requires Subnet Prefix n bits 000…000 128 - n bits Other IPv6 addresses z Solicited-node address Facilitates the efficient query of network node during address resolution Prefix= FF02::1FF00/104 and the last 24-bits of IPv6 address Global Unicast Address Network ID Interface ID Copy 64 bits FF02 0000 0000 0000 0000 FF02::1:FF00:0000/104 0001 FF 24 bits Dualstack TCP/IP Protocol Suite IPv6 vs. IPv4 Packet Data Unit maximum 65535 octets minimum 20 octets IPv4 Header Data Field IPv4 PDU maximum 65535 octets Fixed 40 octets IPv6 Header 0 or more Extension Header Extension Header IPv6 PDU Transport-level PDU Comparison of IPv4 and IPv6 Header IPv6 Packet Header IPv4 Packet Header Ver IHL Service Type Total Length Identification Flags TTL Header Checksum Protocol Source Address Offset Ver Traffic Class Payload Length Flow Label Next Header Source Address Destination Address Options + Padding 32 bits Destination Address Hop Limit Summary of Header Changes between IPv4 & IPv6 z z z Streamlined ¾ Fragmentation fields moved out of base header ¾ IP options moved out of base header ¾ Header Checksum eliminated ¾ Header Length field eliminated ¾ Length field excludes IPv6 header ¾ Alignment changed from 32 to 64 bits Revised ¾ Time to Live t Hop Limit ¾ Protocol t Next Header ¾ Precedence & TOS t Traffic Class ¾ Addresses increased 32 bits t 128 bits Extended ¾ Flow Label field added IPv6 extension header 40 octets IPv6 Header 0 or more Extension Header Extension Header Transport-level PDU IPv6 PDU general form z z z z z z Hop-by-hop options header Routing header Fragment header Authentication header Encapsulating security payload header Destination options header IPv6 extension header(cont.) Octets: z 40 IPv6 header Hop-by-hop options header Variable IPv6 specification recommended order: Variable Routing header 8 Fragment header Authentication header Encap security payload header Variable Variable Variable TCP header Application data Variable = Next header field IPv6 packet with all extension headers IPv6 header Hop-by-hop options header Destination options header(for intermediate destination when the routing header is present) Routing header Fragment header Authentication header Encapsulation security payload header Destination options header(for final destination) ICMPv6 z ICMPv6 messages (RFC4443) ICMPv6 error messages Destination Unreachable (message type 1) Packet Too Big (message type 2) Time Exceeded (message type 3) Parameter Problem (message type 4) ICMPv6 informational messages Echo Request (message type 128) Echo Reply (message type 129) Minimum MTU z Link MTU z Path MTU z z z A link’s maximum transmission unit(ex: the max IP packet size that can be transmitted over the link) The minimum MTU of all the links in a path between a source and a destination Minimum link MTU for IPv6 is 1280 octets vs 68 octets for IPv4 On links with MTU < 1280, link-specific fragmentation and reassembly must be used On links that have a configurable MTU, it’s recommended a MTU of 1500 bytes Path MTU Discovery z z RFC 1981 Implementations are expected to perform path MTU discovery to send packets bigger than 1280 octets For each destination, start by assuming MTU of first-hop link If a packet reach a link in which it can’t fit, will invoke ICMP “packet too big” message to source, reporting the link’s MTU; MTU is cached by source for specific destination Occasionally discard cached MTU to detect possible increase Minimal implementation can omit path MTU discovery as long as all packets kept <= 1280 octets Ex: in a boot ROM implementation z Neighbor Discovery(ND) z z z z z RFC 2461 Node(Hosts and Routers) use ND to determinate the link-layer addresses for neighbors known to reside on attached links and quick purge cached valued that become invalid Hosts also use ND to find neighboring router that willing to forward packets on their behalf Nodes use the protocol to actively keep track of which neighbors are reachable and which are not, and to detect changed link-layer addresses Replace ARP, ICMP Router Discovery, and ICMP Redirect used in IPv4 IPv6 ND processes z Router discovery z Prefix discovery z Discovery additional parameter(ex: link MTU, default hop limit for outgoing packet) Address autoconfiguration z Discovery the network prefix Equivalent to ICMPv4 Address Mask Request/Reply Parameter discovery z Discover the local hosts on an attached link Equivalent to ICMPv4 Router Discovery Configure IP address for interfaces Address resolution Equivalent to ARP in IPv4 IPv6 ND processes(cont.) z Next-hop determination z z Neighbor unreachable detection(NUD) Duplicate address detection(DAD) z Destination address, or Address of an on-link default router Determine that an address considered for use is not already in use by a neighboring node First-hop Redirect function Inform a host of a better first-hop IPv6 address to reach a destination Equivalent to ICMPv4 Redirect ND message format z z 5 ND messages: Router solicitation Router Advertisement Neighbor Solicitation Neighbor Advertisement Redirect All ND message are send with hop limit= 255. If it is not set to 255, the message is silently discarded Provide Protection from ND-based network attacks launched from off-link nodes Router can not have forwarded the ND message from an off-link node Address autoconfiguration z z The autoconfiguration for link-local addresses is only specified for hosts. Routers must obtain through manual configuration Three type of autoconfiguration Based on receipt Router Advertisement message Stateless and one or more prefix information Both Managed address configuration and Other stateful configuration flag=1 Stateful no prefix information Either Managed address configuration or Other stateful configuration flag=1 DHCPv6 Both and one or more prefix information Either Managed address configuration or Other stateful configuration flag=1 Serverless Autoconfiguration(“Plug-inzPlay”) Hosts can construct their own addresses: subnet prefix(es) learned from periodic multicast advertisements from neighboring router(s) interface IDs generated locally MAC addresses : pseudo-random temporary Other IP-layer parameters also learned from router adverts (e.g., router addresses, recommended hop limit, etc.) Higher-layer info (e.g., DNS server and NTP server addresses) discovered by multicast / anycast-based service-location protocol [details being worked out] DHCP also available for those who want more control z z z Auto-Reconfiguration(“Renumbering”) z New address prefixes can be introduced, and old ones withdrawn we assume some overlap period between old and new, i.e., no “flash cut-over” hosts learn prefix lifetimes and preference order from router advertisements old TCP connections can survive until end of overlap; new TCP connections can survive beyond overlap Router renumbering protocol, to allow domain-interior routers to learn of prefix introduction / withdrawal New DNS structure to facilitate prefix changes z z Reference z z IETF Books O’reilly, “IPv6 Essentials” Second Edition , 2006 O’reilly, “IPv6 Network Administration”, 2005 Cisco Press, “Deploying IPv6 Networks”, 2006 Apress, “Running IPv6”, 2006 Lab – IPv6 Enable z Boot time enabling of IPv6 with autoconfig OS Enable IPv6 at boot (with autoconf where possible) Solaris Create an empty /etc/hostname6.ifname Red Hat Add NETWORKING_IPV6="yes" to /etc/sysconfig/network. AIX Use smit or chrctcp to enable autoconf6 and ndpd-host under: Communications Applications and Services TCP/IP IPV6 Configuration IPV6 Daemon/Process Configuration. WinXP ipv6 install Win2003 netsh interface ipv6 install FreeBSD Add ipv6_enable="YES" to /etc/rc.conf. Mac OS X Enabled by default (see /etc/hostconfig). Tru64 Use ip6_setup to start IPv6 on an interface or edit /etc/rc.config directly. IOS conf term interface if number ipv6 enableYou may also want ipv6 unicast-routing. JUNOS set interfaces if unit no family inet6 address addr Lab – IPv6 Enable z Runtime enabling of IPv6 with autoconfig OS Runtime IPv6 enable (with autoconf where possible) Solaris ifconfig ifname inet6 plumb up and then run /usr/lib/inet/in.ndpd. Linux Load kernel module with insmod ipv6 then sysctl net.ipv6.conf.ifname.accept_ra=1. AIX autoconf6 -a followed by ndpd-host. WinXP ipv6 install Win2003 netsh interface ipv6 install FreeBSD sysctl net.inet6.ip6.accept_rtadv=1 Mac OS X sysctl -w net.inet6.ip6.accept_rtadv=1 Tru64 Ensure kernel contains IPv6, ifconfig ifname ipv6 upand then run nd6hostd. IOS conf term interface if number ipv6 enableYou may also want ipv6 unicastrouting. JUNOS set interfaces if unit no family inet6 address addr Lab – IPv6 Enable z Manual IPv6 addressing at boot time OS Manual assignment of address at boot Solaris Add hostname and IPv6 address to /etc/inet/ipnodes and then put hostname in /etc/hostname6.ifname. AddIPV6INIT="yes" IPV6ADDR="2001:db8::1/64" Red Hat to /etc/sysconfig/network-scripts/ifcfg-ifname. AIX Use the Communications Applications and Services TCP/IP IPV6 Configuration IPv6 Network Interfaces menu in smit to set the address, or use chdev to set the "netaddr6" attribute on the interface. WinXP ipv6 adu ifindex/2001:db8::1 Win2003 netsh interface ipv6 add address interface=ifindex 2001:db8::1 FreeBSD Add ipv6_ifconfig_ifname="2001:db8::1 prefixlen 64" to /etc/rc.conf. Mac OS X No specific technique, but could use Startup Items. Tru64 Can be set using ip6_config or using IP6IFCONFIG_, NUM_IP6CONFIG, and IP6DEV_ in /etc/rc.config. IOS conf term interface if number ipv6 address 2001:db8::1/64 JUNOS set interfaces if unit no family inet6 address 2001:db8::1/64 Lab – IPv6 Enable z Manual IPv6 addressing at runtime OS Manual assignment of address at runtime Solaris ifconfig ifname inet6 addif 2001:db8::1/64 up Linux ip addr add 2001:db8::1/64 dev eth0 AIX ifconfig ifname inet6 2001:db8::1/64 WinXP ipv6 -p adu ifindex/2001:db8::1 Win2003 netsh interface ipv6 add address interface=ifindex 2001:db8::1 FreeBSD ifconfig ifname inet6 2001:db8::1 prefixlen 64 alias Mac OS X ifconfig ifname inet6 2001:db8::1 prefixlen 64 alias Tru64 ifconfig ifname ipv6ifconfig ifname inet6 2001:db8::1 IOS conf term interface if number ipv6 address 2001:db8::1/64 JUNOS set interfaces if unit no family inet6 address 2001:db8::1/64 Lab – IPv6 Enable z Displaying IPv6 interface information OS Showing configured addresses Solaris ifconfig -a Linux ifconfig -a AIX ifconfig -a WinXP ipv6 if Win2003 ipconfig FreeBSD ifconfig -a Mac OS X ifconfig -a Tru64 ifconfig -a IOS show ipv6 interface JUNOS show interfaces Lab – IPv6 Enable(cont.) z Testing with ping and telnet OS ping traceroute Solaris ping -A inet6 -i if traceroute -A inet6 Linux ping6 -I if traceroute6 AIX ping traceroute WinXP ping6 tracert6 Win2003 ping tracert FreeBSD ping6 -I if traceroute6 Mac OS X ping6 -I if traceroute6 Tru64 ping -V 6 -I if traceroute -V 6 IOS ping ipv6 traceroute ipv6 JUNOS ping inet6 traceroute inet6 Lab – IPv6 Enable(cont.) z Displaying IPv6 neighbors OS Showing neighbor cache Solaris netstat -p Linux ip -f inet6 neigh AIX ndp -a WinXP ipv6 nc Win2003 netsh interface ipv6 show neighbors FreeBSD ndp -a Mac OS X ndp -a Tru64 netstat -N IOS show ipv6 neighbors JUNOS show ipv6 neighbors Lab – IPv6 Enable(cont.) z Displaying IPv6 routes OS Showing routes Solaris netstat -rn Linux ip -f inet6 route AIX netstat -rn WinXP ipv6 rt Win2003 netsh interface ipv6 show routes FreeBSD netstat -rn Mac OS X netstat -rn Tru64 netstat -rn IOS show ipv6 route JUNOS set route forwarding-table family inet6 Lab – IPv6 Enable(cont.) z Configuring IPv6 Resolver OS Enabling IPv6 transport resolver Solaris No support. Linux Edit /etc/resolv.conf AIX No support. WinXP Use netsh interface ipv6 add dns ifnameserver IP Win2003 Use netsh interface ipv6 add dns ifnameserver IP FreeBSD Edit /etc/resolv.conf Mac OS X Not supported in Jaguar.. Supported on Panther through network control panel or by editing /etc/resolv.conf. Tru64 No support. IOS The ip nameserver command accepts IPv6 addresses. JUNOS set system name-server v6addr Lab – IPv6 Enable(cont.) z Static IPv6 address to hostname mapping OS IPv6 hosts file Solaris /etc/inet/ipnodes Linux /etc/hosts AIX /etc/hosts WinXP C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS Win2003 C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS FreeBSD /etc/hosts Mac OS X /etc/hosts Tru64 /etc/ipnodes IOS The ipv6 host command adds static entries to the host name cache. JUNOS set system static-host-mapping hostname inet6 v6addr IPv6/IPv4 Transition 機制 現有網際網路的應用服務架構 現有IPv4服務環境的限制 z z z z IPv4無法提供目前網際網路連線所需要的位址空間 IPv4 依靠Broadcast的機制,對網路及伺服器效能產生 Overhead IPv4 沒有普遍被公認而應用於網路設備及應用系統的 Quality of Service管理機制。 IPv4 在傳輸時的資料安全性不足 以上所提之限制,只包含了IPv4缺點之一部份,但已足夠 說明IPv4是一個無法滿足未來網際網路需求的通訊協 定。IPv6對於以上的缺點,均內建了解決方案。 IPv6可解決的問題 在技術問題上,可消除IPv4位址不足,移動性 不足的限制。並使用Qos及IPSec的機制提高重 要服務的傳輸品質與資料傳輸安全 z 在經營問題方面,可降低ISP業者的營運成本 與克服NAT障礙而產生的技術成本,並可為使 用者創造新的服務。 使用IPv6來解決目前IPv4所產生的問題,會較 研發IPv4的新技術來解決IPv4的問題更為有 效,並對ISP業者的投資更有保障。 z 三大類過渡技術 1. 2. 3. IPv6/IPv4 Dual Stack (即在同一條線路上,同 時提供IPv6及IPv4的通訊協定) Tunneling (即在現有的兩個IPv4的端點間, 建IPv6的隧道,使兩端後的使用Dual Stack作 業系統的使用者能以IPv6互通) Translator(理論上,透過轉換機制可讓僅支援 IPv4的使用者,可與僅支援IPv6的HOST連 線,並讓僅支援IPv6的使用者,與僅支援 IPv4的HOST連線) 三大過渡技術示意圖 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 Dual Stack Mode IPv6/IPv4 Dual Stack Mode 在現階段和一段很長遠的未來,IPv6/IPv4 Dual Stack Mode 已經不能算是過渡技術了。而是一種絕對必要的 技術。一方面是未來的網際網路將是IPv6與IPv4共存的 世界,適合採用IPv4的應用將仍然使用IPv4, 適合採用 IPv6的應用將使用IPv6推動 , 另一方面因為目前國際上 的IPv6 DNS解析機制的標準尚未完成,IPv6 DNS的註冊 機制也未完成,進而大部份的作業系統(如Windows XP) 也尚未將由IPv6進行DNS Query的機制導入。在目前的 情況下,使用Native IPv6 mode 將無法有效的進行DNS 解析,導致IPv6服務無法運作。也就是在目前與可見的 未來之大環境下,使用者端一定要使用Dual Stack Mode 否則無法使用IPv6網路服務。 Dual Stack Mode 示意圖 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 Routing protocols TCP/UDP Applications IPV4 TCP/UDP IPV4 IPV6 Device Driver IPV6 Device Driver V4/V6 V4/V6 network network V6 V6 network network V4/V6 V4/V6 network network V4 V4 network network Tunneling Tunneling 系統的元件 Tunnel 大致包含了下列元件 a. Tunnel Server: 提供Tunnel 服務之局端設備 b. Tunnel Client: 與Tunnel Server建立連線,並由 Tunnel Server取得IPv6網址之使用者端網路設備 c. Tunnel Broker (optional for tunnel service, but required for tunnel: 用來進行Tunnel Server的認証機制,經用 Tunnel Broker的管制可以僅讓有權限的Tunnel Client 能夠與Tunnel Server連線 Tunnel 的種類(一) 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 z Configured Tunnel: 手動設定之Tunnel 適用於ISP與企業用戶間的IPv6 Tunnel連線 優點:安全性高,可支援IPv6 Multicast 缺點:設定之工作負擔很重 IPv4 Networks IPv6 Island Dual-stack node IPv6 H Payloa d IPv6 Island IPv4 Tunnel Dual-stack IPv4 H IPv6 H Payloa d node IPv6 H Payloa d Tunnel 的種類(二) 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 z Automatic Tunnel WinXP現在支援ISATAP,以及6to4與Teredo三種Tunnel模式 Dual-stack IPv6 Island node 4 IPv el n n Tu Dual-stack node IPv4 Internet IPv6 H Payload IPv4 H IPv6 H Payload Automatic Tunnel ISATAP: 優點: 使用者完全不用進行設定,適用於企業內部網路之步署。可 為Private IPv4使用者提供Public IPv6 之位址, Cisco路由器支援 缺點: 安全性不足,會造成Bottle Neck。但如配合Firewall使用,即 為安全性最佳之解決方案。 6to4: 優點: 適用於WAN端連結,Cisco路由器支援 缺點: 安全性不足,網際網路連線能力不足,沒有Business Model Teredo: 優點:可以讓在IP分享器後之虛擬IP Tunnel Client 與使用Public IP之 Teredo Tunnel Server 建立IPv6 Tunnel 缺點: 使用者需進行設定、安全性不足、難以控管、會造成Bottle Neck、 Cisco路由器不支援。 Tunnel Broker System 由於Automatic Tunnel 無法有效進行安全管 控,而Configured Tunnel 需要太多的手動設 定。而造成ISP不願意提供IPv6 Tunneling Service. Tunnel Broker 可為Configured Tunnel 及網管人員提供較佳的管理方式,使IPv6 Tunneling Service的商業化提供了可行的途 徑。但對一般使用者而言,仍然不夠方便。 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 Tunnel Broker 系統示意圖 DNS 伺服器 (3) Tunnel Client (2) (1) Tunnel Broker (4) IPv6 over IPv4 隧道 隧道終點 IPv4網路 Tunnel Server IPv6 Island IPv6 隧道終點 其他Tunnel 服務系統 Hexago Migration Broker 使用TSP通訊協定,其Client程式可免費下載,並完 全支援Windows XP, FreeBSD及Linux三種作業系 統。並提供免費的IPv6 Tunnel 服務。可支援Client Mode及Router Mode。 http://www.hexago.com 中央 研究院有提供免費的Server服務。 http://tb2.ipv6.ascc.net Translator 「Copyright 2006 ITRI工業技術研究院」 Translator的功用 1. 2. 3. IPv6在根本上改進了IPv4原有的缺點,並移除了原 來IPv4最仰賴的Broadcast機制。因此原有在IPv4上 的應用必須重寫才能支援IPv6. 為了讓原IPv4的應用可以用到IPv6網路上,必須要 經過Translator的轉換,將IPv4的模式及IPv6的模式 相互轉換,才有機會讓應用程式能夠互通 很多應用程式在IPv6時的編寫標準與IPv4不時是有 差異的,必須要靠依據個別程式的特性,打造其專 屬的轉換機制 Translator 技術一覽 z z z z z z RFC 2765: Stateless IP/ICMP Translation Algorithm (SIIT) RFC 2766: Network Address Translation - Protocol Translation (NATPT) RFC 2767: Dual Stack Hosts using the Bump-in-the-Stack technique RFC 3338: Dual Stack Hosts Using "Bump-in-the-API (BIA) RFC 3089: A SOCKS-based IPv6/IPv4 Gateway Mechanism RFC 3142: An IPv6-to-IPv4 transport relay translator 但目前實際上被大部份路由器及防火牆廠商接受的只有SIIT, NATPT以及其外掛之Application Layer Gateway, 因此以下僅企紹NATPT及其相關技術 SIIT 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 SIIT 為ICMPv6及ICMPv4之間的轉換技術,使IPv6與IPv4的使用者 能夠互相Ping到對方 NAT-PT 類似IPv4的NAT 機制及Virtual Server的概念 為IPv4的HOST, 在NAT-PT的IPv6端,定義其Virtual Public IPv6位址 為IPv6的HOST, 在NAT-PT的IPv4端,定義其Virtual IPv4位址(Public或Private都可以,適應用場合而定) 因此 對IPv4 HOST而言,對方被視為IPv4 HOST 對IPv6 HOST而言,對方也被視為IPv6 HOST, 而達到互 動之目的 NAT-PT 示意圖 (IPv4 > IPv6) 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 DA:2001:230::2 SA:aaaa::129.254.15.15 DA:132.146.134.184 SA:129.254.15.15 DNS(v4) 129.254.15.15 DNS response resource data(132.146.134.180) TRANSLATOR resource data (2001:230::1) prefix aaaa::/96 DNS(v6) 2001:230::2 IPv6 IPv4 v6.opicom.co.kr ? DA:132.146.134.180 SA:129.254.165.141 DA is changed to mappied address SA is added and removed prefix/96 DA:2001:230::1 SA:aaaa::129.254.165.141 v4.etri.re.kr 129.254.165.141 132.146.134.184 v6.opicom.co.kr 2001:230::1 2001:230::2 DNS static Mapping 132.146.134.180 0001 132.146.134.181 0002 132.146.134.180 2001:230::1 Mapping table POOL of IPv4 ADDRESS After mapping is verified either it is existed or not, DNS-ALG makes the mapping table of IPv4 inside resource data NAT-PT 示意圖 (IPv6 > IPv4) 圖片來源:IPv6 技術理論與實務研習班: IPv4/IPv6轉移機制介紹講義 DA:129.254.15.15 SA:132.146.134.184 DNS(v4) 129.254.15.15 resource data (129.254.165.141) DA:aaaa::129.254.15. 15 SA:2001:230::2 TRANSLATOR resource data (aaaa::129.254.165.141) prefix aaaa::/96 IPv4 DNS(v6) 2001:230::2 v4.etri.re.kr ? IPv6 DA:129.254.165.141 SA:132.146.134.180 SA is changed to mappied address DA is added and removed prefix/96 DA:aaaa::129.254.165.141 SA:2001:230::1 v6.opicom.co.kr 2001:230::1 v4.etri.re.kr 129.254.165.141 132.146.134.184 2001:230::2 DNS static Mapping 132.146.134.180 0001 132.146.134.181 0002 132.146.134.180 2001:230::1 Mapping table POOL of IPv4 ADDRESS After mapping is verified either it is existed or not, NAT-PT makes the mapping table of IPv6 source address Application Layer Gateway z z 由以上兩圖所示,已經表現了DNS-ALG在 NAT-PT系統之關鍵性地位。 由於IPv6與IPv4在先天上的不同,因此不同的 應用程式需要不同的ALG 目前在Router及相關轉換設備上常見的ALG有 Http-ALG, FTP-ALG, DNS-ALG, SIP-ALG, RTPALG等。 Translator 技術之限制 1. 現實上,不可能為每一個Application都寫出 其特定的ALG,因此Translator技術僅適用於特 定的情境,可作為ICP以IPv4 only的WebServer及FTP Server提供Content給IPv6使用 者,或ITSP業者以現有IPv4平台提供服務給 VoIPv6使用者等服務之解決方案。 2. 只能進行特定對特定或不特定對特定之轉 換,無法提供不特定對不特定或特定對不特定 之轉換 Thank You
© Copyright 2026 Paperzz