DHCP/DNS

DHCP/DNS

Reference:

  • Computer Networks, Fifth Edition by by Andrew S et al.
  • The Australian National University CECS

어플리케이션의 디자인은 확장성, 권한, 그리고 신뢰성을 위주로 한다.

보통의 클라이언트/서버 관계부터, P2P, 그리고 Publication/Subsription 등이 존재한다.

steteless network (비 안정적인) 에서 세션을 만드는데

  • 쿠키, URL 토큰, 특정 종단과의 비디오 컨퍼런스 (줌 같이), 그리고 패킷 플로우 등을 이용한다
  • 보통 TCP/UDP 등을 이용하여 세션이 만들어진다.

어플리케이션 계층의 경우 프레젠테이션 계층 또한 같이 관여 하는데,

  • 컨텐츠 패키징 (파일 확장자), 타입 (이미지, 비디오, 텍스트), 인코딩, 셀렉션 (상대방이 사용 가능한걸 보내야 하니까)
  • 종단간의 명령어와 조종을 관여한다 (나는 무엇을 원하고, 너는 무엇을 받을것이며, 나는 끝났다 와 같은 것들)
  • 영어와 같은 프로토콜을 사용하기에 디버깅이 쉽고, 오버헤드가 타 계층에 비해 적다.

알려진 도움 프로토콜의 경우 (물론 어플리케이션이기도 하다)

  • ARP: 2.5 layer (MAC & IP)
  • ICMP, IGMP: network control and feedback.
  • 즉 어떻게 IP를 찾고 어떻게 주소들을 찾을것인지 등등 방법을 정하는 계층이 어플리케이션 계층이다 (DHCP, DNS)

하위 계층은 상위 계층에게 서비스를 제공하는 종속된 관계임을 잊지말자.

DHCP Application

Client/Server 관계의 어플리케이션이다.

  • Bootstrap Protocol 은 BOOTP로 불리며 TCP/IP 즉 트랜스포트 계층의 프로토콜로써 어플리케이션 계층에 속한다. 우리가 DHCP에서 자동으로 구성되는 기능이 이 프로토콜을 기반으로 만들어진것이다.
    • 보통 UDP의 경우 클라이언트 포트는 68, 서버 포트는 67이며 모르면 ARQ 하면 된다.
    • 처음으로 부팅된 기기에 IP등 구성정보를 제공한다
    • 정적인 클라이언트 서버 형태의 구성정보 (configuration) 제공 프로토콜이다
      • 3가지 정보를 제공하는데 IP, boot file server name, boot file name.
    • 지금은 거의 사용안한다
    • DHCP의 하휘호환 버전이며 완벽하게 호환 가능하다.
    • 요청 메세지는 브로드캐스트로 소스 주소는 0.0.0.0, 목적 주소는 브로드캐스트이다.
    • UDP 유실에 대비해서 ARQ 와 Time out 정책을 사용한다.
  • Discover Offer Request Ack로 4단계로 구성되어 있다.
  • Lease Renewal 하는 것은 유니캐스트로 50, 87.5, 100% 사용시마다 요청한다.
    • 만약 리뉴얼에 실패를 한다면 혹은 처음 할당 받았으면 gratuitous ARP를 통해 겹치는 아이피가 없는지, 그리고 자신의 새 아이피를 남들에게 알리기 위해 발송한다
      • 이러한 일이 일어나는 이유는 DHCP가 여러개 존재 할 수 있기 떄문이다.
  • DHCP Relays: 만약 DHCP 서버가 있고 라우터가 릴레이 역할을 할당 받으면, 라우터가 DHCP와의 연결을 단독으로 진행한다. 이로 인해 당연히 네트워크내 트래픽이 줄어들고, 해당 서버가 한 네트워크를 담당하니 깔끔하기도 하다.
  • DHCP reservation 은 한 클라이언트가 항상 같은 아이피를 사용하기 원하는 경우 (연결 할때마다 같은 아이피 할당 받음), static은 프린터와 같이 특별한 목적으로 만들어진 경우이다 (즉 이 기기의 아이피는 변하지 않는다).
  • 요즘 나오는 라우터들은 DHCP and DNS and router 역할을 모두 한다 보통 192.168.1.0/24 subnet을 사용함.

DNS

  • Redirection, load balance, dynamic allocation.
    • 즉 관리 하기 쉬워야하고 (여러개의 협조로) 효율적이어야 한다 (높은 요청/답변 양으로 딜레이자 짧고 로드가 적어야 한다)
    • 이를 위해 분산 디렉토리, 계층적 namespace (존), 자동적인 프토토콜/프로세스 을 이용한다.
  • Service metadata
  • Names for humans, Addresses for protcocls, and resolution for mapping between the first two.
    • Resolution: 분명하고 깔끔하게, 보통 names to addresses 반대로도 가능하긴함
    • 튜플 형식으로 (Names, value (addresses), type, TTL) 로 이루어져 있다.
  • Root starts from .
  • TLD: Top level domain
    • ccTLD: two letter country code; jp, kr, de. It has sub domain as well; edu.au…
  • Types:
    • SOA: Start of authority - who is the owner
    • A, AAAA: IPv4, IPv6
    • CNAME: canonical name (alias) 한 아이피 주소는 여러가지의 DN을 가질수 있다
    • MX: eMail exchange for domain. 같은 foo.bar여도 호스트와, 메일 주소로 쓰일수 있다. 네이버처럼
    • NS: Nameserver for the delegated domain.

  1. 이 도메인의 주인은 ns1.anu.edu.au
  2. 이 도메인의 메일 서버는 mail.anu…
  3. www.anu.edu.au는 gaia-proxy…. 도메인의 캐노니얼 네임 (alias임)
  4. gaia-proxy의 주소는 130…
  • 여러개의 루트 서버가 존재하지만, 네임서버들은 보통 모든 루트 서버를 알고 있음.
    • 이 루트서버는 보통 anycast (구독자와의 연결)로 이루어짐.
    • 내 네임서버가 먼저 루트서버에게 물어보고 (캐쉬 없으면) 루트서버로 부터 받은 정보로 해당 서버에 물어보기 시작함 (DNS)
    • Iterative: 내가 가야할 다음 장소가 어디니? 하고 물어보는것
      • 높은 성능, 낮은 딜레이
    • Recursive: 내 목적지 장소를 니가 찾아서 알려줘.
      • 낮은 성능, 하지만 편함.
  • 보통 ZONE 서버들의 주소는 바뀌지 않음, 그래서 네임서버는 (처음에는 루트서버에서) 받아서 캐쉬를 함. 그러면 덜 물어보니까 네트워크 혼잡도가 줄어듬.

메세지의 경우 UDP port 53 을 이용하며 가볍다. ARQ를 사용한다. 메세지 패킷의 플래그는 메세지의 상황마다 변화며 이로 구별한다.

다른 기능들:

  • 여러 이름이 한 아이피를 가지는 경우 (한 서버가 여러 웹서버 지원하는경우)
  • 한 이름이 여러 아이피를 가지는 경우 (실패 혹은 부담을 줄이기 위해서)
  • Reverse Lookup: 안전성을 확인하는 작업 (이메일 스푸핑, 사이트 확인 절차등)
    • 질문: 이 아이피 도메인 이름이 뭐에요? 답변: 구글이요
    • 이 작업은 PTR을 이용하며 (A 가 도메인에서 아이피 인것처럼 PTR은 반대이다)
  • Sort-list: 답변에 우선순위를 부여할 수 있다. 즉 가까운 서버나 멀티인터페이스 서버에 유용하다
  • Geopolitical-sensitives - split DNS: 너가 어디서 물어보는지에 따라 결과가 달라짐 (우리나라 야동 막은것처럼)
  • Round-Robin / Load Balancing: 리스트를 보낼때마다 다른 순서로 보냄, 즉 한 이름이 여러 아이피를 가지고 있으면 그 아이피 순서가 바뀌어져서 보내지는것 (그래야 하나만 쓰고 그러는거 방지하니까)
  • DDNS: 보통 개인 사용자는 유동 아이피인데, DNS 주소를 새로 할당해버리면 얘랑 주고받던 메세지가 다른곳에 도착할 수 있으니, 이른 해결하기 위한 실시간 DNS 갱신 방법이다.
#
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×