23일차 - 리눅스 (DNS서버)

Jk Lim·2023년 5월 12일
0

MLOps 부트캠프

목록 보기
22/34

23일차는

  1. DNS 서버 구축에 대해 학습하였다.

1. DNS 서버

(1) 호스트 이름 변경 (가상화 PC 2개)

  • hostnamectl set-hostname : 호스트 네임 설정
    1. PC1은 server로, PC2는 dns로 설정
    2. /etc/hostname 이라는 파일에 기록이 됨
    3. bash : 설정 리로드
  • 우분투에게 ip 주소와 이름을 연동시키기 → ssh 접속 시 이름 사용 가능

(2) 정방향 : 도메인 → ip

  • DNS는 이정표같은 역할
  • 4개의 서버의 존재
    • www.google.com 요청
    • com → google → www 순으로 요청
    • 도메인 → ip 주소를 알려줌
  • 캐시 기능 : 한 번 요청이 일어나게 되면 다음에 요청할 것을 대비하여 ip주소를 임시로 기억
  • 도메인 → ip 주소를 획득하는 도구 (3가지)
    1. host www.google.com 또는 host -a www.google.com
    2. nslookup www.google.com
    3. dig www.google.com
  • 수동으로 DNS 서버를 지정할 시, 레코드 파일 작성 필요
  • yum install bind : DNS 수동 설정을 위한 패키지 설치
  • yum install bind-utils : 도메인→ip주소를 획득하는 것을 확인하기 위한 패키지
  • /etc/named.conf : DNS 설정 파일 → 53번 포트를 사용해서 DNS 서버와 통신
    • 127.0.0.1 → any로 변경 : 다른 DNS 서버를 기다리기
    • allow-query { localhost; } → any로 변경 : 다른 DNS 서버에서 요청받기
  • systemctl start named : DNS 사용을 위한 서비스 실행
  • DNS 방화벽 허용
    1. firewall-cmd --add-service=dns --permanent
    2. firewall-cmd --reload
  • nslookup www.google.com 192.168.56.101 : DNS 서버를 101로 임시 지정
  • DNS 서버를 사용하기 위한 레코드 파일 작성 (Zone file, 영역 파일)
    • /var/named 디렉토리에 파일을 생성해 주어야 함
    • .zone 파일로 만들어줘 함
    • 기본 형식의 파일을 복서해서 안의 내부를 변경해야함 (vim생성 X)
    • /var/named/named.empty 파일의 양식을 사용
      • $TTL 3H : TTL 시간이 3시간임을 의미
      • @ : 서비스할 도메인의 이름, 파일의 시작을 의미
      • IN : 인터넷 서비스 사용
      • SOA : DNS 서버에 권한 행사
      • rname.invalid. : 변경 예정 - DNS의 도메인 이름
      • 1D ; refresh : 요청할 주소가 변경되었는지 1차 DNS 서버가 2차 DNS 서버에게 확인하여 적용하는 주기
      • 1H ; retry : 1차 DNS 서버와 2차 DNS 서버가 연결되지 않을 경우 재시도 하는 주기
      • 1W ; expire : 1차 네임서버가 연결이 되지 않을 경우 연결을 끊는 기간
      • 3H ) ; minimum : ip 주소를 기억하는 시간 (캐싱)
  • hostnamectl set-hostname ns.test.com : DNS 서버 PC 호스트 네임 변경
  • cp /var/named/named.empty /var/named/data/test.com.zone : 파일 복사
  • test.com.zone 파일 수정 (정방향 파일)
  • 만든 파일을 시스템이 등록해줘야 DNS 서버 연결 가능 → /etc/named.rfc1912.zones → 제일 아래에 내용 추가
  • named-checkzone test.com
    /var/named/data/test.com.zone : 파일의 문법 검사
  • named-checkconf /etc/named.conf : 설정 파일 유효성검사
### 소유그룹, 퍼미션 변경
[root@server ~]# chown :named /var/named/data/test.com.zone
[root@server ~]# chmod 660 /var/named/data/test.com.zone
[root@server ~]# ls -l /var/named/data/test.com.zone
-rw-rw----. 1 root named 199  512 13:36 /var/named/data/test.com.zone
  • systemctl restart named : 재시작
  • /etc/resolv.conf 내용 수정 > nameserver 192.168.56.101 만 등록되게
### 여기까지 수행하면 바로 앞단에 설정한 DNS 서버가 위치하게 된다
[root@server ~]# nslookup www.google.com
Server:		192.168.56.101
Address:	192.168.56.101#53

Non-authoritative answer:
Name:	www.google.com
Address: 142.250.206.196
Name:	www.google.com
Address: 2404:6800:400a:813::2004

(3) 역방향 : ip → 도메인

  • .arpa는 역방향 서버를 뜻함
  • cp /var/named/named.empty /var/named/data/db.56.168.192 : 역방향 파일 생성
  • db.56.168.192 파일 수정
  • /etc/named.rfc1912.zones → 제일 아래에 내용 추가
### 유효성 검증 2가지
[root@server ~]# named-checkzone test.com /var/named/data/db.56.168.192
zone test.com/IN: NS 'ns.test.com' has no address records (A or AAAA)
zone test.com/IN: not loaded due to errors.
[root@server ~]# named-checkconf /etc/named.conf
  • 역방향 파일의 소유권과 권한을 변경 → 재시작
  • nslookup 8.8.8.8 → 역방향 DNS 조회

(4) DNS 서버 이중화

  • 다운의 가능성이 있음
  • 연동 Master → Slave : 백업의 목적
  • slave DNS 만들기
  • /etc/named.rfc1912.zones > allow-update 내용 추가
  • Master DNS에 내용 추가
  • systemctl restart named : 서비스 재시작 (양측 다)
  • /var/named/slaves/test.com.zone : 해당 디렉토리에 해당 파일이 있으면 연동 된 것 → 파일을 지워도 서비스를 재시작하면 다시 생성된다.

0개의 댓글