# Network: Linux # 공용 NTP 서버 목록
서버 주소Ping 응답 여부제공
time.bora.net OLG 유플러스
ntp.kornet.net XKT
time2.kriss.re.kr X한국표준과학연구 (KRISS)
time.nist.gov X미국 국립표준기술연구소
time.windows.com X마이크로소프트
asia.pool.ntp.org O
# Domain Name Server DNS 서버 구축하기 # 용어해설 **TTL** Time To Live의 약자로, 생존 시간을 뜻한다. 캐쉬 된 FQDN (=흔히 말하는 인터넷 주소)이 영원히 주소목록에서 변경 되지 않는다면 사라지거나, FQDN은 같지만 IP가 바뀌는 경우 제대로 목적지까지 접속을 할 수 없을 것이다. 그래서 캐쉬 된 내용이 DNS 서버의 주소목록에서 어느정도 시간 존재할 수 있는지 옵션이 존재한다. 생존시간이 지나게 되면 네임서버는 authority에게서 새로이 주소를 받아오게 된다. **SOA** Start Of Authority의 약자. 본 영역 데이터에 대한 AUTHORITY를 나타낸다. 즉, 상위 DNS를 말한다. **NS** 본 영역에 대한 네임서버를 나열한다. **IN** 레코드 타입에 대한 선언으로, Internet을 나타낸다. 현재는 IN만 있다고 보면 된다. 다른 타입의 네트워크는 모두 멸종했기 때문이다. **A** 이름을 주소로 맵핑. 주로 필요한 기능이 이것이다. **PTR** 주소를 이름으로 맵핑 **CNAME** 'Canonical 이름' 형태로 선언하는데, 별칭을 지정하는 항목이다. 즉 같은 주소에 대해 서로 다른 이름으로 접근할 수 있게 해주는 선언문. # bind configuration 예제 ```bash $TTL 1W @ IN SOA ns1.example.com. root ( 2019070700 ; serial 3H ; refresh (3 hours) 30M ; retry (30 minutes) 2W ; expiry (2 weeks) 1W ) ; minimum (1 week) IN NS ns1.example.com. IN MX 10 smtp.example.com. ; ; ns1.example.com. IN A 192.168.1.5 smtp.example.com. IN A 192.168.1.5 ; helper.example.com. IN A 192.168.1.5 helper.ocp4.example.com. IN A 192.168.1.5 ; api.ocp4.example.com. IN A 192.168.1.5 api-int.ocp4.example.com. IN A 192.168.1.5 ; *.apps.ocp4.example.com. IN A 192.168.1.5 ; bootstrap.ocp4.example.com. IN A 192.168.1.96 ; master0.ocp4.example.com. IN A 192.168.1.97 master1.ocp4.example.com. IN A 192.168.1.98 master2.ocp4.example.com. IN A 192.168.1.99 ; worker0.ocp4.example.com. IN A 192.168.1.11 worker1.ocp4.example.com. IN A 192.168.1.7 ; ;EOF ``` # 예제 및 각 필드의 설명 **\# SOA 항목** movie.edu. IN SOA terminator.movie.edu. al.robocop.movie.edu. ( 1 ; serial 10800 ; refresh after 3 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ; minimum TTL of 1 day ) 위 설정 값의 뜻은 movie.edu 도메인에 있어 terminator.movie.edu 가 최고 권위를 가지는 네임서버라는 뜻이다. 뒤에 붙는 al.robocop.movie.edu는 관리자의 이메일이다. 즉, al@robocop.movie.edu 라는 이메일 주소라는 뜻이다. 위에서 movie.edu는 기원이 같다는 뜻으로 @로 생략하여 표기할 수도 있다. **\# NS 항목** movie.edu. IN NS terminator.movie.edu. movie.edu. IN NS whormhole.movie.edu. 위의 선언문은 movie.edu 도메인에 DNS 서버가 2대가 존재한다는 걸 말해주는 것이다. • 위에서도 movie.edu는 기원이 같다는 뜻으로, 아예 빼버릴 수도 있다. 위의 선언문 아래에 추가로 terminator.movie.edu. IN A 192.249.249.3 과 같이 호스트의 주소가 선언 된다. 참고로 IN은 인터넷을, A는 이름을 가지고 IP 주소를 맵핑하겠다는 뜻이다. wormhole.movie.edu. IN A 192.249.249.1 wormhole.movie.edu. IN A 192.253.253.1 위와 같이 웜홀 서버의 경우 다중으로 DNS를 구성한 경우에는 다른 IP가 부여되며, 검색 시 두 IP를 번갈아 가며 알려주는 라운드-로빈 방식, 혹은 미리 지정된 순서 (주로 가까운 - 네트워크 hop이 작은)로 알려주게 된다. DNS와 마찬가지로, 일반 호스트도 동일한 방식으로 선언 해 주면 된다. localhost.movie.edu. IN A 127.0.0.1 diehard.movie.edu. IN A 192.249.249.4 와 같이 일반 호스트들을 나열 하면 등록되고, DNS는 질의에 대해 IP를 반환하는 작업을 수행한다. bigt.movie.edu. IN A CNAME terminator.movie.edu. dh.movie.edu. IN A CNAME diehard.movie.edu. CNAME은 별명을 나타내는 것으로, bigt.movie.edu는 곧 terminator.movie.edu를 나타낸다. DNS서버와 NTP서버가 같은 머신 상에서 구동 될 때 별명으로 FQDN은 다르지만 IP는 동일하게 처리할 수 있다. # RHEL 계열 설정 **\# zone을 추가하는 방법** 1\. /etc/named.rfc1912.zones 에서 추가하고픈 도메인을 선언 해 준다. ```bash // private zones zone "spelix.com" IN {         type master;         file "/etc/named/spelix.com.zone";         allow-update { none; };         //allow-transfer { 아이피; }; //secondary DNS가 있는 경우 그 주소를 적어준다. }; ``` allow-update { none; }; any가 보통인데, none인 이유는 사설 네트워크에 IP를 지정하여 할당하였기 때문이다. 즉, 바뀔 일이 없는 것. **2. /etc/named/ 아래에 zone 파일의 추가.** db라고도 표현한다. 아래는 spelix.com.zone의 내용이다. ```bash $TTL 1D spelix.com.  IN  SOA  ns1.spelix.com. krauss.spelix.com. (                                 1             ; serial                                 10800     ; refresh after 3 hours                                 3600      ; retry after 1 hour                                 604800   ; expire after 1 week                                 86400    ; minimum TTL of 1 day )      spelix.com.  IN NS  ns1.spelix.com.      ns1.spelix.com.  IN  A  192.168.0.2 m1.packstack.spelix.com.  IN  A  192.168.0.190      ; web server that is places out side of this local network www.spelix.com.  IN  A  34.149.87.45    ntp.spelix.com.  IN  CNAME  ns1.spelix.com. ``` # Ubuntu 계열 **\# 필요 패키지** ```bash sudo apt install bind9 bind9utils bind9-doc ``` **\# IPv4 전용으로 설정을 변경** sudo vi /etc/default/named OPTIONS="-u bind -4" **\# /etc/bind/named.conf.local** ``` zone "spelix.com" IN {         type master;         file "/etc/bind/zones/db.spelix.com";         allow-update { none; }; }; ``` **\# /etc/bind/zones/db.spelix.com** • zones 라는 디렉토리가 없으면 만든다. • zone 파일의 첫 열(row, 세로)에 공백이 있어서는 안된다. ```bash $TTL 1D spelix.com.  IN  SOA  ns1.spelix.com. krauss.spelix.com. (                              1             ; serial                              10800     ; refresh after 3 hours                              3600      ; retry after 1 hour                              604800   ; expire after 1 week                              86400    ; minimum TTL of 1 day ) spelix.com.  IN NS  ns1.spelix.com. ns1.spelix.com.  IN  A  115.71.1.39 m1.packstack.spelix.com.  IN  A  115.71.1.40 ; web server that is places out side of this local network www.spelix.com.  IN  A  34.149.87.45 ntp.spelix.com.  IN  CNAME  ns1.spelix.com. ```