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 주소만 갖음. 이걸로 링크 상에서 로컬로 통신만 가능함