2013년 10월 4일 금요일

IPv4 주소지정 개념과 이슈

IP 주소지정 개요와 기초

  • IP 주소의 기능
    • 네트워크 인터페이스 식별
    • 라우팅
  • 장비별 IP 주소의 수
    • 네트워크 계층에서 데이터를 받을 수 있는 모든 장비에는 IP주소(네트워크 인터페이스별로 하나)가 적어도 하나씩 있다.
    • 라우터나 다중 인터페이스 방식으로 구성될 경우 하나 이상의 IP 주소를 가질 수 있다.
    • 리피터(repeater), 브리지(bridge), 스위치(switch) 같은 하위 수준 네트워크 연결 장비는 2계층 주소에 근거하여 트래픽을 통과시키기 때문에 IP 주소가 없어도됨
  • 주소의 유일성과 네트워크의 한정성
    • 단일 인터네트워크에서 각 IP 주소는 유일해야 함
  • IP 주소와 데이터 링크 계층 주소 비교
  • 사설/공중 IP 네트워크 주소
    • 공중 네트워크에서 여러 기관들이 서로 중복하는 주소를 사용하지 않도록 하기 위해 공인 IP 등록/관리 기관을 만듦
  • IP 주소 설정과 주소지정 유형
    • 주소 설정은 정적 또는 동적 설정으로 구성될 수 있다.
    • 대형 네트워크에서 동적 설정 관리를 위한 프로토콜로 BOOTP와 DHCP가 있음
    • 주소지정 방법은 유니캐스트, 멀티캐스트, 브로드캐스트를 지원

IP 주소 크기, 주소 공간, 표기법
  • IP 주소 크기와 2진 표기법
    • 간단히 표현하면 IP 주소는 단지 32비트 이진수다.
  • IP 주소 부점 10진 표기법 (dotted decimal notation)
    • IP 주소는 일반적으로 8비트 옥텟을 10진수로 변환하고 마침표(.)로 구분한 형태료 표현
    • IP 주소의 최소값은 0.0.0.0 이고 최대값은 255.255.255.255 이다.
  • IP 주소 공간
    • IP 주소의 크기는 32비트이나 IP 주소의 구조와 할당 방법때문에 이 전체 공간의 모든 주소를 실제로 사용할 수 있는 것은 아님
    • 맨 처음 옥텟이 127로 시작하는 모든 IP 주소는 루프백(llpback)주소로 예약 됨
    • 클래스 비사용 도메인 간 라우팅(CIDR, Classless Inter-Domain Routing), 슈퍼네팅, NAT와 같은 기술은 기존 인터넷 IP 주소 공간을 좀 더 효율적으로 활용하기 위해 설계됨.

IP 기본 주소 구조와 주요 구성요소
  • 네트워크 ID와 호스트 ID
      • 32비트가 내부적으로 두 개의 구성 요소를 가진 구조로 돼 있음
    • 네트워크 식별자(네트워크 ID)
      • 맨 왼쪽 비트에서 부터 시작하는 특정 수의 비트
      • 네트워크 접두사(network prefix) 또는 접두사(prefix)라고 부르기도 함
    • 호스트 식별자(호스트 ID)
      • 나머지 비트는 네트워크 호스트를 식별하는 데 쓰임
    • IP 주소에 포함된 네트워크 ID는 라우터가 IP 데이터그램을 라우팅하는 데 쓰임
      • 라우터는 IP 주소의 네트워크 부분을 본 뒤 목적지 IP 주소가 출발지 IP 주소와 동일 네트워크에 있는지 판단
  • 네트워크 ID와 호스트 ID 구분 위치
    • IP 주소의 경우 네트워크를 식별하는 데 쓰이는 비트와 호스트를 식별하는데 쓰이는 비트를 구분하는 지점이 고정돼 있지 않다.
    • 호스트 ID 부분이 모두 1로 설정된 네트워크 ID는 그 네트워크로의 브로드캐스트 주소를 나타낸다.

IP 주소지정 범주와 IP 주소 부속물
    • 네트워크 ID는 라우팅에 쓰이고 호스트 ID는 네트워크에서의 각 네트워크 인터페이스를 유일하게 식별하는 데 쓰인다.
    • ID 구분 지점을 파악하려면 세 가지 IP 주소지정 방법인 클래스 단위, 서브넷, 클래스 비사용 방법을 알아야 한다.
  • 전통적 (클래스 단위) 주소지정
    • 세 가지 주요 주소 클래스인 A, B, C는 얼마나 많은 옥텟이 네트워크 ID와 호스트 ID에 할당됐는지로 구분된다.
    • 예를 들어 클래스 C 주소는 24비트를 네트워크 ID에, 8비트를 호스트 ID에 할당함
  • 서브넷을 이용하는 클래스 단위 주소지정
    • 네트워크 ID와 호스트 ID의 두 단계가 아닌 세 단계로 분리함
    • 클래스 A, B, C 호스트 ID의 일부 비트를 서브넷 식별자(서브넷 ID)로 이용, 여기서 네트워크 ID는 변하지 않음
    • C클래스의 호스트 8비트를 3비트의 서브넷 ID와 5비트의 호스트 ID로 나눌수 있음
  • 클래스 비사용 주소지정
    • 클래스를 전혀 사용하지 않음
    • 구분점은 네트워크 ID에 쓰이는 비트의 수(접두사 길이(prefix length)라고 부름)를 주소 뒤에 붙여서 표시
    • 예로 227.82.157.177이 처음 27비트를 네트워크 ID로 사용하는 네트워크에 속한 IP라면 그 네트워크를 227.82.157.160/27로 표현할 수 있음
  • 서브넷 마스크와 기본 게이트웨이
    • 게이트웨이 식별자는 특정 장비에 대한 기본 라우팅 기능을 제공하는 라우터의 IP 주소다.

IP 주소의 수와 멀티호밍
  • 호스트를 다중 인터페이스 구성으로 만드는 방법
    • 두 개 이상의 인터페이스를 동일한 네트워크에 연결
      • 동일한 네트워크 ID를 갖는 두개의 IP 주소
    • 두 개 이상의 서로 다른 네트워크에 인터페이스를 연결
      • 서로 다른 네트워크 ID를 가짐
    • 서브넷을 사용할 경우에도 동일한 서브넷에 연결하는지, 서로 다른 서브넷에 연결하는지와 같은 구분을 할 수 있다.
  • 멀티호밍(multihoming)
    • 예를 들어 집에 두 대의 PC가 네트워크로 연결돼 있고 전화선이 하나 있다고 할 때, 한 컴퓨터가 인터넷 서비스 제공자(ISP, Internet Service Provider)와 전화 접속을 하고 마이크로소프트의 인터넷 연결 공유(ICS, Internet Connection Sharing)와 같은 소프트웨어를 실행하면 다른 컴퓨터도 인터넷에 접속 할 수 있다.

IP 주소 관리와 할당 방법과 기관
  • 인터넷 할당 번호 관리기관(IANA, Internet Assigned Number Authority)
    • IP 주소 할당
    • 기타 중요 조정 작업(TCP/IP 프로토콜의 인자를 관리하는 등)을 수행
  • 인터넷 이름/번호 할당기관(ICANN, Internet Corporation for Assigned Names and Numbers)
    • IANA의 주소 할당 임무를 감독하며 DNS 네임 등록과 같은 다른 업무도 관리
  • 대륙별 인터넷 레지스트리(RIR, Regional Internet registries)
    • 오늘날 주소지정은 CIDR의 계층적 주소지정 방식을 사용하는 클래스 비사용 방법임
    • IANA는 주소를 직접 할당하지 않음
    • RIR에는 APNIC, ARIN, LACNIC, RIPE NCC가 있음





인터넷 프로토콜 버전, 개념, 개요

IP 개요와 주요 동작 특성

    • IP의 주요 기능 - 인터네트워크 데이터그램 전달 : IP의 전반적인 기능은 서로 연결되지 않은 네트워크 장비간에 데이터를 전달하는 것이다.
  • 전역 주소지정
  • 하위 프로토콜에 무관
  • 비연결형 전달
  • 신뢰성이 없는 전달
  • 비승인형 전달

IP 기능
  • 주소지정
    • 호스트 주소지정 방법 포함
  • 데이텨 캡슐화와 포매팅/패키징
  • 단편화와 재조합
  • 라우팅과 간접 전달
    • 간접적으로 전달하기 위해서는 라우터를 통해 라우팅해야 한다.
    • ICMP(Internet Control Message Protocol), RIP(Routing Information Protocol), BGP(Border Gateway Protocol) 등의 기타 프로토콜과 협력

IP 역사, 표준, 버전, 밀접히 연관된 프로토콜

  • IP 버전과 버전 번호
    • 인터넷 프로토콜(IP) 버전 4는 널리 쓰이기 시작한 맨 처음 IP 버전이며 현재도 널리 쓰이고 있다.
  • IP 관련 프로토콜
    • IP 네트워크 주소 변환(NAT, Network Address Translation)
      • 사설 네트워크가 외부 네트워크에 유연한 방법으로 인터페이스를 제시할 수 있도록 함
      • IP 주소를 공유할 수 있도록 하며 공중 네트워크에 있는 호스트가 사설 IP 주소르르 갖는 호스트에 접근하는 것을 어렵게 만들어 보안을 강화함
    • IP Security(IPsec)
      • IP를 이용하여 안전한 데이터 전송을 위한 방법을 제공하는 하위 프로토콜 모음을 정의
    • 모바일 IP
      • 한 네트워크에서 다른 네트워크로 자주 이동하는 컴퓨터에서 IP를 사용하는 것과 관련된 일부 문제점을 해결하기 위한 프로토콜
      • 장비의 IP 주소를 계속해서 재구성하지 않고도 모바일 호스트로 데이터가 자동 라우팅되도록 함




2013년 9월 30일 월요일

역순 주소 결정과 TCP/IP 역순 주소 결정 프로토콜

※부트스트래핑: 아무것도 없는 상태에서 어떤 것을 시작하는 것

역순 주소 결정 프로토콜

  • 역순 주소 결정 프로토콜(RARP, Reverse Address Resolution Protocol)은 장비가 TCP/IP 네트워크에서 사용할 수 있는 IP 주소를 얻도록 하는 초창기에 나온 간단한 프로토콜이다.
  • RARP는 ARP에 근거를 두고 있으며 기본적으로 ARP와 동일하게 동작한다. 다만 그 방향이 반대다.
  • 장비는 하드웨어 주소를 담은 요청을 보내고, RARP 서버로 설정된 장비는 요청을 보낸 장비에게 할당된 IP 주소 정보를 담은 응답을 보낸다.

RARP 일반 동작
  1. 출발지 장비가 RARP 요청 메시지를 생성
  2. 출발지 장비가 RARP 요청 메시지를 브로드캐스트
  3. 로컬 장비가 RARP 요청 메시지를 처리
  4. RARP 서버가 RARP 응답 메시지를 생성
  5. RARP 서버가 RARP 응답 메시지를 전송
  6. 출발지 장비가 RARP 응답 메시지를 처리

RARP의 제약
  • 하위 수준 하드웨어 기반
  • 수동 할당
    • 호스트는 자동으로 IP 설정
    • RARP 서버는 하드웨어와 IP 주소 매핑 테이블을 관리자가 직접 설정.
  • 제한된 정보
    • 호스트에게 오직 IP 주소만을 알려준다.
    • RARP는 서브넷 마스크나 기본 게이트웨이 같은 기타 중요 정보를 제공할 수 없다.

※ 1980년대 초반 이후로 호스트 설정의 중요성은 매추 커졌다. RARP는 TCP/IP 프로토콜 스택의 상위 계층에서 동작하는 좀더 강력한 기능의 프로토콜인 BOOTP와 DHCP에게 자리를 내주었다.

2013년 9월 24일 화요일

주소 결정과 TCP/IP 주소 결정 프로토콜

주소 결정 개념과 이슈
  • 주소 결정 필요성
    • 2계층과 3계층에서의 주소지정
      • 주소지정을 다루는 계층은 데이터 링크 계층과 네트워크 계층
      • 네트워크 계층 위에 있는 계층들은 모두 네트워크 계층 주소를 이용
      • 주소결정이 필요한 이유는 장비들이 논리적으로는 3계층 주소로 통신하지만, 실제 물리적 통신을 2계층(하드웨어) 주소를 통해 수행하기 때문임
    • 일반적인 주소 결정 방법
      • 주소 결정에는 기본적으로 직접 매핑과 동적 결정의 두 방법이 있다
  • 직접 매핑을 통한 주소 결정
    • 직접 매핑은 어떻게 동작하는가
      • 2계층과 3계층 주소 중 하나를 알면 나머지 하나를 알 수 있도록 하는 방법
    • 직접 매핑의 문제점
      • 2계층 주소가 3계층 주소보다 크면 직접 매핑을 정의하는 것이 불가능함
      • 하드웨어 주소가 네트워크 주소보다 크다면 부분 매핑을 할 수 있다.
  • 동적 주소 결정
    • 동적 매핑은 어떻게 동작하는가
      1. 데이터를 보내고자 하는 장비는 다른 장비의 하드웨어 정보를 받고 싶다는 요청을 브로드 캐스트 한다
      2. 장비 A는 장비 B에게 데이터를 보내고 싶지만 하드웨어 주소를 모르고 오직 IP 주소(IPB)만을 알고 있다
      3. 장비 A는 IPB를 가지고 있는 장비에게 자신의 하드웨어 주소를 알려달라는 요청을 브로드캐스트한다.
      4. 장비 B는 장비 A에게 직접 자신의 하드웨어 주소를 알려 준다.
    • 동적 주소 결정 캐싱과 효율성 문제
      • 각 프레임을 보낼 때마다 주소 결정을 다시 하는 것은 어리석은 일이다
      • 한 장비의 네트워크 계층 주소를 해당하는 데이터 링크 계층 주소를 알아내면 그 정보는 일정 기간동안 메모리에 남아 있다
      • 다음에 2계층 주소를 탐색할 일이 있으면 장비는 캐시를 검사한다
    • 기타 동적 결정 개선 방법
      • 교차 결정을 통한 효율성 향상: 장비 A가 장비 B의 주소를 파악할 때, B도 A를 캐싱
      • 나중을 위해 먼저 캐싱

TCP/IP 주소 결정 프로토콜(ARP)
    • 주소 결정 프로토콜(ARP)는 IP 주소에 해당하는 데이터 링크 계층 주소를 파악하는 데 쓰이는 강력한 기능의 동적 결정 프로토콜이다.
    • 여기서의 주소 결정 프로토콜은 인터넷 프로토콜 버전 4(IPv4)의 유니캐스트 주소를 변환하는데 쓰인다. IPv4의 멀티캐스트 주소는 직접 매핑을 사용하며 IPv6는 ARP 대신 주변 탐색 프로토콜을 사용한다.
    • RFC 826("이더넷 주소 결정 프로토콜", 1982)로 문서화 됨
    • ARP는 IP와 이더넷 주소 간에 동적 주소 결정을 하기 위해 개발됐으며 지금은 다른 2계층 기술에도 쓰인다. ARP는 IP 장비가 로컬 네트워크에 요청을 브로드캐스트하고, 해당 IP 주소를 가지고 있는 장비가 하드웨어 주소를 응답하는 방식으로 동작한다.
    • 캐시 항목을 관리하는 데 쓰이는 방법을 향상하기 위한 여러 기법이 개발됐다.
      • 장비 한 쌍의 교차 결정이나 프록시 ARP 같은 추가/개선 기능이 기본 ARP 기능에 추가됐다
  • ARP 주소 명세와 일반 운영
    • 전송 IP 데이터그램이 있으면 트랜잭션 시작
    • 목적지 장비가 로컬 네트워크이냐 원격 네트워크이냐 확인
    • 로컬이면 직접 전송, 원격이면 라우터로 전송하여 전달
    • 로컬에서 데이터그램의 임시 목적지가 될 장비의 IP 주소를 파악해야 함
    • IP 주소 정보 포함 패키징 후 주소 결정을 위해 ARP 소프트웨어로 전달
    • ARP의 기본동작
      • 출발지 장비는 목적지 장비에 관한 정보를 담은 요청을 브로트캐스트
      • 요청을 받은 목적지 장비는 출발지 장비에게 자신의 하드웨어 주소를 알려주는 응답을 유니캐스트
  • ARP 메시지 유형과 주소 표시
    • ARP 메시지 유형
      • 출발지 -> 목적지
      • 목적지 -> 출발지
    • 주소 표시
      • 송신자 하드웨어 주소: ARP 메시지 송신자의 2계층 주소
      • 송신자 프로토콜 주소: ARP 메시지 송신자의 3계층(IP) 주소
      • 수신자 하드웨어 주소: ARP 메시지 수신자의 2계층 주소
      • 수신자 프로토콜 주소: ARP 메시지 수신자의 3계층(IP) 주소
  • ARP 일반 동작
    1. 출발지 장비가 캐시를 검사
    2. 출발지 장비가 ARP 요청 메시지를 생성
    3. 출발지 장비가 ARP 요청 메시지를 브로드캐스트
    4. 로컬 장비들이 ARP 요청 메시지를 처리
    5. 목적지 장비가 ARP 응답 메시지를 생성
    6. 목적지 장비가 ARP 캐시를 갱신
    7. 목적지 장비가 ARP 응답 메시지를 보냄
    8. 출발지 장비가 ARP 응답 메시지를 처리
    9. 출발지 장비가 ARP 캐시를 갱신
  • ARP 메시지 포맷
    • ARP 메시지 포맷
필드 이름 크기(바이트) 설명
HRD 2 하드웨어 유형: 이 필드는 ARP 메시지를 전송하는 로컬 네트워크에서 사용하는 하드웨어의 유형을 지정하며, 더불어 사용하는 주소지정 방식도 규정한다. 이 필드에 자주 사용하는 값이 'HRD 필드값'이다.
PRO 2 프로토콜 유형: 이 필드는 하드웨어 유형 필드를 보완하며 메시지에서 사용하는 3계층 주소의 유형을 지정한다. IPv4 주소의 경우 이 값은 2048(16진수로 0800)인데 이것은 IP를 위한 EtherType 코드와 일치한다.
HLN 1 하드웨어 주소 길이: 이 메시지에 포함된 하드웨어 주소 길이를 바이트 단위로 지정한다. 이더넷 또는 IEEE 802 MAC 주소를 사용하는 기타 네트워크에서 이 값은 6이다.
PLN 1 프로토콜 주소 길이: 이 메시지에 포함된 프로토콜(3계층) 주소 길이를 바이트 단위로 지정한다. IPv4 주소의 경우 이 값은 4다.
OP 2 동작 코드: 이 필드는 전송중인 ARP 메시지의 본질을 지정한다. 일반 ARP에는 1과 2 값이 쓰인다. 그 밖에 ARP 프레임 포맷을 사용하는 기타 프로토콜(예: RARP)을 지원하기 위한 여러 다른 값이 'ARP 동작코드(OP, Opcode) 필드값'과 같이 정의돼 있다. 이들 중 일부 프로토콜은 다른 프로토콜보다 널리 쓰인다.
SHA 가변적,HLN필드의 값과 동일함 송신자 하드웨어 주소: 이 메시지를 송신하는 장비의 하드웨어(2계층) 주소. 요청 메시지일 경우 그 장비는 출발지 장비고, 응답 메시지일 경우 그 장비는 목적지 장비다.
SPA 가변적, PLN 필드의 값과 동일함 송신자 프로토콜 주소: 이 메시지를 송신하는 장비의 IP 주소
THA 가변적, HLN 필드의 값과 동일함 수신자 하드웨어 주소: 이 메시지를 수신하는 장비의 하드웨어(2계층) 주소. 요청 메시지일 경우 그 장비는 목적지 장비고, 응답 메시지일 경우 그 장비는 출발지 장비다.
TPA 가변적, PLN 필드의 값과 동일함 수신자 프로토콜 주소: 이 메시지를 수신하는 장비의 IP 주소

    • ARP Hardware Type(HRD) 필드값
HRD 값 하드웨어 유형
1 이더넷(10Mb)
6 IEEE 802 네트워크
7 ARCNeT
15 프레임 중계(릴레이)
16 비동기 전송 방식(ATM)
17 HDLC
18 파이버 채널(Fibre Channel)
19 비동기 전송 방식
20 직렬 회선

    • ARP 동작 코드(OP, Opcode) 필드값
동작 코드 ARP 메시지 유형
1 ARP 요청
2 ARP 응답
3 RARP 요청
4 RARP 응답
5 DRARP 요청
6 DRARP 응답
7 DRARP 에러
8 InARP 요청
9 InARP 응답

    • ARP 메시지 포맷


  • ARP 캐싱
    • 정적/동적 ARP 캐시 항목
      • 정적 ARP 캐시 항목: 장비의 캐시 테이블에 수동으로 추가되고 만료 기간 없이 영구히 캐시에 남아 있음
      • 동적 ARP 캐시 항목
        • 과거에 성공한 ARP 주소 결정의 결과로 소프트웨어 자체에서 캐시에 추가한 하드웨어와 IP 주소 쌍
        • 일정 기간 동안 캐시에 남아 있다가 제거됨
    • 캐시 항목 만료
      • 다음의 경우 만료가 필요함
        • 장비 하드웨어 상태 변경
        • 장비 IP 주소 변경
        • 장비 제거
      • ARP 구현에서는 일반적으로 10에서 20분의 만료 시간을 지정
      • 시간이 만료된 항목은 캐시에서 제거
    • 기타 캐싱 특징
      • 경우에 따라 브로드캐스트에 대한 갱신 수행
  • 프록시 ARP
    • 라우터에 의한 장비간의 연결에서 A의 브로드캐스트가 B에게 전달되지 않는 문제에 대한 해결책
    • 라우터가 장비 A에게 자신의 하드웨어 주소를 응답
    • 실제로 물리 네트워크에 있지는 않지만 네트워크 계층에서는 마치 동일 네트워크에 있는 것처럼 설정된 네트워크에 적합

IP 멀티캐스트 주소의 TCP/IP 주소 결정
※IP 멀티캐스트 주소는 IP 멀티캐스트 그룹 주소의 28비트 중 23비트를 사용하는 직접 매핑 기법을 통해 IEEE 802 (이더넷) MAC 주소로 변환된다.
  • 멀티캐스트 IP 주소를 IEEE 802 멀티캐스트 MAC 주소로 매핑
    • 멀티캐스트 IP 주소를 IEEE 802 멀티캐스트 MAC 주소로 변환하려면 IANA 멀티캐스트 OUI 값을(01-00-5E) 상위 24비트로 복사하고, 25번째 비트를 0으로 설정하고, 멀티캐스트 IP 주소의 하위 23비트를 멀티캐스트 MAC 주소의 나머지 23비트에 복사한다.
    • 이 방법은 멀티캐스트 IP 주소의 5비트(어두운부분)를 MAC 주소로 매핑하는데 제외 시킨다.
    • 그래서 32개의 서로 다른 IP 주소가 동일한 멀티캐스트 MAC 주소로 매핑될 수 있다.

IP 버전 6의 TCP/IP 주소 결정
    • IPv6는 주소 결정을 위해 ARP 대신 새로운 주변 탐색(ND, Neighbor Discovery) 프로토콜을 이용한다.
    • IPv6 데이터그램을 보내고자 하는 장비는 다른 장비의 주소를 얻기 위해 주변 정보 요청 메시지를 보낸다.
    • 가능한 경우, 효율성을 높이기 위해 이 요청 메시지는 브로트캐스트가 아닌 특수한 유형의 멀티캐스트 주소로 전송된다.

PPP 프로토콜 프레임 포맷 (12)

PPP 일반 프레임 포맷

PPP 기능 프로토콜 (11)

PPP 링크 품질 모니터링과 리포팅

PPP핵심 프로토콜: 링크제어, 네트워크 제어, 인증 (10)

링크 제어 프로토콜