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 데이터그램을 보내고자 하는 장비는 다른 장비의 주소를 얻기 위해 주변 정보 요청 메시지를 보낸다.
    • 가능한 경우, 효율성을 높이기 위해 이 요청 메시지는 브로트캐스트가 아닌 특수한 유형의 멀티캐스트 주소로 전송된다.

댓글 없음:

댓글 쓰기