IP에 관하여

진영민·2022년 9월 25일
0

잡다한 상식

목록 보기
4/22

IPv4

인터넷에 사용되는 유일한 프로토콜이었으나, 오늘날에는 IPv6이 대중화되었다.

IPv4는 3자리수 4개, 총 12 자리를 갖는다.
각 부분은 0~255까지로 표현된다. 따라서 32비트로 구성되어 있으며, 인터넷 사용자의 증가로 인해 주소공간의 고갈에 대한 우려가 높아지고 있다.

이에 따라 대안으로 128비트 주소체계를 갖는 IPv6가 등장했다.

구성 단위

A 클래스

1.0.0.1~126.255.255.254
이 중, 0.X.X.X는 제외하고, 127.X.X.X는 자기 자신의 ip를 의미한다.
127.0.0.0~127.255.255.255는 자기 자신을 가리키기 위한 목적으로 예약된 IP주소이며, 보통 127.0.0.1이 자기 자신을 가리키는 ip 주소로 쓰인다.
127.0.0.1은 호스트 네임이 localhost이다.

B 클래스

128.0.0.1~191.255.255.254
첫번째와 두번째는 네트워크 주소 부분이고, 세번째와 네번째는 호스트 주소 부분이다. 호스트 주소가 0.0인 경우는 자신을 나타내고, 255.255는 브로드캐스트의 주소이다.

C 클래스

192.0.0.1~233.255.255.254
첫번째와 두번째, 세번째는 네트워크 주소 부분이다.
네번째 부분이 0인 경우는 이 네트워크의 IP주소이며, 255인 경우는 브로드캐스트의 주소이다.

D 클래스

224.0.0.0~239.255.255.255

E 클래스

240.0.0.0~254.255.255.254

특수 용도 주소

0.0.0.0/8 자체 네트워크(IP주소를 할당받기 전 임시로 사용하는 주소)
10.0.0.0/8 사설 네트워크
100.64.0.0/10 사설 대역으로, 주로 통신사 단계에서 사용한다. 휴대폰에서 가끔 볼 수 있다.
127.0.0.0/8 루프백, 자기 자신을 가리키기 위한 목적.
169.254.0.0/16 링크 로컬, IP를 따로 지정하지 않았으면서 IP를 자동으로 지정해주는 DHCP서버를 찾지 못했을 경우 클라이언트끼리 IP를 할당할 때 쓰기 위해 예약된 IP주소이다.
172.16.0.0/12 사설 네트워크, B class network.
192.16.0.2.0/24 예제 등 문서에서 사용
192.88.99.0/24 6to4릴레이 애니캐스트, IPv6을 IPv4로 연결할 때 사용하기 위해 예약된 IP주소이다.
192.168.0.0/16 사설 네트워크, C class network. 공유기에서 가장 많이 쓰는 대역이다.
198.18.0.0/15 네트워크 장비 벤치마킹 테스트, 네트워크 장치의 성능을 확인할 때 쓰기 위해 예약된 IP주소이다.
224.0.0.0/4 멀티캐스트, 예전에는 D class를 위해 남겨둔 장소였다.
240.0.0.0/4 미래 사용 용도로 예약, 예전에는 E class를 위해 남겨둔 주소였다.
255.255.255.255 브로드캐스트 용도로 사용하기 위해 예약된 IP주소이며, 이 브로드캐스트 주소는 네트워크 경계를 넘어가는 것이 불가능하다.

외부 네트워크, 내부 네트워크

위의 내용은 외부 네트워크 개념이다. 내부 네트워크에서는 클래스와 무관하다.
외부 네트워크는 항상 고정IP인 반면에 내부 네트워크는 고정 ip또는 유동ip를 선택해서 사용할 수 있다.

서브넷 마스크

서브넷마스크는 네트워크를 작은 망으로 쪼개어 관리하기 위한 방법으로, 큰 네트워크를 사용하는 기업에서 부서 간에 망을 분리한다던가 할때 사용한다.
하지만 아주 큰 기업이 아닌 이상 네트워크를 작은 망으로 구분하여 사용하지는 않으며, C클래스 대역을 사용하는 대부분의 기업은 호스트 갯수가 작기 때문에 구분하지 않고 사용한다. 이런 경우 서브넷 마스크 값이 대부분 255.255.255.0이다.

각 클래스의 서브넷 마스크

  1. A 클래스
    255.0.0.0

  2. B 클래스
    255.255.0.0

  3. C 클래스
    255.255.255.0

  4. D클래스
    멀티캐스트 주소로 예약되어 있으며, 서브넷 마스크를 사용하지 않는다.

서브넷팅

어떤 네트워크에서 서브넷 마스크 값을 변경하여 적용하고, 해당 망을 작은 망으로 구분하여 관리하는 것. 각 망의 호스트 주소의 개수를 줄이는 대신에 식별할 망의 개수를 늘린다.

서브넷 마스킹은 이진법으로 표기하면
11111111 11111111 11111111 11111100 -> 네트워크 64개, 호스트 2개
11111111 11111111 11111111 11111000 -> 네트워크 32개, 호스트 6개
11111111 11111111 11111111 11110000 -> 네트워크 16개, 호스트 14개
11111111 11111111 11111111 11100000 -> 네트워크 8개, 호스트 30개
11111111 11111111 11111111 11000000 -> 네트워크 4개, 호스트 62개
11111111 11111111 11111111 10000000 -> 네트워크 2개, 호스트 126개

이를 IP주소와 AND연산하여 판별한다. 이때 연속되는 1의 개수를 ip뒤에 붙이며, 192.33.11.0/28은
11111111 11111111 11111111 11110000을 서브넷 마스크로 사용한다는 뜻이다.

서브넷 마스크가 255.255.255.128인 경우
11111111 11111111 11111111 10000000를 나타내며, 네트워크를 작은 망 2개로 구분하고, 126개(128-2)의 호스트를 구분할 수 있다.

IPv4 할당 종료

IANA(Internet Assigned Numbers Authority)에서 인터넷 할당 중지를 선언했다. 이는 대륙별 IP관리 기관에 IPv4를 주지 않겠다는 것을 의미하지만, 대륙별 IP관리 기관은 아직 여분의 IP주소를 보유하고 있기 때문에 IPv4할당이 전면 중단되는 것은 아니다.

우리나라는 미리 챙겨 놓은 IPv4가 많이 있기 때문에 IPv6으로 넘어갈 이유가 많이 없다. 따라서 IPv6보급은 지지부진한 편이다.

IPv6

128비트의 값을 가진다.
IPv6은 10진수가 아닌 16진수로 표현하며, . 대신에 :을 사용한다.
IPv6은 전체 필드가 0인 필드가 연속되어 있는 경우 생략할 수 있다.
2606:4700:4700:0000:0000:0000:0000:1111는 2606:4700:4700::1111로 표기할 수 있다.

또한, 2606:2800:0220:0001:0248:1893:25C8:1946의 경우 2606:2800:220:1:248:1893:25C8:1946로 표기가 가능하다.

예약된 IPv6

::/128 모든 주소가 0으로 이루어진 주소로, 주소가 지정되지 않은 경우에 사용한다.
::1/128 루프백 아이피의 IPv6 버전이다.
::ffff:0:0/96, ::/96 IPv4매핑 및 호환성을 위해 예약된 주소이다.
100::/64 이 주소로 향하는 패킷은 라우터에서 통과되지 않고 버려진다.
2001:db8::/32 IPv4와 비슷하게 문서용으로 예약된 주소이다.
2002::/16 6to4주소들이며, IPv4주소에 대응된다. 사설 IPv4주소는 IPv6에서도 사설 주소이다.
fc00::/7 IPv6 로컬 유니캐스트를 위한 주소공간, IPv4의 사설 IP랑 같은 개념이다.
fe80::/10 Link-local IP주소로, 네트워크 유지 관리에 사용된다. 모든 IPv6인터페이스는 하나 이상의 링크-로컬 주소를 가져야 하며 이 주소로 ICMPv6를 주고 받으며 연결된 상대방을 확인한다.

호환성

기존 네트워크와의 호환성을 의해, IPv4주소는 다음 세 방법을 통해 IPv6주소로 나타낼 수 있다.

  • 표준IPv6표기 : IPv4 주소 192.0.2.52는 16진수로 표시하면 0xC0000234가 되며, 이를 IPv6주소로 변경하면 ::C000:0234가 된다.

  • IPv4호환 주소 : IPv4와의 호환성과 가독성을 위해 기존 표기에 ::만을 붙여 ::192.0.2.52와 같이 쓸 수 있다. 하지만 이 방법은 폐기될 예정이다.

  • IPv4 매핑 주소 : 처음 80비트를 0으로 설정하고 다음 16비트를 1로 설정한 후, 나머지 32비트에 IPv4주소를 기록하는 IPv4 매핑 주소가 존재한다. 따라서 192.0.2.52는 ::ffff:192.0.2.52와 같이 쓸 수 있다.

IPv6전환 기술

듀얼스택

IPv6노드가 IPv4전용 노드와 호환성을 유지하는 가장 쉬운 방법.
IPv6/IPv4 듀얼스택 노드는 IPv4와 IPv6 패킷을 모두 주고 받을 수 있는 능력이 있어, IPv4패킷을 사용하여 IPv4노드와 직접 호환된다. 또한 IPv6패킷을 사용하여 IPv6노드와 직접 호환된다.

듀얼스택 노드의 주소 설정

두 프로토콜을 모두 지원하므로 IPv4주소와 IPv6주소로 모두 설정할 수 있다. IPv4 매커니즘을 사용하여 IPv4주소를 얻고, IPv6프로토콜 매커니즘을 사용하여 해당 IPv6전용 주소를 얻을 수 있다.

듀얼스택 노드의 DNS 이름 해석

IPv4/IPv6듀얼스택 노드는 A레코드는 물론 AAAA레코드도 처리할 수 있는 주소 해석기 라이브러리를 제공해야 한다.

터널링

IPv6/IPv4 호스트와 라우터에서 IPv6데이터그램을 IPv4패킷에 캡슐화하여 IPv4라우팅 토폴로지 영역을 통해 전송하는 방법이다. 터널링은 기존의 IPv4라우팅 인프라를 활용하여 IPv6트래픽을 전송하는 방법을 제공한다.
IPv6-inIPv4 터널링 방법은 설정 터널링과 자동 터널링 방식으로 구분된다.

설정 터널링

두 라우터 간(호스트 간)의 IPv4주소를 통해 수동으로 정적인 터널을 설정하는 방식

자동 터널링

IPv4호환 주소를 이용하여 수동 설정 없이 IPv4구간을 통과할 때면 IPv4호환 주소에 내포되어 있는 IPv4주소를 통해 자동으로 터널링을 해주는 방식

주소 변환

IPv6와 IPv4 간의 주소 전환 장비를 이용하여, 기존의 IPv4에서 사용되던 NAT 기술과 마찬가지로 IPv6와 IPv4 간의 Address Table을 생성하여 양단간의 통신이 가능하도록 한다.
이러한 기술은 IPv4 패킷과 IPv6의 패킷에서 IPv4 헤더와 IPv6 헤더를 제외한 상위 계층은 동일한 구조로 생성되어 있기 때문에 IPv4, IPv6 헤더 부분을 전환하며 그대로 데이터를 전송할 수 있게 한다. 다만, 상위 계층의 패킷에 IP정보가 포함된 프로토콜이 포함된 경우에는 동작 과정이 더 복잡하고 제한적으로 동작할 수 있다. (DNS, FTP 등)

profile
코린이

0개의 댓글