• Feed
  • Explore
  • Ranking
/
/
    리눅스

    우분투, DNS 에 대해 알아보자

    우분투, dns 캐시,dns zone, 이중화(h/a,l/b)
    우분투리눅스ubuntuLinux
    J
    Jura
    2025.07.10
    ·
    4 min read

    7221
    • DNS는 사람이 이해하기 쉬운 도메인 이름을(www.naver.com) IP로 바꿔주는 역할

    • www(hostname:SubDomain).naver(SLD:SecondDomain).com(TLD:TopDomain).(dot: RootDomain: 생략)

    • DNS 쿼리 요청 흐름도(tree구조)

    • 53번 포트 사용

    7222

    **참조:https://www.iana.org/domains/root

    DNS 레코드

    • ns: 네임서버 [ test.com → ns1.test.com ]

      a: 호스트(도메인)이름 [ www.test.com ]

      soa: zone 시작정보(관리자,시리얼)

      mx 메일수신서버 [ example.com → mail.example.com ]

      cname 다른도메인을 참조하는 별칭 [ www.example.com → example.com ]

    DNS 캐시서버

    • 외부인터넷만 서비스 하기 위해

    • 빠르게 도메인을 가져오기 위해

    • 보안(외부에 직접 질의 x)

    • 단점) 내부망에 대한 질의x( >>> zone서버)

    1. apt -y install bind9 bind9utils bind9-doc (캐시서버와 zone영역 사용을 위해 설치)

    2. ufw allow 53/udp (53번 포트 허용)

    7227

    1. /etc/bind/named.conf.options

      dnssec-validation auto;(변조검증), recursion yes;(재귀 질의 허용로컬캐시 dns)

    7230

    1. /etc/netplan/50-cloud-init.yaml

      nameserver 주소 추가 10.10.8.3(master server)

    7231

    1. netplan apply (/etc/netplan/*.yaml 파일의 변경사항 적용)

    1. dig @localhost www.naver.com (첫번 째 요청 502 msec)

    7232

    1. dig @localhost www.naver.com (두번 째 요청: 0 msec)

    7233

    DNS BIND(DNS ZONE 이중화)

    • 영역(zone) 정의: master, slave 동기화

      primary(master): 레코드 관리, 업데이트

      secondary(slave): primary와 주기적 동기화, 장애 대비

      Zone Transfer : (full transfer-전체전송[-AXFR], incremental T:중복전송[-IXFR]:대역폭관리와 리소스 낭비 최소화)

    • DNS Notify: primary가 slave에게 변경 사실을 알림

    • zone 파일에 a, mx soa, cname, ns 등 레코드 지정

    • 이중화의 목적: H/A (high Avility), L/B(Load Balancing) - 고 가용성 과 ,부하 분산을 위해

    • ACL 접근제어, TSIG 트랜젝션 서명(서명된 사용자만)

    • d변경 사항 있을 시 serial을 직접 수동으로 변경 (레코드 수정 시 반드시)

      ex) 2025071002 (버전관리) :시리얼 넘버로 변경 감지함

    DNS zone primary server(master)

    1. apt -y install bind9 bind9-utils bind9-doc

    2. /etc/bind/named.conf.options

    7248

    1. /etc/bind/named.conf.local (zone 생성 [master])

    7247

    1. /etc/bind/jura.com.db(resource 레코드 추가)

      "@" : dns 레코드 내에서 현재 도메인을 나타냄

    7240

    1. ufw allow 53/tcp, udp

    7241

    DNS zone Secondary server(slave)

    1. apt -y install bind9 bind9-utils bind9-doc

    2. /etc/bind/named.conf.options

    until-7244

    1.  /etc/bind/named.conf.local (zone 생성[slave])

    until-7249

    1. systemctl restart named (마스터와 슬레이브 둘다)

    2. 슬레이브 서버에서 tail -f /var/log/syslog상태로 대기

    3. 마스터 서버에서 jura.com.db 파일의 serial 값 변경 후 named서비스 재시작

    7243

    1. 슬레이브 서버에 notify가 응답된 것을 확인 (tail -f /var/log/syslog)

      (+/var/cache/bind/jura.com.db 생성됨)

    7242

    **dns zone reload, notify,flush 등 잦은 작업 시 rndc 추가 학습 필요







    - 컬렉션 아티클