Limetime's TimeLine
article thumbnail
Published 2024. 8. 30. 21:59
[네트워크 기초] 57. IPv6 Network
반응형

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
  • 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 구성이 가능하도록 해주는 방식

  1. PC A는 48bit의 자신의 MAC Address를 64bit로 만든다.
  2. 라우터로부터 Prefix 64bit와 Default Route 정보 등을 받는다.
  3. '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

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

반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!