IPv4의 문제
- 32bit 주소체계 (총 2^32=43억 개, Private용ㆍE Class(연구용) 제외하면 2억 5천만 개)
- 복잡한 헤더(Header) : 전체 필드를 불필요하게 늘리고 라우터로 하여금 효과적인 헤더 관리가 어려움
- IP주소 배정 방식이 복잡함 (DHCP로 해결 But, 또 다른 서버 구성이라는 오버헤드)
- Aggregation (Supernetting, Summary, 주소 부족으로 몇 개의 라우팅 정보를 하나로 묶는 것
- Subnetting의 반대 개념
- 라우팅 테이블이 복잡해지고 커짐
IPv4의 문제 해결
- NAT (Network Address Translation) : 내부에선 사설 IP주소를, 인터넷으로 나갈 때는 공인 IP주소를 사용
- IP주소를 변환해 주는 시간이 걸린다.
- End-to-End 기능을 지원하는 프로그램에서 호환성 문제가 있을 수 있다.
- 서브넷팅(Subnetting) : 네트워크를 잘게 쪼개서 사용하는 것.
- DHCP (Dynamic Host configuration Protocol) : IP주소 배정의 편리와 사용하지 않는 주소를 회수할 수 있어서 주소 낭비를 막을 수 있다.
- CIDR (Classless Inter domain Routing) : 슈퍼넷팅 즉, 여러 개의 작은 네트워크를 하나의 네트워크로 모아서 라우팅 테이블을 줄여 줌으로써 라우터의 메모리를 절약하고 라우팅 속도를 올려준다.
- Aggregation, Supernetting, Summary
IPv6의 역사
- 1990, IETF(Internet Engineering Task Force) : Class B주소가 1994년쯤 고갈될 것이다.
- 1991/11, IETF : ROAD(ROuting and ADdress) 그룹 결성
- 1995, IPNG(IP Next Generation) workgroup, RFC 1883 제안(IPv6의 근간)
- 1996, 6Bone(IPv6의 운용을 테스트하기 위해 만든 망) 테스트 시작
- 2006/6/6, 6Bone 망 운영 중단, 사용 주소 영역을 IANA(Internet Assigned Numbers Authority)에 다시 반납
- 1999, IPv6 포럼 발족 : IPv6에 대한 여러 가지 기능을 협의하고 표준에 대한 의견 수렴 역할
IPv5/ST Protocol (1970's)
- QoS(Quality of Serivce) 제공을 위한 실험적인 Resource Reservation Protocol
- ST(Internet Stream Protocol)로 정의
- 네트워크 경로 위에 Real-time Streaming 데이터를 보낼 때를 대비해서 네트워크 자원(Resource)을 예약(Reserve)해줄 수 있기 때문에 자신만의 네트워크 자원을 가지고 전송이 가능하다.
- 인터넷과 같은 곳에서 디지털 사운드나 멀티미디어 데이터와 같은 Real-time 데이터를 효과적으로 전송하기 위한 프로토콜
- IPv4와 공존하면서 상호작용을 하도록 디자인된 프로토콜로서 IPv4를 대체하기 위한 IPv6와 달리 대체하기 위한 프로토콜은 아니다.
- IPv4와 동일한 구조를 가지고 있다.
- 패킷의 첫 번째 4bit부분인 IP Version Number만 다름
- IPv4 : 4, IPv5 : 5
- IPv4와 동일한 구조를 가지고 있다.
- RSVP(Resource Reservation Protocol)와 같은 비슷한 역할을 하는 다른 프로토콜이 나오면서 쓰임새가 많이 줄었다.
- RFC 1190, RFC 1819 참고
IPv6의 특징
IPv6
- Global Address (주소 공간이 넓어짐)
- Flexibility : 융통성
- Aggregation : 주소 묶기
- Multi-homing : 경로 or 장비 문제시 끊김 없는 전송
- 32Bits(IPv4) → 128Bits(IPv6) *2^128
- IP Header 구조 개선 : IPv4의 복잡한 헤더를 개선, 헤더 정보 간소화ㆍ효과적 배치
- IPv4와의 호환성 : IPv4의 이전 옵션 제공 (IPv4와 IPv6간의 다양한 전환 기법 및 옵션 기능 제공)
Global Reachability (Global Address)
- 전 세계의 네트워크 어디에서나 고유의 주소를 가지고 접속이 가능하다.
- End-to-End Reachability 지원
- 출발점인 한 쪽 끝 장비에서 도착점인 한 쪽 끝 장비까지 주소 변환없이 도착 가능)
Hierarchy (Hierarchical Addressing or Addressing Hierarchy)
- 긴 주소를 나누어 주는 개념 (주소 계층화)
- ex) IPv6의 128bit 중 처음 16bit는 상용주소 구분, 17bit부터 23bit까지는 대륙을 구분, 23bit부터 32bit까지는 해당 대륙의 ISP 구분, 32bit부터 48bit까지는 하나의 사이트(회사, 기관 등), 48bit부터 64bit까지는 각 LAN을 구분
- 주소의 체계적 구분 (계층적 주소 배치, Aggregation)
- 주소를 알아보기 쉽다.
- 여러 개의 트래픽을 하나로 묶을 수 있다.
- 같은 방향으로 가는 트래픽을 구분하여 네트워크 트래픽을 줄일 수 있다.
- 내부에서는 여러 개의 네트워크가 있지만 외부로 뿌릴 때, 하나로 묶어서 뿌리면 외부에서는 여러 개의 네트워크를 따로 따로 관리할 필요가 없다.
Prefix Aggregation
- 네트워크의 앞 부분을 묶는 방식
- 여러 개의 경로 정보를 하나로 묶어줌으로써 라우팅 테이블을 줄여줄 수 있고, 이렇게 라우팅 테이블을 줄여 라우터의 메모리 절약은 물론이고 라우팅을 훨씬 더 효과적이고 빠르게 진행할 수 있다.
① 고객 사이트 #1에는 2개의 서로 다른 네트워크가 있다.
→ 2001:0200:0001:0001::/64, 2001:0200:0001:0002::/64가 있다.
② 고객 사이트 #2에는 내부 네트워크를 2001:0200:0002::/48로 묶였다.
③ ISP에서는 고객 사이트 #1과 #2를 묶어서 2001:0200::/32
④ 인터넷에서는 목적지가 2001:0200::/32로만 시작하는 네트워크가 온다면 ISP쪽으로 보내준다.
Auto Configuration
*IPv4에서는 Stateless Auto Configuration을 지원하지 않아 DHCP와 같은 Stateful Auto Configuration을 사용했다.
1. Stateless Auto Configuration
- 특정 서버 없이도 라우터 등에서 자동으로 호스트의 IP 구성이 가능하도록 해주는 방식
- PC A는 48bit의 자신의 MAC Address를 64bit로 만든다.
- 라우터로부터 Prefix 64bit와 Default Route 정보 등을 받는다.
- 'Prefix 64bit : MAC Address'로 IPv6를 만든다.
2. Stateful Auto Configuration
- DHCP 서버와 같은 서버를 두고 주소를 자동으로 관리해주는 방식
- DHCPv6
- Stateless Auto Configuration만으로 구성이 부족한 경우 사용
- ex) DNS서버, NTP서버 정보, SIP서버, Novell Directory 서비스 정보에 대한 세팅은 Stateless Auto Configuration으로 구성 불가
- 호스트가 맨 처음 라우터로부터 Stateless Auto Configuration이 이루어질 때, 그 안에 같이 따라온 Flag를 보고 자신이 추가적인 정보를 다시 Stateful Auto Configuration을 통해 받아야할 것인지 알게된다.
- 즉, 일단 Stateless를 통해 기본적인 정보를 받고, 추가 정보는 Stateful
- Stateless Auto Configuration만으로 구성이 부족한 경우 사용
Multicast
- IPv6에서는 Broadcast를 Multicast로 대신한다.
- 4bit의 Scope ID를 사용하여 Multicast의 전송 영역을 지정할 수 있다.
간단한 헤더 정보
#헤더(Header) : IP패킷에 Source Address, Destination Address, Type of Service, Header Length, 여러 가지 Flag 등을 담고 있다.
- IPv6는 불필요한 헤더 정보를 효과적으로 줄였다.
- 헤더 정보를 줄임으로써 패킷처리가 훨씬 간단해지고 라우팅 성능도 증가했다.
- 모든 필드들이 64bit 단위로 정렬된다.
- 즉, 메모리를 읽고 쓰는 능력이 향상되었다.
- 주소 길이가 128bit로 늘어나 주소를 확인하는데 더 많은 시간이 걸릴 수도 있다. (단점)
- IPv4의 헤더를 줄였지만 주소 길이로 전체적인 헤더 길이는 2배 늘었다.
Mobility (이동성)
- 장비가 현재의 네트워크 접속이 끊기지 않고서도 이동이 가능하도록 해주는 기능
- IPv4는 IETF 표준으로 지원
- 하지만, 옵션으로 제공되어 기능을 추가해야 한다.
- IPv6에서는 Built-in(내장)되어 있어 그냥 사용 가능하다.
- IPv4보다 안정된 이동성이 보장되어 있다.
보안
- IPv4는 IPSec이 옵션이다.
- End-to-End 보안 적용이 어렵다.
- IPv6는 IPSec이 Default이다.
IPv6 주소
① IPv6주소는 16진수로 표시하며 16진수 4자리 마다 콜론(:)으로 구분한다. (대소문자 구분X)
XXXX : XXXX : XXXX : XXXX : XXXX : XXXX : XXXX : XXXX
2001 : 0DB8 : 010F : 0001 : 0000 : 0000 : 0000 : 0D0C
*8필드, 하나의 필드 속에 4개의 16진수 = 총 128bit
② 앞 쪽에 나오는 0은 안써도 된다.
2001 : 0DB8 : 010F : 0001 : 0000 : 0000 : 0000 : 0D0C
→ 2001 : DB8 : 10F : 1 : 0 : 0 : 0 : D0C
③ 0이 연속으로 나올 때는, ': :'으로 표시할 수 있다.
2001 : DB8 : 10F : 1 : 0 : 0 : 0 : D0C
→ 2001 : DB8 : 10F : 1 : : D0C
※주의! 이 방식을 2번 이상 사용하면 안된다.
2001 : 0DB8 : 0000 : 0000 : FFFF : 0000 : 0000 : 0D0C
→ 2001 : 0DB8 : : FFFF : 0000 : 0000 : 0D0C (O)
→ 2001 : 0DB8 : 0000 : 0000 : FFFF : : 0D0C (O)
→ 2001 : 0DB8 : : FFFF : : 0D0C (X)
AnyCast
- 애니캐스트 그룹 멤버 중 가장 가까이 있는 멤버에게 패킷을 보내는 방식
- 가장 가까운 포인트를 찾는 탐색 메커니즘을 위함
IPv4와 IPv6
듀얼 스택 (Dual Stack)
- 시스템이 IPv4와 IPv6를 모두 인식할 수 있도록 하여 IPv6를 이해하지 못하는 애플리케이션에는 IPv4만으로 사용할 수 있도록 해주고, 이해하는 애플리케이션은 IPv6를 이용할 수 있도록 해주는 방식
- 즉, 두 가지 주소 중 골라 쓰도록 하는 방식 (호스트 또는 라우터에 세팅)
→ IPv4와 IPv6의 트래픽을 동시에 포워드할 수 있다.
터널 방식
- 한 쪽 IPv6 망에서 다른 한 쪽에 있는 IPv6 망과 통신을 하고자 할 때, 터널 기술을 사용하면 중간에 있는 망이 IPv6를 지원하지 않더라도 통신이 가능하다.
- 하지만, 중간에 문제가 발생하면 그 문제를 해결하기 어렵다.
Overlay Tunnels
① IPv4 구름 양 쪽에 있는 라우터가 듀얼스택 방식으로 동작하면서 IPv6 트래픽을 터널을 통해서 반대쪽 라우터까지 전달해주는 방식
② 라우터가 IPv6 PC에게서 받은 정보를 IPv4 네트워크에 실어 보내기 전에 다시 IPv4가 이해하도록 Encapsulation(캡슐화)하여 전송한다.
- 터널 기법 : 통신을 시작할 때, 터널을 만드는 방식
- 메뉴얼(수동) 방식
- 반자동 방식
- 자동 방식
IPv6 구성
Router(config)# ipv6 unicast-routing
*IPv6 트래픽에 대한 포워딩 Enable
인터페이스 구성
① Router(config-if)# ipv6 address <IPv6 Addr> [</Prefix-length>] [link-local]
→ 이 명령으로 IPv6 주소를 부여할 때는 전체 IPv6 주소를 다 써줘야 한다.
② Router(config-if)# ipv6 address <IPv6 Prefix> /<Prefix-length> eui-64
→ 이 명령은 IPv6 주소 중 앞쪽 Prefix만 넣어주는 IPv6 Prefix 방식(네트워크 주소)
*eui-64 : 이미 가지고 있는 MAC 주소 48bit를 64bit로 만들어서 IPv6의 뒷 부분을 구성한다.
③ Router(config-if)# ipv6 unnumbered <interface>
→ IPv6 주소를 인터페이스에 부여하지 않는 방식
→ <interface> 부분에 이미 IPv6 주소를 가지고 있는 다른 인터페이스 번호를 부여 해주면 그 인터페이스의 IPv6 주소를 같이 사용한다.
Router(config)# int gi0/0
Router(config-if)# ipv6 addr 2001:200:1:1::/64 eui-64
Router(config-if)# exit
Router(config)# int gi0/1
Router(config-if)# ipv6 unnumbered gi0/0
Router(config-if)# exit
Router(config)# exit
Router# show ipv6 interface gi0/1
Gigabit Ethernet0/1 is administratively down, line protocol is down
IPv6 is enabled, link-local address is FE80::216:9dFF:FE43:F2E1 [TEN]
No virtual link-local address(es):
Interface is unnumbered. using address of Gigabit Ethernet0/0
No global unicast address is configured
Joined group address(es):
FE02::1
FF02::2
MTU is 1500 bytes
ICMP error messages limited to one everyday 100 milliseconds.
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND advertised reachable time is 0 milliseconds
- Gigabit Ethernet 0/1은 따로 IPv6 주소 배정안함.
- Gigabit Ethernet 0/0의 주소를 씀
④ Router(config-if)# ipv6 enable
→ 해당 인터페이스에 IPv6 주소를 배정하지 않고 그냥 IPv6 인터페이스로 쓰겠다는 방식
→ IPv6의 여러 가지 주소 중 오직 Link Local 주소만 갖고 링크에서 로컬로 통신만 한다.
Router(config)# ipv6 unicast-routing
Router(config)# int gi0/0
Router(config-if)# ipv6 address 2001:0200:0001:0001::/64 eui-64
Router(config-if)# exit
Router(config)# exit
Router# show ipv6 interface gi0/0
Gigabit Ethernet0/0 is administratively down, line protocol is down
IPv6 is enabled, link-local address is FE80::216:9dFF:FE43:F2E0 [TEN]
No virtual link-local address(es):
global unicast address(es):
2001:200:1:1:216:9DFF:FE43:F2E0/64, subnet is 2001:200:1:1::/64 [EUI/TEN]
Joined group address(es):
FE02::1
FF02::2
MTU is 1500 bytes
ICMP error messages limited to one everyday 100 milliseconds.
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 0 milliseconds
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
ND advertised default router preference is Medium
Hosts use stateless autoconfig for addresses
- IP : 2001:200:1:1:216:9DFF:FE43:F2E0/64
- subnet : 2001:200:1:1::/64 (prefix)
- MAC : 0016.9D43.F2E0
- Prefix + EUI-64(MAC) = 2001:200:1:1:216:9DFF:FE43:F2E0
EUI-64 변환 방법
ex) MAC : 0016.9D43.F2E0
① 가운데에 'FF:FE' 넣기
0016.9D FF:FE 43.F2E0
→ 0016:9DFF:FE43:F2E0
② 앞의 8bit는 MAC 주소의 유일성을 나타낸다.
- 유일 주소는 대부분 '02'를 사용.
- 유일 주소 아님 : '00'
→ 0216:9DFF:FE43:F2E0