브렌쏭의 Veritas_Garage

DNS, 작명소와 이름 장부 본문

[Project_만들다]/[Project_자아내다]

DNS, 작명소와 이름 장부

브렌쏭 2022. 5. 2. 12:30

어딘가의 웹 페이지를 들어가기 위해서 IP주소를 외워야 한다면, 그것 참 골치 아픈 일일 것이다. 전화번호 외우던 시절도 있기는 했지만, 결국 전화번호부는 필요했으니까. 웹페이지주소부 같은게 생기겠지.


그리하야 네임 서버와 그를 이용한 도메인 네임 시스템이 구축된다. 네임서버는 아이피와 도메인을 기억해주는 전화번호부 역할이고, IP주소는 전화번호, 도메인 이름은 전화번호의 주인이다. 별거 없다. 나도 네임서버 만들수 있고, 만들어 봤다.


개인의 관점에서 유용한것은 DDNS인데, 동적 DNS라고 한다. 다이내믹 하다. 왜냐면 우리가 받는 IP주소는 보통 유동아이피 이기 때문이다. kt와 같은 회사에 인터넷 연결을 요청하면 보통 유동 IP를 준다. 라우터가 종료되지 않는다면 앵간해서는 바뀌진 않지만, 그래도 바뀔때는 바뀌는 것이므로, 따로 고정 IP 서비스를 신청해야 고정 IP를 얻을 수 있다. 그리고 비싸다. 그리하여 사용하는 것이 변경되는 IP주소에 맞춰서 유동적으로 도메인 이름을 할당, 변화를 따라가주는 녀석이 DDNS이다. 편리함 ㅇㅇ


다시 DNS로 돌아와서, 레코드라는 것이 있다. 보통 IPv4주소를 냅다 때려박는 A레코드를 쓰는데, 그 외에도 여러가지가 존재한다.

  • A(Host) : 주소/호스트 레코드;  정규화된 도메인 이름/호스트명(FQDN)을 IPv4에 연결한다
  • AAAA : 주소 레코드;  호스트를 IPv6에 연결한다
  • CNAME: 별칭 레코드;  실제 A레코드에 연결되는 별칭, 명칭을 정의한다
  • MX: 메일 교환 레코드;  메일서버에 보낼 수 있는 라우팅 정보를 제공한다
  • SRV: 서비스 위치 레코드;  비슷한 TCP/IP 서비스를 제공하는 다수의 서버 위치정보를 제공한다
  • PTR: 포인터 리소스 레코드;  다른 DNS레코드를 가리킨다. 역방향 조회에서 A레코드를 가리킬 때 사용된다
  • SOR: 권한 시작 레코드;  DNS영역의 주 DNS 서버를 정의하며 일련번호를 통해 영역의 변경사항을 기록한다. 또한 보조영역의 새로고침 및 다시시도 간격등을 정의하고, 영역의 기본 TTL 값을 정의한다
  • NS: 네임서버 레코드;  영역을 풀이가능한 DNS서버의 목록을 가지고 있다

자, 근데 ipv4, 6은 무엇이고 DNS서버에 TCP, TTL, 상당한 이야기가 들어있다. 뭐가 뭔지 좀더 알아보자. 간단하게 간단하게.

IPv4

우리가 알고 있는 평범한 32비트 IP주소를 뜻한다. 보통 8비트씩 끊어 이를 0~255의 10진수 숫자, 보통 000.000.000.000의 모양으로 되어있다. 여기에 포트까지 더하면 0.0.0.0/0으로 표기하기도 한다. 문제는 2000년대를 넘어가면서 기하급수적으로 IP주소가 소진되었다는 점이다. 온갖 사이트들이 생겨나고 모든 서비스들이 도메인을 만들고 난립하면서 "뭐, 넉넉하겠지," 하고 만든 43억개의 주소는 2011년에 동이 나버렸다. 43억개를 다 썼냐고? 

다 썻다. 이제 새 IPv4주소는 없다. 받고 싶다면 누군가가 반납을 해줘야한다

IPv6

그래서 새로 주소를 더 넉넉하게 만들자 해서 기존 4주소를 포괄하면서 확장한 것이 6버젼 되시겠다. 2606:2800:0220:0001:0248:1893:25C8:1946 이런 모양이다. 아주 각을 잡고 확장하려는 티가 팍팍난다. 4자리의 16진수 숫자 8개로 표기하고, 128비트의 값을 가진다. 즉 3.4^e38 정도인데, 음 참 큰수다.음 정말 큰수야.

340,282,366,920,938,463,463,374,607,431,768,211,456
(340간 2823구 6692양 938자 4634해 6337경 4607조 4317억 6821만 1456)개

근데 저는 ip주소가 부족했던 적이 없음니다만... <- 사설 IP주소를 쓰기 때문

TCP: Transmission Control Protocol

대충 모든 기술이 그렇듯이 군사목적으로 개발 되었다. 기존의 모스부호, 는 아니겠지만, 같은 통신 프로토콜은 단방향으로 보내는 것과 동시에 전송 경로를 미리 지정해뒀기 때문에, 중간에 회선이 끊어지게 될 경우 대체제가 존재할 수 없다. 큰 문제이므로, 전송경로를 특정하지 않고, 어떤 경로로든 통신이 완료될 수 있도록 개발한 것이다. 

... 그래서 통신이 잘 되었는지 확인하는 절차가 필수적인데(SYN,---SYN-ACK,---ACK), 이제 이게 귀찮아지고 성가셔져서 나온 것이 UDP되시겠다.

DNS서버

처음에 말했던 네임서버다. 전자 열람식 클라우드 전화번호부라고 할까. 이제 가고싶은 도메인의 이름만 알고, DNS서버의 주소만 알면, 굳이 IP주소 없이도 도메인을 서버에 물어보고, 그 결과를 받아오면 된다. 

Comments