네트워크 프로토콜은 크게 두가지로 나뉘어진다. 실제로 데이터를 실어 나르는 데이터 프로토콜과 데이터 프로토콜이 잘 동작하도록 도와주는 컨트롤 프로토콜이다.
- 데이터 프로토콜 : 실제로 데이터를 실어나르는 데이터 프로토콜
- 컨트롤 프로토콜: 데이터 프로토콜이 잘 동작하도록 도와주는 프로토콜
DNS는 컨트롤 프로토콜이다
컨트롤 프로토콜에는 ARP, ICMP, DNS가 있다.
DNS는 도메인 주소를 IP주소로 변환하는 역할을 한다.
인터넷에 연결한 컴퓨터가 많이 없던 당시 컴퓨터 주소인 IP를 쉽게 외울수 있었다. 하지만 지금과 같이 무수한 컴퓨터가 있고 다양한 네트워크가 생기면서 IP주소를 외우기엔 어려워졌다.
외운 것을 적어놓으면 어떨까?
IP주소를 적고 영희네집 번호 라고 적어두는 것이다.
102.54.94.97 - 영희네집 번호
이렇게 영희네집이라고 검색을 하면 hosts파일을 검색하여 해당 IP를 찾아 접속할수 있는 시스템이 등장했다.
핸드폰을 바꾸면 종종 번호도 바뀌듯이 이런 바뀐 번호는 각자 알아서 hosts 파일에 수정을 해야했다. 하지만 이런게 수십 수백건이 된다면 처리하기가 어려워진다.
그래서 이것을 전문으로 일하는 서버가 필요해졌고 이를 네임서버 또는 DNS 서버라고 부르게 되었다.
네임 서버는 인터넷에서 변화하는 모든 컴퓨터의 URL과 IP정보를 거의 실시간으로 제공하므로 사용자는 더이상 URL에 해당하는 IP주소를 신경 쓸 필요가 없어졌다. URL만 알면 어디서든 해당 컴퓨터에 접속 할 수 있게 되었다.
nslookup
명령어 server
입력내 핸드폰에 친구들의 모든 주소를 갖고 있지 않듯이 로컬 네임 서버 혼자 세계 모든 컴퓨터의 도메인 이름을 관리할 수 없다.
로컬 DNS 서버에 등록된 주소로 다른 클라이언트 haha가 해당 IP가 있는지 물어보고 접속이 가능한지 확인
[root@server3 ~]# rpm -qa|grep bind
bind-utils-9.9.4-72.el7.x86_64
bind-libs-9.9.4-72.el7.x86_64
bind-license-9.9.4-72.el7.noarch
keybinder3-0.3.0-1.el7.x86_64
bind-libs-lite-9.9.4-72.el7.x86_64
rpcbind-0.2.0-47.el7.x86_64
[root@server3 ~]#
[root@server3 ~]# dnf -y install bind bind-chroot
[root@server3 ~]# vi /etc/named.conf
[root@server3 ~]# vi /etc/named.conf
[root@server3 ~]# systemctl restart named
[root@server3 ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@server3 ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2022-09-11 10:29:27 KST; 29s ago
Main PID: 15137 (named)
CGroup: /system.slice/named.service
└─15137 /usr/sbin/named -u named -c /etc/named.conf
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './D...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './N...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './D...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './N...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './D...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './N...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './D...3
Sep 11 10:29:27 server3.com named[15137]: network unreachable resolving './N...3
Sep 11 10:29:27 server3.com named[15137]: resolver priming query complete
Sep 11 10:29:27 server3.com named[15137]: managed-keys-zone: Key 20326 for z...d
Hint: Some lines were ellipsized, use -l to show in full.
[root@server3 ~]#
[root@server3 ~]# firewall-cmd --permanent --add-port=53/tcp
success
[root@server3 ~]# firewall-cmd --permanent --add-port=53/udp
success
[root@server3 ~]# firewall-cmd --permanent --add-service=dns
success
[root@server3 ~]#
[root@server3 ~]#
[root@server3 ~]# dig @192.168.56.103 www.kakao.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> @192.168.56.103 www.kakao.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41965
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.kakao.com. IN A
;; ANSWER SECTION:
www.kakao.com. 600 IN A 211.249.221.105
;; AUTHORITY SECTION:
kakao.com. 172800 IN NS ns1.kakao.com.
kakao.com. 172800 IN NS ns2.kakao.com.
;; ADDITIONAL SECTION:
ns1.kakao.com. 172800 IN A 113.61.106.5
ns2.kakao.com. 172800 IN A 113.61.107.5
;; Query time: 53 msec
;; SERVER: 192.168.56.103#53(192.168.56.103)
;; WHEN: Sun Sep 11 10:34:00 KST 2022
;; MSG SIZE rcvd: 126
[root@server3 ~]#
해당 서버에 haha라는 유저를 생성하여 접속한다
제대로 DNS가 작동되는지 확인
- 도메인에 속해 있는 컴퓨터들의 이름을 관리
- 외부에서 www.john.com이나 ftp.john.com등의 컴퓨터 IP주소를 알고자 할때 해당 컴퓨터의 IP주소를 알려주는 네임서버를 말한다.
- 도메인에 속해있는 컴퓨터들의 이름을 관리하고 외부에 해당 컴퓨터의 IP 주소를 알려주는 역할을 한다
웹서버가 설치되어있는지 확인
방화벽 해제
[root@server3 ~]#
[root@server3 ~]# firewall-cmd --permanent --zone=dmz --add-service=http
success
[root@server3 ~]# firewall-cmd --permanent --zone=dmz --add-service=https
success
[root@server3 ~]#
zone "john.com" IN {
type master;
file "john.com.db";
allow-update { none;};
};
[root@server3 ~]# named-checkconf
[root@server3 ~]#
$TTL 3H
@ SOA @ root. ( 2 1D 1H 1W 1H )
IN NS @
IN A 192.168.56.103
WWW IN A 192.168.56.103
ftp IN A 192.168.56.102
[root@server3 named]# named-checkzone john.com john.com.db
zone john.com/IN: loaded serial 2
OK
[root@server3 named]#
[root@server3 named]# systemctl restart named
[root@server3 named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2022-09-11 11:38:23 KST; 5s ago
Process: 17528 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 17544 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 17540 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 17545 (named)
Tasks: 7
CGroup: /system.slice/named.service
└─17545 /usr/sbin/named -u named -c /etc/named.conf
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './N...3
Sep 11 11:38:23 server3.com systemd[1]: Started Berkeley Internet Name Domai....
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './D...3
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './N...3
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './D...3
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './N...3
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './D...3
Sep 11 11:38:23 server3.com named[17545]: network unreachable resolving './N...3
Sep 11 11:38:24 server3.com named[17545]: resolver priming query complete
Sep 11 11:38:24 server3.com named[17545]: managed-keys-zone: Key 20326 for z...d
Hint: Some lines were ellipsized, use -l to show in full.
[root@server3 named]#
- 참고자료
https://www.44bits.io/ko/keyword/cli--nslookup
이것이 리눅스다 Chapter 9,10
카카오클라우드 스쿨 5조