Domain 과 Hostname 개념
ㄴ domain 은 네트워크의 외부 이름
ex) naver.com
ㄴ hostname 은 네트워크 내부의 컴퓨터를 구분하기 위한 이름
ex) www.naver.com
domain ==> ip 로 변환해줌 (반대의 기능도 함)
네트워크에 참여하는 컴퓨터가 많지 않을 때는 /etc/hosts 파일만으로 통신할 수 있지만
네트워크에 참여하는 컴퓨터가 늘어나면서 모든 정보를 기억하는 것이 불가능
DNS 란?
ㄴ DNS 실습 전 중요한 정보들을 알아보자
1. nslookup
ㄴ 입력하는 주소에 대한 ip 정보를 가져옴
ㄴ ip 를 입력할 경우 컴퓨터의 hostname을 볼 수 있음
#nslookup
> naver.com : naver.com 사이트의 ip 정보를 가져옴
> 223.130.195.200 : 컴퓨터의 hostname 이 나옴
** 윈도우 명령프롬프트에서의 nslookup
Microsoft Windows [Version 10.0.19044.2846]
(c) Microsoft Corporation. All rights reserved.
C:\Users\bitcamp>nslookup
기본 서버: kns.kornet.net
Address: 168.126.63.1
> hp.com --> domain => ip
서버: kns.kornet.net
Address: 168.126.63.1
권한 없는 응답:
이름: hp.com
Addresses: 15.73.145.56
15.72.80.135
> 15.73.145.56 --> ip => domain
서버: kns.kornet.net
Address: 168.126.63.1
이름: hpprintcartridge.com
Address: 15.73.145.56
> exit
**추가실습 : 메모장 관리자권한으로 실행
223.130.200.104 naver.com aa.com
ㄴ hosts 파일 맨 밑에 위 내용 추가 하면 브라우저에서 aa 입력 시 naver 로 이동 가능
C:\Users\bitcamp>nslookup --> 네임서버 찾기
기본 서버: kns.kornet.net
Address: 168.126.63.1
> kro.kr --> DNS 한테 물어봄
서버: kns.kornet.net
Address: 168.126.63.1
권한 없는 응답: --> 직접 알아본 것이 아니고 알아봐준 것임을 의미함
이름: kro.kr
Addresses: 139.99.89.153
172.104.112.214
> server 8.8.8.8 --> Google Public DNS 서비스에서 제공하는 DNS 서버의 IP 주소
기본 서버: dns.google --> google dns 가 답해주고 있는 것
Address: 8.8.8.8
> korea.com
서버: dns.google --> google dns 가 답해주고 있는 것
Address: 8.8.8.8
권한 없는 응답:
이름: korea.com
Address: 119.205.213.227
>
** 리눅스에서의 nslookup
root@ysy1:~# nslookup
> korea.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: korea.com
Address: 119.205.213.227
>
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> oracle.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: oracle.com
Address: 138.1.33.162
>
port number : TCP/IP port
# grep domain /etc/services : 모든 프로그램들의 포트번호를 알 수 있음
네임서버 구조
bind
bind 설치
root@ysy1:~# aq bind9 --> bind 설치 확인
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
bind9-dnsutils/jammy-security,now 1:9.18.1-1ubuntu1.3 amd64 [installed,upgradable to: 1:9.18.12-0ubuntu0.22.04.1]
bind9-host/jammy-security,now 1:9.18.1-1ubuntu1.3 amd64 [installed,upgradable to: 1:9.18.12-0ubuntu0.22.04.1]
bind9-libs/jammy-security,now 1:9.18.1-1ubuntu1.3 amd64 [installed,upgradable to: 1:9.18.12-0ubuntu0.22.04.1]
root@ysy1:~# ai bind9 --> 설치
root@ysy1:~# aq bind9 --> 설치 확인
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
bind9-dnsutils/jammy-updates,now 1:9.18.12-0ubuntu0.22.04.1 amd64 [installed,automatic]
bind9-host/jammy-updates,now 1:9.18.12-0ubuntu0.22.04.1 amd64 [installed,automatic]
bind9-libs/jammy-updates,now 1:9.18.12-0ubuntu0.22.04.1 amd64 [installed,automatic]
bind9-utils/jammy-updates,now 1:9.18.12-0ubuntu0.22.04.1 amd64 [installed,automatic]
bind9/jammy-updates,now 1:9.18.12-0ubuntu0.22.04.1 amd64 [installed]
bind 실행
root@ysy1:~# systemctl start bind9 --> bind 실행 명령
root@ysy1:~# systemctl start named --> bind 실행 명령
root@ysy1:~# ps -ef | grep named --> bind 실행 확인
bind 22285 1 0 10:28 ? 00:00:00 /usr/sbin/named -u bind
root 22444 21878 0 10:31 pts/7 00:00:00 grep --color=auto named
root@ysy1:~# ufw status --> 방화벽 상태 확인
Status: inactive --> 방화벽 비활성화 상태
/etc/bind
root@ysy1:~# cd /etc/bind/
root@ysy1:/etc/bind# ls
bind.keys db.255 named.conf named.conf.options
db.0 db.empty named.conf.default-zones rndc.key
db.127 db.local named.conf.local zones.rfc1918
기본 구성 파일 : /etc/bind/named.conf --> named.conf 파일 에서는 주석을 // 로 함
/etc/bind/named.conf.options : 글로벌 DNS 옵션
/etc/bind/named.conf.local : 귀하의 지역
/etc/bind/named.conf.default-zones : localhost 와 같은 기본 영역, 역방향 및 루트 힌트
루트 네임 서버는 파일에 설명되어 /etc/bind/db.root 에 있었음
이것은 패키지 /usr/share/dns/root.hints 와 함께 제공된 파일 대신 제공되며
위 dns-root-data 의 named.conf.default-zones 구성 파일에서 참조
root@ysy1:/etc/bind# ls
bind.keys db.255 named.conf named.conf.options
db.0 db.empty named.conf.default-zones rndc.key
db.127 db.local named.conf.local zones.rfc1918
/etc/bind/named.conf.options 파일 편집
root@ysy1:/etc/bind# vi named.conf.options
/etc/bind/db.local
root@ysy1:/etc/bind# nl /etc/bind/db.local
1 ;
2 ; BIND data file for local loopback interface
3 ;
4 $TTL --> 살아있는 시간 604800 --> 7일
5 @ --> 도메인 자체 IN --> 인터넷 SOA localhost. --> 네임서버 root.localhost. (
6 2 ; Serial
7 604800 ; Refresh
8 86400 --> 24시간 ; Retry
9 2419200 ; Expire
10 604800 ) ; Negative Cache TTL
11 ;
12 @ IN NS localhost.
13 @ IN A 127.0.0.1
14 @ IN AAAA ::1
/etc/bind/db.127
root@ysy1:~# nslookup
> localhost
Server: 127.0.0.53
Address: 127.0.0.53#53
Name: localhost
Address: 127.0.0.1 --> /etc/bind/db.local 파일에서 확인 가능
Name: localhost
Address: ::1
root@ysy1:~# nl /etc/bind/db.127
1 ;
2 ; BIND reverse data file for local loopback interface
3 ;
4 $TTL 604800
5 @ IN SOA localhost. root.localhost. (
6 1 ; Serial
7 604800 ; Refresh
8 86400 ; Retry
9 2419200 ; Expire
10 604800 ) ; Negative Cache TTL
11 ;
12 @ IN NS localhost.
13 1.0.0 IN PTR localhost. --> 127.0.0.1 => localhost 라고 대답(역방향)
파일 설정 완료 후
root@ysy1:/etc/bind# systemctl restart named --> 파일 설정 완료 후 재시작 필요
--> 에러 발생 시 /etc/bind/named.conf.options 다시 확인
/etc/bind/named.conf.default-zones
root@ysy1:/etc/bind# vi named.conf.default-zones
ㄴ 아래 내용 추가
/etc/bind/nc.zone (/etc/bind/db.local 파일 복사본) 설정
root@ysy1:/etc/bind# cp db.local nc.zone
root@ysy1:/etc/bind# vi nc.zone
ㄴ 아래와 같이 수정
/etc/bind/nc.rev (생성해둔 /etc/bind/nc.zone 파일 복사본)
root@ysy1:/etc/bind# cp nc.zone nc.rev --> 편하게 작성하기 위해 nc.zone 을 복사한 것
root@ysy1:/etc/bind# vi nc.rev
** 주의 : 설정후 재 시작
root@ysy1:/etc/bind# systemctl restart named
nslookup 으로 확인
root@ysy1:/etc/bind# nslookup
> server 127.0.0.1 --> 서버 127.0.0.1 로 바꿔주어야 함
Default server: 127.0.0.1
Address: 127.0.0.1#53
> nc.co.kr
;; communications error to 127.0.0.1#53: timed out
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: nc.co.kr
Address: 200.100.50.10 --> nc.co.kr => 200.100.50.10 확인
> ns.nc.co.kr
;; communications error to 127.0.0.1#53: timed out
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: ns.nc.co.kr
Address: 200.100.50.10 --> ns.nc.co.kr => 200.100.50.10 확인
> 200.100.50.10
;; communications error to 127.0.0.1#53: timed out
10.50.100.200.in-addr.arpa name = ns.nc.co.kr. --> 200.100.50.10 => ns.nc.co.kr. 확인
10.50.100.200.in-addr.arpa name = nc.co.kr. --> 200.100.50.10 => nc.co.kr. 확인
> www.nc.co.kr
;; communications error to 127.0.0.1#53: timed out
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.nc.co.kr
Address: 200.100.50.20 --> www.nc.co.kr => 200.100.50.20 확인
> web.nc.co.kr
;; communications error to 127.0.0.1#53: timed out
Server: 127.0.0.1
Address: 127.0.0.1#53
web.nc.co.kr canonical name = www.nc.co.kr. --> web.nc.co.kr. == www.nc.co.kr. 같음을 뜻함
Name: www.nc.co.kr
Address: 200.100.50.20 --> web.nc.co.kr => 200.100.50.20 확인
> 200.100.50.20
;; communications error to 127.0.0.1#53: timed out
20.50.100.200.in-addr.arpa name = www.nc.co.kr. --> 200.100.50.20 => www.nc.co.kr. 확인
20.50.100.200.in-addr.arpa name = web.nc.co.kr. --> 200.100.50.20 => web.nc.co.kr. 확인
> ftp.nc.co.kr
;; communications error to 127.0.0.1#53: timed out
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: ftp.nc.co.kr
Address: 200.100.50.30 --> ftp.nc.co.kr => 200.100.50.30 확인
> 200.100.50.30
;; communications error to 127.0.0.1#53: timed out
30.50.100.200.in-addr.arpa name = ftp.nc.co.kr. --> 200.100.50.30 => ftp.nc.co.kr. 확인
> mail.nc.co.kr
;; communications error to 127.0.0.1#53: timed out
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: mail.nc.co.kr
Address: 200.100.50.40 --> mail.nc.co.kr => 200.100.50.40 확인
> 200.100.50.40
;; communications error to 127.0.0.1#53: timed out
40.50.100.200.in-addr.arpa name = mail.nc.co.kr. --> 200.100.50.40 => mail.nc.co.kr. 확인
'네이버클라우드 > Linux' 카테고리의 다른 글
Linux 7일차 (2023-05-02) Linux Network - Web server (0) | 2023.05.02 |
---|---|
Linux 7일차 (2023-05-02) Linux Network - 윈도우 mount 복습 (0) | 2023.05.02 |
Linux 6일차 (2023-05-01) Linux Network - Network의 이해 (0) | 2023.05.01 |
Linux 6일차 (2023-05-01) Linux System 관리 - log관리 및 웹페이지 만들기 (0) | 2023.05.01 |
Linux 6일차 (2023-05-01) Linux System 관리 - 개발 환경 gcc · make (0) | 2023.05.01 |