▪ IPv6의 장점

① 주소체계가 글로벌하다.
IPv6는 IPv4 32비트의 4배인 128비트로써 얼핏 보면 별로 커 보이지 않지만 2^128개는 무한 수(∞)이다. 바다의 모래알보다 더 많은 주소가 가능하므로 현재 인터넷 인구를 5억으로 잡아도 1인당 약 230개 정도의 IP주소를 가질 수 있으니 전 세계의 모든 가정과 조직에서 하나하나의 모든 IP 기기가 겹치지 않고 고유한 IP주소를 가질 수 있어서 글로벌하게 모든 기기가 유일한 주소를 가질 수 있다는 것이다.

② IP_주소를 유연하고 체계적으로 배정할 수 있다.
IP_주소가 풍부하므로 유연하게 주소를 체계적으로 배정하는 것이 가능하다.

③ 한 기기에 여러 IP를 할당할 수 있다.
하나의 인터페이스에 dual-stack으로 주소에서 문제 발생을 줄이는 폴트 톨러런스(재난극복)도 가능하다. 이렇게 함으로써 한 회선에서의 문제를 해결하게 하는데 EtherChannel과 유사한 기법으로 볼 수 있다.

④ 체크섬 등 부가적인 오버헤드가 줄어든다.
데이터가 중간에 주소 변환 등이 필요 없어서 프레임 헤더가 간소화 되므로 네트워크 오버헤드가 줄어들게 되고 대역폭을 넓게 쓸 수 있어서 네트워크 효율도 증가한다.

⑤ 현존하는 IPv4를 대체하기 위한 것이 아니라 공존한다.
이 부분이 가장 중요한 것으로 현재 널리 사용되고 있는 기존의 IPv4 기기와 IPv6 기기가 상호 데이터를 호환할 수 있다는 것이 가장 큰 장점으로 볼 수 있다. 이를 위해서 라우터나 호스트에서 IPv4와 IPv6를 동시에 인식해서 상대방 노드에게 맞게 IPv4나 IPv6로 송수신할 수 있게 하는 듀얼 스택(dual stack) 방식이 있는데 패킷트레이서에서 노드의 주소를 줄 때 IPv4와 IPv6를 한꺼번에 줄 수 있게 하고 있다.
=>Dual Stack의 경우 상대방이 전혀 IPv6를 인식하지 못할 경우
a) 캡슐화 방식을 사용해서 송신측의 IPv6를 IPv4로 캡슐화해서 전환시킨 뒤 IPv4 네트워크로 보내고, 수신측에서 캡슐을 벗겨서 다시 IPv6로 전환되게 하거나,
b) 터널링(Tunneling) 방식을 사용해서 IPv4 네트워크에서 송수신간에 터널을 생성해서 IPv6를 IPv4 네트워크 터널로 전송하고, 수신측에서 IPv6를 그대로 반게하는 방식도 있다. 터널인 경우는 항상 2002::/8 주소로 시작된다.

⑥ 보안이 더욱 강해진다.
사설 IP를 쓸 일이 없으므로 NAT와 같이 사설 IP를 공적 IP로 주소변환을 할 필요가 없어서 지구 한끝의 노드에서 지구 반대편 상대 노드와 직접 end-to-end로 연결될 수 있어서 보안이 좋아진다.

⑦ 브로드캐스트가 없어진다.
IPv4의 가장 큰 단점 중의 하나인 브로드캐스트가 IPv6에서는 없어졌고, 대신 클라이언트의 서비스 요청이 들어왔을 때 아무나 가용한 서버가 처리하게 함으로써 데이터 연결 처리 속도를 빠르게 한 에니캐스트(anycast)가 생겨났다. IPv4의 점대점 통신인 유니캐스트(unicast)와 특정 다수만 받는 멀티캐스트(multicast)는 그대로 존재한다.

⑧ 네트워크 속도가 빨라진다.
End-to-End로 직접 연결되기 때문에 라우터가 쓸데없는 경로 찾기 계산을 하지 않으므로 네트워크에서의 속도가 로컬만큼 빨라진다.

⑨ (호스트의) 주소관리가 편해진다.
계층화된 주소체계가 가능해서 긴 주소를 계층별로 나눌 수 있는데 IPv6의 총 128비트에서 1~16비트는 상용주소로 하고, 17~23비트는 대륙, 24~32비트는 각 대륙의 국가, 33~48비트는 각 지역, 그리고 49~64비트는 조직(사이트)의 LAN들에게 할애하는 식으로 하면 훨씬 수월한 주소관리가 될 수 있다. 네트워크_주소 1~64까지의 64비트를 보면 '어느 대륙 >국가 >조직 >어느 LAN'에 속하는지 쉽게 알 수 있어서 관리와 보안에도 도움이 된다.

⑩ 노드의 IP_주소가 자동으로 설정된다.
IPv4에서는 호스트에서의 IP 등 주소 설정이 문제였는데, 비록 DHCP 서버가 자동으로 설정을 해주지만 임대형식이라서 일정 기간이 지나면 IP 주소가 변경될 수 있었다. 하지만 IPv6에서는 주소가 많아지므로 사설 IP주소 할당, 서브네팅, 슈퍼네팅 등의 주소 부족문제 때문에 생기는 여러 기법들이 소용없게 된다. 1~64비트까지의 네트워크 주소이외에 65~128까지 64비트의 호스트 주소는 해당 노드의 NIC의 고유한 MAC주소 48비트를 변형해서 만드는데 MAC_주소의 한 가운데에 FF:FE(16비트)를 삽입해서 64(48+16)비트로 만든다. <=Novell의 Netware에서 사용하던 기법

IPv6에서 호스트 주소는 두 가지 방식으로 설정하는데 
a) eui-64를 붙여서 2001:1:1:1::/64 eui-64 하면 MAC 주소를 변형한 하드웨어적인 주소가 되고, 
b) eui-64를 안 붙이고 2001:1:1:1::1/64식으로 별도로 ~ ::1식으로 주소를 주면 소프트웨어적인 주소가 된다. 
=>하드웨어적인 주소와 포프트웨어적인 주소가 충돌하면 하드웨어적인 주소를 선택하게 된다!!!
eui-64는 예를 들어 노드의 MAC_주소가 AA:BB:CC:DD:EE:FF라면 한 가운데 ~ CC:DD ~ 사이에 FF:FE를 넣어서 AA:BB:CC:FF:FE:DD:EE:FF로 만든다.
그리고 MAC_주소가 유일하면 맨 앞에 02를 붙이고 유일하지 않을 때에는 00을 붙이는데 대부분 MAC_주소는 유일하므로 02가 붙어서
실제로 이 노드의 IPv6에서의 호스트_주소는 02AABB:CCFF:FEDD:EEFF식이 되고, 맨 앞의 0도 생략할 수 있으므로 2AABB:CCFF:FEDD:EEFF도 된다.
하지만 02 ~ 로 인해서 네트워크 비트 64가 늘어난 것은 아니고 표현만 이렇게 하는 것이다. 

참고로 IP 분야에서 바라보는 글로벌하게 구별되는 숫자로 
(국가번호 포함) Telephone number, (공적) IP address, MAC address, OID(Object ID: SNMP) 정도로 볼 수 있다. 

⑪ 무선 네트워크에서도 안전한 통신과 보안이 증가된다.
현재 무선 네트워크가 주력인 상황에서 무선의 최대 약점인 보안의 취약성과 느린 속도를 개선할 수 있게 된다. 무선 네트워크 기기들도 고유한 IP_주소를 충분히 가지게 되므로 기지국에서의 회선 재사용 등도 없게 되므로 보안과 성능이 좋아지게 된다.

⑫ 네트워크 효율이 매우 좋아진다.
체계적으로 주소를 만들면 역으로 여러 개의 주소를 하나의 트래픽으로 묶어서 빠르게 전송(네트워크 장비 중에서 멀티플렉서(Multiplexer:다중화기)와 컨센트레이터(concentrator:집중화기)가 이런 역할을 하는데 CO/ISP에서 주로 사용한다)하는 어그레게이션(aggregation)이 가능하다. 예를 들어서 많은 프레임들의 IP_주소를 보고 한국에서 미국으로 가는 프레임들만 따로 모아서 한 회선으로 집중시켜 빠르게 보내면 각 프레임들이 스스로 경로를 찾는 과정이 없어지므로 전송 효율이 매우 좋아질 것이다. 마치 택배회사에서 다양한 물건들을 모아서(Concentrator) 지역별로 뿌려서(Distributer) 개별적으로(Multiplexer) 물건(Data)을 보내는 것과 같은 원리이다.

⑬ 새로운 IT 세계의 재도약 기회
예전에 DOS 시절의 8비트, Windows 3.x의 16비트, Windows 95/98의 32비트, Windows XP의 64비트 시대에서 그랬던 것처럼, IPv6 128비트가 대부분 활성화되면 거기에 따른 하드웨어, 소프트웨어, 수많은 솔루션 등이 모두 128비트 기반으로 개선되어야 하기 때문에 실로 제2의 IT 부흥기가 도래하게 된다.
⑭ 단점이라면
a. 초 절전모드에서 실행되는 특수 기기와 IoT 기기들에게는 IPv6의 늘어난 주소비트의 연산이 복잡해져서 시스템 리소스에 부담이 되고
b. 이로 인해서 특히 전력소모와 열 발생으로 인한 성능 저하가 있을 수 있다는 점과
c. 현존하는 모든 IPv4 장비와의 완전한 호환에서 어느 정도의 트러블 발생 정도를 생각할 수 있다.

참고로 IPv6와 IPv4의 주소는 다음의 관계와 같다.
IPv4의 192.0.2.4/24 (8bits×4개)
/네트워크 비트 수
==>
IPv6의 2001::0204::/64 (16bits×8개)인데 제대로 쓰면
/네트워크 비트 수(숫자가 작을수록 더 많은 네트워크를 가지는 상위 네트워크)
2001:0000: 0204:0000: 0000:00FF:FE00:0D0C 식이 된다.
접두어(prefix) 서브넷(netID) 인터페이스(hostID)
(48비트) (16비트) (64비트)
→ 네트워크 ID ← → 호스트 ID ←

IPv6에서는 시작되는 주소를 보면 어느 정도 구별이 가능한데

종류 - 설명
FF00::/8 멀티캐스트
FE80::/10 링크-로컬 유니캐스트, 로컬에서만 사용되는 주소
2000::/3 글로벌 유니캐스트 주소로 외부와 연결될 때 사용된다. 네트워크 부분에서 글로벌 라우팅의 prefix는 48비트이 고, 서브넷 ID는 16비트며, 호스트 인터페이스 ID는 64비트이다.
FE80::/64 로컬 네트워크에서의 주소로 link-local로 불리며, 게이트웨이나 호스트 주소에 사용된다. local -link 주소의 Prefix는 항상 FE80::/64로 시작된다.
::1/128 IPv4의 127.0.0.1와 같은 IPv6의 loopback이다. ping ::1 -6으로 확인 가능하다.

▪ IPv6 주소 표기와 설정법

IPv6의 주소는 ‘네트워크 64비트+호스트 64비트=총 128비트’이다. IPv4의 32비트처럼 10진법(decimal) 192.168.100.10식으로 표시하지 않고 16진수(hexadecimal)로 0~9,A,B,C,D,E,F로 표시한다.
: 과 : 사이에 16비트(숫자나 문자 4개)를 8개 써야 한다. 이 주소 규칙이 각종 시험에 많이 나오므로 잘 정리해가면서 실습해보자.

IPv6의 주소는 020001:0DB8:010F:0001(네트워크_64비트):0000:00FF:FE00:0D0C(호스트_64비트)식으로 표시되는데
① 16진수 4자리를 : 과 : 사이에 넣어서 총 8번 써주면 된다. 16진법으로 표시하는 이유는 컴퓨터는 2비트로 움직이고 2진수 네 개가 16진수 한 자리가 되므로 큰 자리 수 변환이 쉬워서이다.
▪ 10진수 637=6x10^2+3x10^1+7x10^0=6x100+3x10+7x1이 되듯이
▪ 16진수 27D는 2x16^2+7x16^1+D(=13)x16^0=2x16x16+7x16+13x1=637이 된다.
② 대소문자 구별은 없지만 모두 대문자 OR 모두 소문자로 쓰면 된다. 대소문자를 섞어 쓰면 안 된다.
Aa3F:ef1C:34AC:a5ef ......식은 불가
③ : 대신 -로 써도 되기는 하지만 주로 : 을 쓴다.
④ 모두 0과 숫자와 문자 앞에 있는 0은 몇 개가 되어도 생략할 수 있지만, 맨 뒤나 중간의 0은 생략할 수 없다.
a. 연속으로 0이 나오는 것을 줄이면 어디서 0이 생략되었는지 불분명하므로 ::로 표시한다.
b. 하지만 ::::식으로 :: 을 두 번 연속해서 쓸 수 없다. 따라서
020001:0DB8:010F:0001:0000:0000:0000:0D0C는
=>20001:db8:10f:1:0:0:0:d0c OR
=>20001:db8:10f:1::d0c로 쓸 수 있다. ::에는 전체가 8묶음이어야 하는데 표시된 것은 5 묶음이므로 ::에 3개의 0의 묶음 0000:0000:0000이 생략된 것을 알 수 있다.
따라서 20001:1::1은 2001:0001:0000:0000:0000:0000:0000:0001이 된다. 0이 5 묶음이다.
⑤ / 뒤의 숫자(CIDR)는 네트워크 비트인데 이 숫자가 작을수록 더 상위 네트워크이다.
/32 가 /48 보다 더 많은 네트워크를 가지고 있는 상위 네트워크이다. 네트워크가 64비트로 고정되어 있어서 /32=>64-32=32개의 네트워크, /48=>64-48=16개의 네트워크를 가진다.
▪ 2001::/16이 2001:2::/32나 2001:1::/32보다 더 상위 네트워크이고,
▪ 2001:1::/32가 2001:1:1::/48 보다 상위 네트워크이며,
▪ 2001:1:1::/48이 2001:1:1:1::/64 보다 상위 네트워크이다.
▪ 그리고 /80처럼 /64보다 더 큰 수는 호스트 비트가 64비트로 고정되어 있으므로 절대 네트워크 주소로 나올 수 없다.
즉, 서브네팅이나 슈퍼네팅이 필요 없어서 이런 네트워크는 없다!!!

~ /16이면 매우 상위 네트워크인데 (전체 네트워크 64-16=48 이어서 2^48개의 네트워크를 하위로 거느릴 수 있다.

▪ IPv6에서 호스트_주소를 줄 때

a. 별도로 지정할 필요가 없는 하드웨어적인 주소(/64 뒤에 eui-64 표기)와
b. 관리자가 임의로 지정하는 소프트웨어적인 주소(/64 뒤에 eui-64 표기 안 함)가 있는데
c. 소프트웨어적인 주소를 주었어도 해당 인터페이스에 하드웨어주소를 겹쳐주면 하드웨어주소로 최종 설정된다.
=>실무에서는 소프트웨어적인 IPv6 주소보다 하드웨어적인 주소를 더 많이 주는데 WAN에서 다른 네트워크의 소프트웨어적인 IPv6 주소를 알 수 없기 때문이다. 따라서 소프트웨어적인 주소는 관리자가 네트워크를 잘 알고 있는 내부 LAN 네트워크 설정에서 주로 사용된다.

a) prefix 사용
RT2(config)#ipv6 gene(ral-prefix) xyz ? 해보고
RT2(config)#ipv6 gene xyz 2001:200:1:3::/64 해서 2001:200:1:3::/64라는 네트워크주소를 xyz로 대신한다고 알린다. 이제 prefix xyz를 이용해서 fa0/0 인터페이스에 IP주소를 지정해보자.
RT2(config)#int fa0/1
RT2(config-if)#ipv6 addr xyz ::1/64로 해주면 호스트 주소는 ::1 소프트웨어 주소가 되고, ::1/64 대신 ::/64 eui-64를 쓰면 자동으로 MAC주소 변형해서 하드웨어주소가 된다.
RT2(config-if)#no shut
RT2(config-if)#end

b) autoconfig 사용
RT1(config)#int s0/0/0
RT1(config-if)#ipv6 addr autoconfig 해주고
RT1(config-if)#do sh ipv6 int brief 해보면 Fa0/0의 MAC_주소를 가져와서 (끝자리만 살짝 변형해서) 설정 한 것을 볼 수 있다.

IPv6 네트워크에서도 여러 라우터가 있으면 Routing protocol을 설정해 주어야 하는데
▪ RIP은
Router(config)#ipv6 router rip ABC 해주는데 ABC는 rip의 프로세스 이름이다.
Router(config-rtr)#int fa0/0
Router(config-if)#ipv6 rip ABC enable 해서 각 인터에이스에 설정하는데 직접 붙여있는 네트워크 설정을 안 해주어도 된다.
▪ EIGRP는
Router(config)#ipv6 router eigrp 12(AS)
Router(config-rtr)# int fa0/0
Router(config-if)#ipv6 eigrp 12
▪ OSPF는
Router(config)#ipv6 router ospf 10(PID)
Router(config-router)#router-id 1.1.1.1
Router(config-router)#int fa0/0
Router(config-if)#ipv6 ospf 10 area 0식으로 해준다.

0개의 댓글