[CISCO] IPv6 기초 및 정리
Nowhere 와 Now here 의 차이

IT/ㄴ Cisco

[CISCO] IPv6 기초 및 정리

TIENE 2023. 8. 20. 09:16
반응형

2020년 국비지원 교육 내용 정리

 

[IPv6 기초 및 정리]


IPv6(Internet Protocol Version 6)

 

1. IPv6 등장 배경

- 1990년대 초반 IPv4의 주소 고갈 문제를 해결하기 위해서 Subnetting , VLSM , 사설 IP주소의 사용, NAT의 도입을 통해서 기존의 주소를 절약하여 사용

- 위의 방법은 기존의 주소를 절약하여 사용하는 기능이기 때문에, 근본적인 문제 해결이 될 수 없기 때문에 새로운 방식의 주소 체계 도입에 대한 논의 시작.

 

2. IPv6의 장점

- SIPP로부터 발전한 IPv6 IPv4 주소의 주소 고갈 문제를 해결하며 실시간 데이터의 처리 능력 , QoS관련 성능 , Mobile기능 , Routing의 효율성 , 보안 등 여러 분야에 관련하여 IPv4에서 부족한 부분들을 수정 , 보완하며 새로운 개념을 도입하였다.

- IPv4에서는  DHCP기능을 사용하여 자동으로 주소를 부여 받아 사용했지만  IPv6에서 IPv6 DHCP는 호스트들이 주소를 부여 받는 보조적인 역할만 수행하며 IPv6 DHCP설정을 실시하지 않아도 호스트들이 스스로 주소를 생성할 수 있다.

- 전체 IPv6 기본 헤더의 크기는 주소 크기의 증가로 인해 IPv4 기본 헤더의 크기보다 크다. 하지만 주소를 제외한 나머지 기본 헤더의 부분만 비교하게 되면 많은 헤더 옵션이 사라지고 단순화 되었다. 대신 IPv6에서는 확장 헤더의 역할을 강화하여 IPv4 기본헤더에 포함된 주요 옵션들을 IPv6 확장 헤더로 표현하며 통신시 필요한 옵션만을 선별하여 기본 헤더 뒤에 추가할 수 있도록 설계되었다. 확장 헤더를 통하여 다양한 네트워크 계층의 프로토콜의 개발 및 도입이 쉬워졌다.

- IPv4환경에서는 NAT 동작으로 IP주소가 변환되는 과정에 의해 종단 장비간 통신이 실시되지 않았다. IPv6환경에서는 주소의 증가로 인해 출발지와 목적지 종단 장비간 직접적인 통신이 이루어지면서 해당 장비간 주고 받는 정보만 신뢰하도록 설계하여 보안이 강화되었다.  [중간 장비에서 데이터를 변경하지 못하도록 설계]

 

IPv6 계층
         ~16bit          : 상용 주소를 구분
17~23bit       : 대륙을 구분
      24~32bit       : ISP업체를 구분
    33~48bit       : 사이트를 구분
     48~64bit       :  LAN을 구분
FP (Format Prefix) - FP의 크기는 3bit이며 많은 양의 IPv6주소를 체계적으로 할당하기 위한 역할과 함께 주소의 종류를 구분하는 역할을 한다. FP IANA에서 관리하고 있으며 현재 Internet상에서 사용되는 FP "001" 이다.
TLA
(Top Level Aggregation)
- TLA의 크기는 13bit이며 FP와 마찬가지로 IPv6주소를 체계적으로 할당하기 위한 역할과 함께 주소의 종류를 구분시켜주는 역할을 한다. TLA도 IANA에서 관리하며 현재 Internet상에서 사용되고 있는 TLA는 "0 0000 0000 0001"과 "0 0000 0000 0010" , "1 1111 1111 1110" , "1 1110 1000 0000"이 있다.

- FP의 001과 TLA의 0 0000 0000 0001을 합친 0010 0000 0000 0001(16진수 변환시 2001)이
  IANA에서 하위 기관들에 할당한 Global address의 포맷이다.
  (Global address는 현재 사용하는 공인 주소의 개념) 
subTLA
(sub Top Level Aggregation)
-subTLA의 크기는 13bit이며 IANA  RIR (Regional Internet Registry) 대륙, NIR(National Internet Registry) 국가, 대형 ISP등이 관리하는 계층


-전체 Global adress의 0~23bit까지  (subTLA의 상위 7bit)는 IANA가 관리하고 23~35bit까지는 RIR이 관리하며, 하위 기관들에게 /35 네트워크를 할당하였다. 그러나 16bit 단위로 구성된 IPv6의 특징을 고려하여 최근에는 Global address의 23 ~ 32bit까지 RIR이 관리하고 하위 기관들에게 /32 네트워크를 할당한다.
NLA
(Next Level Aggregation)
-NLA의 크기는  19bit이며 국가 기관 및 대형 ISP[KT]등이 관리하는 계층이다. 현재는 상위 3bit를 제외한  Global address 주소의 크기인 32~48bit까지 관리하고 하위 Site들에게 /48 네트워크를 할당하고 있다.
SLA
(Site Level Aggregation)
-SLA의 크기는  16bit이며 Site가 관리하는 계층이다. Site는 많은 양의 IPv6주소를 할당받는 사용자의 집합을 의미한다. [소규모 ISP , 대기업 , 통신업체 SKT LGT]
-각 Site들은 Global address의 SLA부분인 48~64bit까지를 관리하고 내부 장비에 /64주소를 할당한다.
    Interface-ID -Interface-ID는 각 장비에 할당되는 상세 주소를 의미하며 크기는 64bit이다.

 

3. IPv6 의 변경점

3.1) IPv6 기본 헤더

 

IPv6가 도입된 후 IPv4에서 변경이 없는 Field
Version (4 bits) IP Packet Version를 나타내는 Field. 당연히 IPv6 Header에서는 숫자 6이 기입이 된다.
Source/Destination Address
(128 bits)
IPv6 Header의 가장 큰 특징으로 주소 공간이 IPv4 Header에 비해 엄청나게 넓어졌다.

 

IPv4에서 IPv6가 도입되면서 삭제된 Field
Header Length - IPv4에서는  Header의 크기가 최소 20bytes에서 최대 60bytes
= IPv4 Header
의 크기는 가변적이기 때문에 IPv4 Header의 크기를 가리키는 Header Length Field가 필요했다.

= 하지만 IPv6 Header의 크기는 320bits로 고정이기 때문에 더 이상 Header Length Field가 필요하지 않게 되어 삭제되었다.

- Identification, flags, Fragment-offset
= Route IPv4 Packet Fragmentation(분할)할 때 사용이 되는 Field

= 하지만 IPv6가 도입 되면서 Router Fragmentation를 할 필요가 없어졌기 때문에 기본헤더에서
삭제되었고 확장헤더로 옮겨갔다.
Header Checksum - IPv4 Network Link간 오류 정정을 Router가 수행했다.
- IPv4 Network
이 설계되던 초기에는 Node간의 통신에서 Bit Error가 많이 발생할 수 있는 환경이었으며, 더욱이 IP Header에는 IP Packet을 처리하는데 중요한 정보가 많이 포함되어 있었기 때문에 Link간의 오류정정이 꼭 필요했다. 
- 따라서 각각의 Node에서 수신된 IPv4 Header Error가 포함되어 있지는 확인하기 위해 ‘Header Checksum’ Field를 사용했다.

- 하지만, 최근에 들어 전송 기술이 급격하게 발전하면서 Link간에 Packet 전송이 거의 Error 없이 전달하고 있으며, 게다가 Layer 2에서 이미 CRC Error를 체크하여 Error가 포함된 Packet은 삭제하고 있기 때문에 IP Layer에서 다시 중복적으로 Header Checksum Field를 이용하여 확인할 필요성이 없어졌다. 
- 따라서 IPv6에서는 이러한 불필요한 Router의 부하를 줄이기 위해서 Header checksum Field삭제했다.

 

IPv4에서 IPv6가 도입되면서 이름이 변경되거나 추가된 Field
Traffic Class (8 bits) - IPv4 Header의 “Type of Service Field 의 변경
= IPv6 Packets
 QoS(Quality of Service)를 보장해줘야 할 필요성이 있는 Packet과 그렇지 않은 Packet를 구별할 때 쓰인다.
Flow Label (20 bits) - IPv6에서 새로 생긴 Field
= Flow Label의 용도는 Real-Time Traffic 처럼 매우 중요도가 높은 Traffic을 기타 다른 Packet [ex] 일반 인터넷 데이터]들 보다 더 빨리 처리하기 위해 만든 것이다.
Payload Length
(16 bits)
- IPv4 Header의 “Total Length Field가 “Payload Length Field로 변경되었다.
= 단, IPv4의 “Total Length”는 Header Payload 의 크기를 합한 반면에 IPv6의 “Payload Length” 는 순수하게 (IPv6 기본 Header 뒷부분에 따라오는) Payload의 크기만을 지칭한다.

- 이때
, 기본 Header 뒷부분에 따라오는 Extension Header들은 Payload로 취급이 된다.

= Payload Length Extension Header들의 크기까지 합한 이유는, IPv6 Extension Header들의 크기와 수량이 가변적이기 때문입니다.
Next Header (8 bits) - IPv4 에서의 “Protocol Type Field가 “Next Header Field로 변경되었다.
Hop Limit (8 bits) - IPv4 에서의 “Time to Live Field의 용도와 비슷하다.
= IPv6 Packet Router를 거칠 때 마다, Hop Limit Field의 숫자가 1씩 감소한다.
= Router는 자신이 수신한 Packet Routing 하기 전에 Hop Limit Field 값을 조사한다.
= 만약, Hop Limit의 값이 ‘1’이면 해당 Packet을 전달하지 않고 버린다.

 

출처 : 구글

 

- 기술의 발전으로 인해 Error가 거의 없고,  Datalink계층에서 오류검사를 하므로 Router의 부하를 줄이기 위해 삭제되었다.

 

3.2) IPv6 확장 헤더

- IPv4에서 주요 옵션들이 IPv6에서는 확장헤더로 이동했으며 새로운 기능이 확장 헤더로 추가되었다. , 평상시에는 기본 헤더만으로 구성된 패킷을 사용하여 통신하며 필요시 용도에 맞는 확장헤더를 추가시킴으로써 라우팅 효율을 증가 시킬 수 있다. 또한 확장헤더는 크기가 정해져 있지 않기때문에 제약사항없이 다양한 프로토콜이 개발될 수 있다.

 

출처 : 구글

 

 Hop-by-Hop Option Header

- Hop-by-Hop Option Header가 존재하는 패킷을 수신한 목적지 경로상의 Router들은 Hop-by-Hop Option Header의 내용을 확인해야하며 확인한 후 그 다음 헤더의 내용을 확인할 지의 여부를 결정한다.

 

현재 Hop-by-Hop Option Header에 정의된 옵션은 두가지 이다.

1. Router Alert Option   [End-Device나 중간의 RoutingHeader를 읽게 할까 말까]   

 이 옵션이 홉-바이-홉 옵션 헤더에 설정되어 있을 경우 해당 패킷을 수신한 경로상의 모든 Router들은 Hop-by-Hop Option Header 다음에 위치하는 확장 헤더의 내용을 확인해야 한다. Router Alert 옵션이 설정되어 있지 않은 경우 경로상의 Router들은 해당 패킷의 기본 헤더만을 사용하여 라우팅한다.

 

2. Jumbogram Option [16bit에서 32bit까지 표현할 때 MTU사이즈가 커졌을 때를 대비하는 것]

 차후 기술력이 발전하여 MTU Size가 증가되어 데이터 크기가  IPv6 기본 헤더의 Payload Length 필드를 통해 표한 할 수 있는 최대 크기인 16bit를 넘어서게 될 경우 기본 헤더만으로는 데이터의 크기를 표현할 수 없다. 이러한 문제점을 대비하여 Jumbogram 옵션을 두어 32bit만큼 데이터 크기를 표현할 수 있게 했다. (Jumbogram 옵션이 사용될 경우 기본 헤더의 Payload Length 필드값은 0으로 표시된다.)

 

Fragment Header   [MUT Size를 먼저 체크하고 생성하는 장비만 분할하여 보낸다.]

-Fragment Header는 링크의 MTU Size에 맞게 IPv6 패킷을 분할하고 또한 분할된 패킷을 다시 결합하는 기능을 제공한다.

 IPv4에서도 이러한 분할 기능이 존재하지만 IPv6에서는 목적지로 가는 경로상의 중간 Router , Switch들은 패킷을 단편화할 수 없으며 오직 데이터을 생성한 장비만 분할 할 수 있다는 점에서 차이가 있다.IPv4는 중간에서 Size를 보정했지만 IPv6는 하지 않는다. 데이터가 늘어나고 커질 것이기 때문에 중간 Router Routing Switching만 한다는 의미.

 

AH(Authentication Header) , ESP Header (Encapsulating Security Payload Header)

-IPv6에서는 IPv4 헤더에서 기본적으로 존재하지 않았던 보안관련 확장 헤더 AH , ESP가 추가되었다. 결과적으로 IPv4에서 상위 계층 프로토콜의 종류별로 복잡하게 존재했던 보안관련 필드들이 네트워크 계층에서 통합되었다.

 (IPv6 프로토콜 자체가 보안기능을 수행하는 것이 아니라 보안기능이 네트워크 계층으로 통합되어 보안이 강화됨을 의미)

IPv4에서는 IP헤더 앞이나 뒤에 ESP AH 헤더가 붙는 것이지만 (별도로 존재)

IPv6에서는 ESP AH 헤더가 확장헤더안에 들어가는 것 (3계층에 통합되었다)

 

4.  IPv6 주소의 종류

- IPv6의 종류는 크게 Unicast , Multicast , Anycast로 구성되어 있다.

- IPv6주소체계에서는 Broadcast가 사용되지 않으며 Multicast Anycast가 대체한다.

IPv6 Global address    IPv4의 공인 주소와 유사한 개념의 주소
IPv6 Site Local address    IPv4의 사설 주소와 유사한 개념의 주소
IPv6 Link-Local address IPv6 환경 내의 동일 네트워크 상에서 통신하기위한 IPv6의 주소
IPv6 Multicast address    IPv4 Multicast 주소와 유사한 개념의 주

 

4.1) Unicast

-IPv6에서 Unicast IPv4 Unicast와 유사한 개념의 주소이지만 여러가지 종류로 나뉘어진다.

Unicast Loopback address
Global address Unspecified address
Site Local address Embedded address
Link Local address  

 

4.2) Global address

-IPv4의 공인 IP 주소와 유사한 개념의 주소

-IPv6 Internet상에서 사용되는 Global address  2001::/64 , 2002::/64 , 2003::/18 , 3FFE::/16 등이 있다.

네트워크 대역 종류
2001::/64 , 2003::/18 일반 Global address
2002::/64 6 to 4 address
3FFE::/16 6bone address

 (6bone 1996년에 만든 테스트 및 , 문제 발견을 위해 만든 실험용 IPv6네트워크이며 2006 6 6일 이후로 사용되지 않는다.)

 

- IPv4에서는 "Secondary" command를 사용하여 여러 개의 주소를 할당하는 반면, IPv6에서는 제약없이 여러 개의 네트워크 주소를 할당할 수 있다. 주소를 변경하거나 삭제 시 라우팅이 중단되는 문제를 해결할 수 있다.

 

4.3) Site Local address

- IPv4의 사설 주소와 유사한 개념의 주소 - FEC0::/10

- IPv4에서의 사설 주소는 NAT기능에 의해 공중망으로의 통신이 가능하지만  IPv6에서 Site Local address는 공중망으로의 통신이 불가능하다는 차이가 있다. , Site Local address를 사용하는 장비는 공중망으로의 통신뿐 아니라 다른 Site Local address와의 통신도 불가능하다. IPv6을 사설망에 적용했다는 것은 외부네트워크로 통신하지 않겠다는 의미다.

 

4.4) Link Local address

- 다른 네트워크로 통신할 때는 공인 주소 사용

- Link 안에서만 통용되는 주소로서, Link를 벗어나서 사용할 수 없는 주소

  [ Link안에서만 구분할 수 있으면 된다는 의미로 자동으로 생성되는 주소]

- Link Local address는 다른 네트워크의 Global address 및 다른 네트워크의 Link Local address가 설정된 장비와 통신이 불가능

- Link-A Link-B구간의 통신장비들은 동일한 Link Local address를 부여해도 통신이 가능하다. Link Local address는 동일한 Link에서만 의미를 갖는다.

            |-------------|--------------------|----------------------------|

                 FE80 (10bit)           0 (54bit)                Interface-ID (64bit)

- Link Local address의 상위 10bit  FE80 (1111 1110 11**)으로 구성되어 있다.

- 10bit 이하는 관리자가 임의로 설정할 수 있는 부분

- Link Local address의 범위

           FE80::/10           ~       FEBF::/10 까지다.

(1111 1110 10 00 0000)       (1111 1110 10 11 1111)

 

- 다음 54bit 부분에는 임의의 값을 사용할 수 있지만 보통 간단하게 사용하기 위해서 0을 사용한다.

- Routing Protocol이 동작할 때 Link Local address를 사용하게 되면 주소의 낭비를 막을 수 있으며 해당 Interface의 주소를 삭제하거나 변경 시 Link Local address를 사용하므로 주소의 변경이 자유롭다.

 

 

* Link Local address를 사용하는 이유

1. 자동 주소 부여 과정에서 Link Local address 사용

2. Routing Protocol (RIP , EIGRP ,OSPF ) Hello , Update등이 송/수신 할 때 Link Local address를 사용

 

4.5) Loopback address

- IPv6에서의 Loopback주소는 IPv4에서 각 장비의 내부에 부여된 주소를 의미하며 127.0.0.1과 역할이 동일하다. IPv6에서는 ::1 (0:0:0:0:0:0:0:1)이 장비 내부의 Loopback주소를 의미한다.

 

 

 

 

[IPv6 Topology 구성]


 

 

#R1 Command

= ipv6 unicast-routing – ipv6 routing 시작

= Link-Local Address

 

 

## IPv6 Frame-Relay

* R1 ipv6 frame-relay command (S1/1)

 

 

* R3 ipv6 frame-relay command (S1/1)

 

* R1 show ipv6 route connecte

 

* R3 show ipv6 route connecte

* R2 Hub Command (s1/0)

* R1 Spoke Command (s1/0)

* R3 Spoke Command (s1/0)

* R2 show frame-relay map (s1/0)

* R2 Hub Ping (s1/0)

 


 

반응형