본문

Address Auto-configuration : 주소 자동생성

IPv6는 IPv4와 달리 주소 자동생성 기능을 갖고 있어 각종 단말에 자동으로 IPv6 주소가 생성되도록 한다. 이 기능으로 사용자는 IPv6 주소를 따로 설정하지 않아도 되고 관리자 역시 IP주소를 사용자마다 할당해주는 불편함을 겪지 않아도 된다. IPv6은 주소를 할당하여 자동으로 생성하는 Stateful Address Autoconfiguration과 임의의 자동생성인 Stateless Address Autoconfiguration을 모두 지원한다. 


Stateful Address Autoconfiguration은 IPv6 주소를  할당하는 별도의 서버(DHCPv6 서버)가 존재하고 단말이 이 시스템에게 주소를 할당받아 설정하는 방법으로 IPv4의 DHCP(Dynamic Host Configuration Protocol)과 비슷한 개념이다. 반면에 Stateless Address Autoconfiguration은 DHCP 같은 별도의 주소관리 시스템 없이 단말 스스로 IPv6 주소를 생성한다. 이를 위해 단말은 네트워크에서 할당받은 64bit의 prefix값과 MAC address 같은 고유 인터페이스 ID를 조합해 주소를 생성한다. Ethernet MAC의 경우 IEEE EUI-64(Extended Unique Identifier-64)를 사용한다(아래)

참고 : IPv6 인터페이스 식별자


[그림 1] Interface Identifier for stateless autoconfiguration on IPv6 over Ehernet(RFC2464)


[그림 2] Unique Local IPv6 Unicast Addresses(RFC4193)


FE80::0/10 + interface ID = Tentative Address(Link-local address)  

prefix(64bit) + interface ID(64bit) = Global/Site-local Address(by autoconfiguration with a prefix from RA)


이렇게 만들어진 주소는 서브넷 내에서 유일한 주소임을 검증받아야하는데 이를 위해 DAD(Duplicated Address Detection)과정을 수행해야 한다. DAD는 Stateful하게 주소를 생성했을 경우 반드시 수행되어야 하는 사항이며 NDP의 NS와 NA메시지를 이용해 같은 서브넷 내의 호스트들에게 생성한 주소를 전송한다. 같은 주소를 사용하는 호스트가 있으면 NA응답을 통해 주소를 사용하고 있음을 알린다. 이경우 Stateful하게 다시 주소를 얻게되며, NA응답이 일정시간동안 수신되지 않으면 생성된 주소가 서브넷 내에서 유일한 주소로 검증되었다고 판단해 주소를 할당하게 된다. 




[그림 3, 4] DAD Procedure와 DAD가 필요한 경우


* DAD 과정

1, Link-local all-nodes multicast 주소(FF02::1)와 solicited-node multicast 주소(FF01::1:FFxx:xxxx)에 가입한다

2. NS 송신 후 NA 수신한다.(만약 중복 된 경우에)


* Optimistic DAD(RFC4429 : Optimistic Duplicate Address Detection (DAD) for IPv6 )

IPv6 Address Configuration에 있어서 DAD 딜레이를 줄이는 방법으로 기존의 RFC2461, 2462에서 변경되어 곧바로 통신이 가능하도록 한다. 이것의 가정은, suffix의 충돌 가능성이 매우 낮다는 것이며, 따라서 Address Configuration의 결과가 실패할 경우보다 성공할 가능성이 훨씬 높다는데에 있다. 따라서, '비관적으로' 실패를 기다리기 보다, '낙관적으로' 주소를 사용하고 보는것이 핵심이다. 일반적인 IPv6 메커니즘에서는 새로 생성한 주소를 tentative 상태를 거쳐 DAD 과정이 끝난 valid 상태에서만 사용할 수 있지만, Optimistic DAD에서는 defensive한 NA(원래 IPv6 기본 문서에는 NS 메시지를 보낸 후 NA 메시지가 올 때까지 1초 동안 기다림)를 기다리며 stateless 주소자동생성에서의 주소를 잠정적으로(tentative상태에서도) 사용하다가, 주소를 확정하는 방식으로 주소 충돌으로 인한 서비스 두절을 방지한다. 


RFC3315(Stateful) : DHCP서버로부터 주소를 비롯한 모든 네트워크 정보 또는 일부를 받으며, DHCP로부터 할당받은 주소들은 Uniqueness를 검정받아야 한다(DAD 과정 반드시 필요)

RFC2486(Stateless) : Router로부터 주소를 비롯한 모든 네트워크 정보를 받을 수도 있고, 또는 Router로부터 일부 주소 정보(prefix등)만 받고 나머지 네트워크 정보들은 DHCP 서버로부터 받을 수 있다. Link-local IPv6 주소 설정의 경우 DAD가 필요하며, Global and Site-local의 경우 DAD가 불필요하다.

RFC3736(Stateless) : Stateless DHCP Service for IPv6. 주소 이외의 정보들만 전달하는 기능. Stateless DHCP 서버는 이미 IP 주소와 DNS/SIP서버 정보를 가지고 있는 호스트를 설정하는데 사용된다. 주소 지정은 하지 못한다. Option Request 옵션을 가지는 Information Request 메시지에 Reply 메시지로 응답한다.


그림출처 : 

[그림 1] : [10] IPv6 Ad-hoc Networking & Network Mobility Technologies, 2004 - 페이지 17, 19

[그림 2] : IPv6 Addressing - 國立東華大學

[그림 3, 4] : [29] IPv6 Tutorial (T5-3), 2002

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.