IPv4는 10진수 8bit씩 ' . '으로 구분 (4필드)

IPv6는 16진수(4bit) 16bit씩 ' : '으로 구분 (8필드)

필드의 맨 앞 0은 안써도 됨. ex) :0000: --> :0: (4개가 0이라면 한개는 써야한다)

0이 연속된다면 생략 가능 ex) 2001:db8:10f:1:0:0:d0c --> 2001:db8:10f:1::d0c

하지만 두 곳에 0을 생략은 안 된다(8개의 필드 중 어디가 몇개의 필드가 생략된지 구분을 할 수 없기 때문에)

(한 번만 생략 가능하다 --> 주소중 :: 이게 2개 이상 있을 수 없다)


IPv6의 종류

유니캐스트(IPv4의 ABC 클래스)

멀티캐스트(IPv4의 D클래스)

애니캐스트(애니캐스트 그룹 중 가장 가까운 장치가 받음, 잘 안씀)



IPv4와 IPv6 변환


1) 듀얼 스텍(Dual-Stack)

시스템이 IPv4와 IPv6를 모두 인식 할 수 있도록 하여 IPv6를 이해하지 못하는 어플리케이션에는 IPv4만 사용할 수 있도록 해주고

IPv6를 이해하는 어플리케이션은 IPv6로 이용하게해주는 방식이다.

라우터나 호스트에서 설정가능하고, 라우터에 IPv4와 IPv6 둘 다 입력해주면 IPv4와 IPv6 트래픽을 동시에 포워딩이 가능하다.


2) 터널 방식

IPv6망과 IPv6망이 통신하고자 할 때 중간에 있는 망이 IPv6를 지원하지 않더라도 통신이 가능하다.

하지만 문제가 발생하면 해결이 어렵다.

적정한 아키텍처가 없을 때 사용하는 과도기적 기법이다.



메뉴얼 방식, 반 자동 방식, 자동 방식 등으로 구분한다.



라우터에서 IPv6 구성


(config) # ipv6 unicast-routing

(IPv6 트래픽에 대한 포워딩을 enable 하는 명령어)


이제 인터페이스에 IPv6 주소를 넣어주자


1) (config-if) # ipv6 address <ipv6 addr> [/<prefix-length>] [link-local]

2) (config-if) # ipv6 address <ipv6 prefix>/<prefix-length> eui-64


1) 번의 경우 ipv6 주소를 다 입력하는 방식이고

2) 번의 경우 eui-64는 MAC에 16bit를 더한 64bit를 적어주는 방식이다. (prefix(64bit) + eui64(64bit) = 128bit)


eui-64 -> Mac Address 가 xxxx.xx xx.xxxx라면

xxxx.xx   FFFE   xx.xxx ( 가운데에 FFFE 넣음 )

xxxx : xxFF : FExx : xxxx 가 된다.

여기서 맨 앞 xx를 MAC 주소의 유일성을 나타낸다.

유일할 땐 02로 바꾸고, 유일하지 않을 때는 00을 사용한다.


3) (config-if) # ipv6 unnumbered <interface>

-> <interface>에 이미 ipv6 주소가 설정 되어 있다면 <interface> 주소 사용 (ip절약해야할때)


4) (config-if) # ipv6 enable

해당 인터페이스에 아예 IPv6주소를 배정하지 않고 그냥 IPv6 인터페이스로 쓰겠다. -> Link Local 주소만 갖음. 이걸로 링크 상에서 로컬로 통신만 가능함