DNS
* DNS ( Domain Name Service )
- 사람이 사용하는 도메인 주소를 컴퓨터가 사용하는
IP주소로 변환해주는 기능을 가진 프로그램 서비스
- IP주소를 암기 -> /etc/hosts사용 -> DNS사용으로 발전
! DNS 서버 구축
@Server-A
#setenforce 0
#service iptables stop
#yum install -y bind bind-utils bind-libs bind-chroot
bind // dns 서버 프로그램
bind-utils // dns 질의용 프로그램
bind-libs // dns 서버에 필요한 라이브러리
bind-chroot // chroot환경을 적용시키기위한 파일 제공
#vi /etc/named.conf
---------------------------
options {
(11번행)listen-on port 53 { any; }; // dns 53번포트를 사용
53번 포트에 접속할 IP 주소 설정 ( any = 모두 )
(12번행)listen-on-v6 port 53 { none; }; // IPv6연결은 허용하지 않음
(17번행)allow-query { any; }; // 해당 네임서버로 질의할 수 있는
클라이언트의 IP 주소 ( any = 모두 )
(18번행)recursion yes; // 해당 네임서버가 관리하는 도메인이
아닐경우 root네임서버에게 해당정보를
전달하여 대신 응답하도록 설정
(20번행)dnssec-enable no; // dns_sec 사용x
(21번행)dnssec-validation no;
:wq
-----------------------------
#vi /etc/named.rfc1912.zones
- zone 정보를 설정하기 위한 파일
------------------------------
~~~ 제일 하단에 추가 ~~~
zone "jaehyun.com" IN { // 해당 도메인
type master; // 실제 정보를 제공하는 서버
file "jaehyun.zone"; // 도메인에 대한 정보를 가지고 있는
데이터베이스 파일명 ( /var/named에 위치 )
allow-update { none; }; // 원격에서 업데이트가
가능할 경우 허용할 IP 주소
};
zone "100.100.100.in-addr.arpa" IN { //100.100.100.0대역의 역방향 질의 설정
Ex)192.168.5.100 -> 5.168.192
192.168.5.200 -> 5.168.192
type master;
file "jaehyun.rev.zone";
allow-update{ none; };
};
:wq!
--------------------------------
#named-checkconf /etc/named.rfc1912.zones // 정상일 경우 결과가 없음
#cd /var/named // zone파일이 위치해 있는 디렉터리
#cp named.empty jaehyun.zone // zone파일 형식 복사
// /etc/named.rfc1912.zones에 설정한
파일이름과 같아야 된다.
#cp named.empty jaehyun.rev.zone // zone파일 형식 복사
// 역방향 zone파일
(관용적으로 이름뒤에 .rev를 붙인다.)
#chown root.named jaehyun.* // named 데몬이 해당 파일을 읽을 수
있어야 한다.
#vi jaehyun.zone // 정방향 파일 편집
---------------------------------------
$TTL 3H
@ IN SOA ns.jaehyun.com. admin.jaehyun.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.jaehyun.com.
A 100.100.100.100
ns IN A 100.100.100.100
ftp IN A 100.100.100.100
www IN A 100.100.100.100
:wq!
---------------------------------------
#vi jaehyun.rev.zone // 역방향 파일 편집
--------------------------------------------
$TTL 3H
@ IN SOA ns.jaehyun.com. admin.jaehyun.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.jaehyun.com.
100 PTR ns.jaehyun.com.
100 PTR ftp.jaehyun.com.
100 PTR http://www.jaehyun.com.
:wq!
--------------------------------------
#named-checkzone jaehyun.zone jaehyun.rev.zone // zone파일 오류검사
( 오류가 없으면 ok 출력 )
#service named start // 오타 및 오류가 없을경우
서버가 정상적으로 동작
// 오타 및 오류가 있을경우
다시 수정하고 서비스 실행
@Client_Linux
#yum install -y bind-utils // 클라이언트용 프로그램 설치
#cat /etc/resolv.conf // 현재 nameserver 확인
nameserver 168.126.63.1
nameserver 168.126.63.2
#nslookup
>server // 지금 사용하는 서버
168.126.63.1
>http://www.google.com// o
>http://www.daum.net// o
>ftp.jaehyun.com // x
>http://www.jaehyun.com// x
>server 100.100.100.100 // 지금 사용하는 서버를
100.100.100.100으로 수정
>server // 100.100.100.100
>http://www.google.com// o
>http://www.daum.net// o
>ftp.jaehyun.com // o ( 로컬 dns에 등록되어 있기 때문 )
>http://www.jaehyun.com// o
>exit
#cat /etc/resolv.conf // 현재 사용되는 dns 서버
168.126.63.1
168.126.63.2
#ping http://www.google.com// o
#ping http://www.jaehyun.com// x
#ping ftp.jaehyun.com // x
#vi /etc/resolv.conf
--------------------------
nameserver 100.100.100.100 //일시적으로 dns서버 변경
:wq
--------------------------
#ping http://www.google.com// o
#ping http://www.jaehyun.com// o ( 로컬 dns에 등록되어 있기 때문 )
#ping ftp.jaehyun.com // o
! DNS 서버 이중화
Server-B 가상머신 생성
IPADDR=100.100.100.250
NETMASK=255.255.2550
GATEWAY=100.100.100.2
DNS1=168.126.63.1
( 네트워크 설정 이후로 스냅샷 저장 )
#setenforce 0
#service iptables stop
#yum install -y bind bind-utils bind-libs bind-chroot
#vi /etc/named.conf
---------------------------
options {
(11번행)listen-on port 53 { any; }; // dns 53번포트를 사용
53번 포트에 접속할 IP 주소 설정 ( any = 모두 )
(12번행)listen-on-v6 port 53 { none; }; // IPv6연결은 허용하지 않음
(17번행)allow-query { any; }; // 해당 네임서버로 질의할 수 있는
클라이언트의 IP 주소 ( any = 모두 )
(18번행)recursion yes; // 해당 네임서버가 관리하는 도메인이
아닐경우 root네임서버에게 해당정보를
전달하여 대신 응답하도록 설정
(20번행)dnssec-enable no; // dns_sec 사용x
(21번행)dnssec-validation no;
:wq
-----------------------------
#vi /etc/named.rfc1912.zones
-----------------------------
~~~ 하단에 추가 ~~~
zone "jaehyun.com" IN {
type slave;
file "slaves/jaehyun.zone";
masters { 100.100.100.100; };
allow-uptdate { none; };
};
zone "100.100.100.in-addr.arpa" IN {
type slave;
file "slaves/jaehyun.rev.zone";
masters { 100.100.100.100; };
allow-uptdate { none; };
};
:wq
-----------------------------
@Server-A
#vi /etc/named.rfc1912.zones
---------------------------------------
zone "jaehyun.com" IN {
type master;
file "jaehyun.zone";
allow-update { none; };
allow-transfer { 100.100.100.250; };
};
zone "100.100.100.in-addr.arpa" IN {
type master;
file "jaehyun.rev.zone";
allow-update{ none; };
allow-transfer { 100.100.100.250; };
};
:wq
----------------------------------------
#vi jaehyun.zone // 정방향 파일 편집
---------------------------------------
$TTL 3H
@ IN SOA ns.jaehyun.com. admin.jaehyun.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.jaehyun.com.
NS ns2.jaehyun.com.
ns IN A 100.100.100.100
ns2 IN A 100.100.100.250
ftp IN A 100.100.100.100
www IN A 100.100.100.100
:wq!
---------------------------------------
#vi jaehyun.rev.zone // 역방향 파일 편집
--------------------------------------------
$TTL 3H
@ IN SOA ns.jaehyun.com. admin.jaehyun.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.jaehyun.com.
NS ns2.jaehyun.com.
100 PTR ns.jaehyun.com.
250 PTR ns2.jaehyun.com.
100 PTR ftp.jaehyun.com.
100 PTR http://www.jaehyun.com.
:wq!
--------------------------------------
#service named restart
@Server-B
#cd /var/named/slaves // zone파일을 수신할 위치
#ll // 아직 수신 x
#service named start // Server-B DNS시작
#ll // jaehyun.zone
jaehyun.rev.zone 수신 확인
! dns 이중화 테스트
@Client_Linux
#yum install -y bind-utils // dns질의용 프로그램
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
--------------------------------------------
~~~ 생략 ~~~
(변경)
DNS1=100.100.100.100
DNS2=100.100.100.250
:wq!
---------------------------------------------
#service network restart
#cat /etc/resolv.conf // 변경된 설정 확인
nameserver 100.100.100.100
nameserver 100.100.100.250
#nslookup
>server // 100.100.100.100
100.100.100.250
>http://www.naver.com// 외부 , 100.100.100.100응답
>http://www.jaehyun.com// 로컬 , 100.100.100.100응답
@Server-A
#service named stop // master dns서비스 중지
@Client_Linux
>http://www.naver.com// 외부 , 100.100.100.250응답
>http://www.jaehyun.com// 로컬 , 100.100.100.250응답
@Server-B
#service named stop // slave dns서비스 중지
@Client_Linux
>http://www.naver.com// 외부 , 서비스 이용 x
>http://www.jaehyun.com// 로컬 , 서비스 이용 x
@Server-B
#service named start // slave dns서비스 시작
slave dns만 시작된 상태
@Client_Linux
>http://www.naver.com// 외부 , 100.100.100.250응답
>http://www.jaehyun.com// 로컬 , 100.100.100.250응답
@Server-A
#service named start // master dns서비스 시작
master,slave 모두 시작된 상태
@Client_Linux
>http://www.naver.com// 외부 , 100.100.100.100응답
>http://www.jaehyun.com// 로컬 , 100.100.100.100응답
+@ /etc/hosts // 보안적 관점에서 중요
@Server-A
( X-window 설정 이후로 스냅샷이동 )
#yum install -y firefox //firefox 웹브라우저 설치
#echo "nameserver 168.126.63.1" > /etc/resolv.conf
// 실습을 위해서 kt dns서버로 변경
firefox를 이용해서 http://www.nate.com 접속 // o
firefox를 이용해서 120.50.131.112 접속 // o
( nate ip )
#vi /etc/resolv.conf
-------------------------
#nameserver 168.126.63.1 // dns서버 주석처리
:wq!
--------------------------
firefox를 이용해서 http://www.nate.com 접속 // x
firefox를 이용해서 120.50.131.112 접속 // o
( nate ip )
#vi /etc/hosts // 도메인 주소 등록
------------------------
~~~ 하단에 추가 ~~~
120.50.131.112 http://www.nate.com
:wq!
-------------------------
firefox를 이용해서 http://www.nate.com 접속 // o
firefox를 이용해서 120.50.131.112 접속 // o
( nate ip )
#vi /etc/hosts // 도메인 주소 등록
------------------------
~~~ 하단에 추가 ~~~
120.50.131.112 http://www.naver.com
:wq!
-------------------------
firefox를 이용해서 http://www.nate.com 접속 // x
firefox를 이용해서 http://www.naver.com 접속 // nate홈페이지의 ip로 접속
firefox를 이용해서 120.50.131.112 접속 // o
( nate ip )
'LINUX(Server)' 카테고리의 다른 글
| NTP (0) | 2024.04.30 |
|---|---|
| PXE , Kick start (0) | 2024.04.29 |
| NFS (2) | 2024.04.27 |
| FTP (2) | 2024.04.26 |
| DHCP (0) | 2024.04.25 |