BIND9

BIND9란?

Berkeley Internet Name Domain (BIND) DNS (Domain Name System) 쿼리를 처리하는 데 사용 가장 널리 사용되는 DNS 서버 중 하나 오픈 소스, 유닉스 및 리눅스 운영 체제에서 실행

DNS 서버와 도메인 네임에 대한 이해

DNS 서버란?

도메인 네임과 IP 주소 간의 매핑 정보를 가지고 있는 서버 ⇒ 도메인 네임으로 웹 사이트에 접속 가능

도메인 네임이란?

IP 주소와 대응되는 인터넷 상의 문자주소 ex) www.google.com(도메인 네임) : 172.217.166.78(IP 주소)

DNS 서버의 동작 과정

  1. 사용자 ⇒ 도메인 네임 입력 ⇒ DNS 서버에 질의
  2. DNS 서버 : 해당 도메인 네임에 대한 IP 주소 보유 ⇒ 사용자 반환(끝)
  3. DNS 서버 : 해당 도메인 네임에 대한 IP 주소 미보유 ⇒ 다른 DNS 서버에 해당 질의 전달
  4. 반복 ⇒ 최종적으로 IP 주소를 찾아 사용자에 반환

BIND9의 주요 기능

  • DNS 쿼리 프로세싱 : DNS 쿼리를 처리하여 IP 주소를 찾아서 돌려주는 역할
    호스트 이름 ⇒ IP 주소, IP 주소 ⇒ 호스트 이름

  • DNS 캐싱 : DNS 캐시 서버 DNS 응답을 캐시하여 같은 쿼리에 대한 응답을 더 빠르게 제공

  • DNS 보안 : DNSSEC (DNS Security Extensions) 지원 ⇒ DNS 쿼리 및 응답 보호

  • 동적 DNS 업데이트 : DNS 클라이언트가 호스트 이름 또는 IP 주소를 변경시 DNS 레코드를 업데이트
  • DNS 레코드 : A, AAAA, MX, NS, CNAME, PTR 및 SRV 등 다양한 레코드

BIND9의 구성 요소

  • named : DNS 서버 데몬. DNS 쿼리 수신, 응답 제공
  • rndc : named 관리 명령줄 유틸리티. named 시작, 중지, 리로드 및 재구성
  • named.conf : 구성 파일. DNS 레코드, 보안 설정, 캐시 크기 및 동작에 대한 매개 변수 포함
  • DNS 서버 존 파일 : /etc/bind/db.polypoly.com 파일

    도메인 네임,IP 주소 매핑

    ex) “www.polypoly.com” : “192.168.19.100”

      pythonCopy code
      $TTL 86400
      @ IN SOA ns.polypoly.com. admin.polypoly.com. (
                      1   ; Serial
                      604800  ; Refresh
                      86400  ; Retry
                      2419200 ; Expire
                      86400 ) ; Negative Cache TTL
      ;
      @       IN      NS      ns.polypoly.com.
      @       IN      A       192.168.19.100
      www     IN      A       192.168.19.100
        
    
    • 첫 번째 줄 : TTL(Time to Live) 값 설정 TTL : 캐시에서 해당 DNS 레코드 유지 시간 설정(86400 = 1일)

    • 두 번째 줄 : SOA(Start of Authority) 레코드 설정 해당 DNS 존 권한 있는 네임 서버 정보 설정 “ns.polypoly.com.” : 권한 있는 네임서버 “admin.polypoly.com.” : DNS 존 관리자

    • 그 이후 : DNS 존에 대한 설정 값 “@” : 도메인 이름 “IN” : 인터넷 “NS” : 네임 서버 ⇒ “A” : IP 주소 “ns.polypoly.com.” : 네임서버 IP 주소 : “192.168.19.100” “www.polypoly.com” : “192.168.19.100”

BIND9의 장단점

장점 :

  • 유연성 : 다양한 운영 체제에서 실행
  • 안정성 : 오랫동안 사용되어 안정성이 검증
  • 커뮤니티 지원 : 오픈 소스로 제공, 커뮤니티 지원

단점 :

  • 복잡성 : 구성이 복잡
  • 보안 취약성 : 보안 취약점 있음 ⇒ 이를 처리할 방법 고려

BIND9 사용해보기

DNS 서버 구축 과정

  1. DNS 서버(192.168.19.100)에 BIND9 설치
  2. DNS 서버에 도메인 네임 : IP 주소 매핑 정보 설정 ⇒ DNS 서버 존 파일

클라이언트 컴퓨터에서 DNS 서버 지정 방법

  1. 클라이언트 컴퓨터(192.168.19.105 외 접속하려는 가상머신)의 /etc/resolv.conf 혹은 /etc/systemd/resolved.conf 파일 수정
  2. nameserver 항목 ⇒ DNS 서버 IP 주소 입력
  3. 저장 후 종료

DNS 서버와 클라이언트 컴퓨터 간의 네트워크 구성 방법(자세히)

  1. 개요 DNS(Domain Name System)은 인터넷에서 사용하는 도메인 이름을 IP 주소로 변환해주는 시스템이다. 클라이언트 컴퓨터는 DNS 서버에 질의해서 도메인 이름을 IP 주소로 변환한 후 해당 서버에 접속한다. 이를 위해서는 DNS 서버와 클라이언트 컴퓨터 간의 네트워크 구성이 필요하다.

  2. 환경
    • DNS 서버: Ubuntu 23.04, IP 주소 192.168.19.100
    • 클라이언트 컴퓨터: Windows 10, IP 주소 192.168.19.105
    • 클라이언트 컴퓨터: Ubuntu 23.04, IP 주소 192.168.19.110
    • 클라이언트 컴퓨터: ROCKY 9, IP 주소 192.168.19.115
  3. 설정 방법(192.168.19.100)
    1. DNS 서버에서 Bind9 설치
       $ sudo apt-get update
       $ sudo apt-get install bind9
      
    2. DNS 서버 설정 파일 수정
       $ sudo vi /etc/bind/named.conf.local
      
      • 파일 내용:

          zone "polypoly.com" {
              type master;
              file "/etc/bind/db.polypoly.com";
          };
        
      • 주의사항: “example.com”을 사용하려는 도메인 이름으로 변경해야 한다.

    3. DNS 서버 존 파일 작성
       $ sudo vi /etc/bind/db.polypoly.com
      
      • 파일 내용:

          pythonCopy code
          $TTL    604800
          @       IN      SOA     polypoly.com. admin.polypoly.com. (
                                   3         ; Serial
                              604800         ; Refresh
                               86400         ; Retry
                             2419200         ; Expire
                              604800 )       ; Negative Cache TTL
          ;
          @       IN      NS      polypoly.com.
          @       IN      A       192.168.19.100
                    
        
    4. DNS 서버 재시작
       $ sudo service bind9 restart
      
  4. 클라이언트 컴퓨터에서 DNS 서버 지정
    1. Windows에서의 DNS 서버 설정(192.168.19.105)
      1. 제어판(Control Panel)
      2. 네트워크 및 인터넷(Network and Internet)
      3. 네트워크 및 공유 센터(Network and Sharing Center)
      4. 왼쪽 메뉴 “Ethernet”, “속성(Properties)”
      5. “인터넷 프로토콜 버전 4(TCP/IPv4)” , “속성(Properties)”
      6. “다음 DNS 서버 주소 사용” “기본 DNS 서버(Default DNS Server)”, “보조 DNS 서버(Alternate DNS Server)” 필드 DNS 서버 IP 주소 입력
      7. “확인”
    2. Ubuntu에서의 DNS 서버 설정(192.168.19.110)
       sudo vi /etc/resolv.conf
       # 혹은
       sudo vi /etc/systemd/resolved.conf 
      
       dns-nameservers 192.168.19.100
       dns-search polypoly.com
      
       sudo service network-manager restart
       # 혹은
       sudo systemctl restart systemd-resolved
      
    3. Red Hat(ROCKY)에서의 DNS 서버 설정(192.168.19.115)
       # 현재 사용 중인 네트워크 연결의 이름 확인
       nmcli con show
       # DNS 서버 주소 추가
       nmcli con mod ens08 ipv4.dns 192.168.19.100
       # 변경 사항 적용
       nmcli con up ens08
      
  5. 클라이언트 컴퓨터에서 도메인 이름을 이용해 DNS 서버에 접속
    • DNS 서버에서 설정한 도메인 네임(polypoly.com)을 통해 IP 주소(192.168.0.100)로 접속이 가능해진다.
서브목차