Network: Linux

네트워크 관련 토픽

공용 NTP 서버 목록

서버 주소 Ping 응답 여부 제공

time.bora.net

O LG 유플러스
ntp.kornet.net
X

KT

time2.kriss.re.kr
X 한국표준과학연구 (KRISS)
time.nist.gov
X 미국 국립표준기술연구소
time.windows.com
X 마이크로소프트
asia.pool.ntp.org
O

Domain Name Server

DNS 서버 구축하기

Domain Name Server

용어해설

TTL
Time To Live의 약자로, 생존 시간을 뜻한다. 캐쉬 된 FQDN (=흔히 말하는 인터넷 주소)이 영원히 주소목록에서 변경 되지 않는다면 사라지거나, FQDN은 같지만 IP가 바뀌는 경우 제대로 목적지까지 접속을 할 수 없을 것이다.

그래서 캐쉬 된 내용이 DNS 서버의 주소목록에서 어느정도 시간 존재할 수 있는지 옵션이 존재한다. 생존시간이 지나게 되면 네임서버는 authority에게서 새로이 주소를 받아오게 된다.

SOA
    Start Of Authority의 약자. 본 영역 데이터에 대한 AUTHORITY를 나타낸다.
    즉, 상위 DNS를 말한다.


NS
    본 영역에 대한 네임서버를 나열한다.


IN
    레코드 타입에 대한 선언으로, Internet을 나타낸다. 현재는 IN만 있다고 보면 된다. 다른 타입의 네트워크는 모두 멸종했기 때문이다.


A
    이름을 주소로 맵핑. 주로 필요한 기능이 이것이다.


PTR
    주소를 이름으로 맵핑


CNAME
    'Canonical 이름' 형태로 선언하는데, 별칭을 지정하는 항목이다. 즉 같은 주소에 대해 서로 다른 이름으로 접근할 수 있게 해주는 선언문.

 

Domain Name Server

bind configuration 예제

$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
Domain Name Server

예제 및 각 필드의 설명

# 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는 동일하게 처리할 수 있다.

Domain Name Server

RHEL 계열 설정

# zone을 추가하는 방법

1. /etc/named.rfc1912.zones 에서 추가하고픈 도메인을 선언 해 준다.

// 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의 내용이다.    
 

$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. 


    

Domain Name Server

Ubuntu 계열

# 필요 패키지

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, 세로)에 공백이 있어서는 안된다.


$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.