공부공부 공부공부내용
vol2_3 DNS 서버구성 (DHCP 포함) 본문
vol2_3 DNS 서버구성 (DHCP 포함)
wkdth04 2020. 6. 3. 22:21DHCP 서버
-
ip /subnetmask
-
gateway
-
dns 주소
Client -> server (dhcp Discover)
-서버에게 접속을 요청
dest 255.255.255.255 , 포트번호 67
src 0.0.0.0 : 68
tran ID : 777
-
server -> client
-
tran ID :777
-
src : 111.111.104.2
-
dest : 255.255.255.255 : 68
3. c -> s DHCP request
브로드 케스트로 IP 를 지정받음을 공표
tran ID : 777
src : 0.0.0.0 :68
dest : 255.255.255.255:67
4. s -> c DHCP ACK
src : 111.111.104.2 : 67
dest : 111.111.104.25 : 68
ID : 777
---------------------------------------------
DHCP 연결이 실패하면 169.254.???.???
1. dhcp 서버 ip 할당
network profile 전부 삭제
network profile 새로 추가
192.168.50.100/24
192.168.50.1
8.8.8.8
2. client
Edit -> Connection Details -> Virtual Networks -> 새로운 네트워크 추가 -> Enable DHCPv4 체크 해제 -> forward -> Forwarding to physical network 항목 체크 -> finish -> Apply
Virtual Network Interface의 Network Source를 dhcp 실습용 네트워크로 설정 -> 실행
3. server 에 dhcp 패키지 설치
yum install dhcp
vi /etc/dhcp/dhcpd.conf
# 참고 /usr/share/doc/dhcp*/dhcpd.conf.example
# /etc/dhcp/dhcpd.conf
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.101 192.168.50.110;
option routers 192.168.50.1;
option broadcast-address 192.168.50.255;
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
}
# 위에거랑 같은거
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.101 192.168.50.110;
option routers 192.168.50.1; # default gateway 의미
option broadcast-address 192.168.50.255;
option domain-name-server 8.8.8.8;
default-lease-time 600; #d이 시간안에 할당하겠다는 뜻
max-lease-time 7200;
}
이제 설정했으니깐 방화벽 설정하고 서비스 올린다.
(이 순서**********************)
4.
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
systemctl enable dhcpd
systemctl start dhcpd
systemctl status dhcpd
tail -f /var/lib/dhcpd/dhcpd.leases 로 모니터링
5. client 에서
클라이언트의 네트워크 장비도 DHCP로 똑같이 설정해준 후에
nmcli con add con -name dhcp_c type ethernet ifname eth0 으로 새로 생성해서
nmcli connection up dhcp_c 를 업시켜주면
(서버의 tail -f /var/lib/dhcpd/dhcpd/leases 를 열어놓고 클라이언트가 할당받으면 서버창 여기에 뜬다.)
Chapter 3. DNS 서버
DNS 서버
-
IP-DN
-
DN : www.google.com -> DNS server -> IP 알려줌
-
www.google.com | google’s IP
-
www.naver.com | naver’s IP
-
DNS 주소가 너무 많음
-
검색하는데 시간이 너무 오래 걸림
DNS 구조
-
root servers
.com | .com’s IP
.org | .org’s IP
.com | nsname.come | NS | 3500
nsname.com | 101.5.5.3 | A | 3500
-
TLD(Top Level Domain)
.com
google.com | google.com’s IP
amazon.com | amazon.com’s IP
nsname.com
google.com | dn1.google.com | NS | 3500
dn1.google.com | 8.8.8.8 | A | 3500
amazon.com | dn1.amazon.com | NS | 3220
amazon.com | 9.9.9.9 | A | 3220
DNS 종류
-
authoritative DNS
-
IP 주소를 저장, 수정, 삭제
maps.com | maps.google.com ‘s IP
www.google.com | www.google.com ‘s IP
mail.google.com | mail.google.com ‘s IP
dn1.google.com
maps.com | 8.8.8.10fire
www.google.com | 8.8.8.15
mail.google.com | 8.8.8.100
-
cache DNS
-
사용자로부터 DNS 정보조회 요청을 받을 때 authoritative DNS에서 정보 가져와 사용자에게 제공
Local DNS 서버를 만들어 놓고 운영
-
DNS 쿼리를 저장해놓고 host들이 질의하면 대신 답변
-
TTL 필드가 존재해서 최신 상태를 유지하게 해줌
DNS 레코드
-
DNS 레코드의 변경사항이 적용될 때까지 걸리는 시간을 결정
-
NAME VALUE TYPE TTL
-
A record: 호스트 주소(IPv4, IPv6)
www.google.com | 111.111.11.11 | A | 1250
server1.google.com | 111.111.11.15 | A | 1250
mail.google.com | 111.111.11.15 | A | 1250
google.com | 111.111.20.230 | A | 1250
-
NS record: Name Server
.com | nsname.com | NS | 3500
.net | nsname-net.com | NS | 3500
-
CNAME record: 별칭
www.google.com | server1.google.com | CNAME | 30
www.google.com | server2.google.com | CNAME | 30
chapter 3 DNS 서버
*참고
https://www.codns.com/b/B05-162
전세계 몇개 없는 루트 디렉토리를 모두 사용하면 트래픽이 발생하므로 로컬 ____ 이 응답할수있도록 하는것 (우리나라의 kt , skt , lg등)
ttl -> 갱신되어야 할 시간
DNS 서버님
IP-DN
DN : www.google.com -> DNS server -> IP 알려줌
www.google.com | google's IP
www.naver.com | naver's IP
- DN 주소가 너무 많다.
- 검색하는데 시간이 너무 오래 걸린다
--------------------------------------------------
Local DNS 서버를 만들어 놓고 운영한다.
- DNS 쿼리를 저장해놓고 host들이 질의 하면 대신 답변해줌
- TTL 필드가 존재해서 최신 상태를 유지하게 해준다.
--------------------------------------------------
1 ifconfig
2 sudo yum install bind-utils.x86_64
3 host google.com
4 host -v google.com
5 history
6 host -t cname google.com
7 host -t ns google.com
8 host ns4.google.com 8.8.8.8
9 yum install -y bind*
10 sudo yum update
11 yum install -y bind*
12 sudo systemctl staus named.service
13*
14 sudo yum install -y bind*
15 sudo systemctl staus named.service
16 sudo systemctl status named.service
17 sudo bi /etc/named.conf
18 sudo vi /etc/named.conf
19 systemctl start named.service
20 sudo systemctl start named.service
21 sudo setenforce 0
22 sudo getenforce
23 sudo firewall-cmd --add-service=dns --permanent
24 sudo firewall-cmd --reload
25 sudo firewall-cmd --list-all
26 여기까지 질의 허용한상태
27 클라이언트 창 다시켜서 nslookup해보고
28 해서 끊어버리면 클라이언트에서 질의불가
-------------------------------------------------day6/2----------------------------------------------------------------
6/2 화요일
DNS 서버구성 전 환경설정.
장비만들고
nmcli con add con-name eth0-http type ethernet ifname eth0
nmcli con mod eth0_http ipv4.addresses 192.168.122.150/24접속
sudo nmcli con mod eth0_http ipv4.gateway 192.168.122.1
sudo nmcli con mod eth0_http ipv4.dns 192.168.122.200
sudo nmcli con mod eth0_http ipv4.method manual
sudo nmcli con up eth0_http
hostnamectl set-hostname www.20200602.co.kr
로 설정
ping www.google.com -> 잘가는지 확인. 만든 dns서버가 잘 동작하는지 확인
새로만든 네트워크로 ssh 접속 ip 192.168.122.150
--------------------------강사님 압축정리 ----------------------------
sudo yum install httpd
sudo vi /var/www/html/index.html
hello~ world
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
systemctl start httpd
systemctl status httpd
systemctl enable httpd
vi /etc/named.conf -> 기존 존 에 하나 추가
cd /var/named/data/
ls
cp nobreak.xo.kr.zone /var/named/data/20200602.co.kr.zone
named-checkzone
systemctl restart named.service
<client>
nslookup 20200602.co.kr 192.168.122.150
** dns바꿔주기
nmcli con down eth0-client (오류나면 모두 down해주고 다시 설정후 up)
nmcli con mod eth0_client ipv4.dns 192.168.122.150
nmcli con up eth0-client
nmcli con reload eth0-client
curl www.20200602.co.kr
curl 192.168.122.150
curl 하면 뜬다.
--------------------------실습과정 자세하게---------------
DNS zone 생성
server
33 sudo cp /var/named/named.empty /var/named/data/nobreak.co.kr.zone
34 sudo vi /var/named/data/20200602.co.kr.zone
36 sudo vi /etc/named.conf
39 sudo named-checkconf /etc/named.conf
40 sudo vi /etc/named.conf
42 sudo systemctl restart named.service
43 sudo systemctl status named.service
45 sudo chmod -R 754 /var/named
46 sudo systemctl restart named.service
client
13 sudo yum install bind-utils.x86_64
14 nslookup www.google.com 192.168.122.200
15 nslookup www.20200602.co.kr 192.168.122.200
문제 변경
16 curl www.20200602.co.kr
-------------------***DNS서비스 구성 정리***----------------------------
순서
yum update 먼저,
1.먼저 각각 서버와 클라이언트에서 바인드를 설치한다. yum install bind-utils.x86_64
bind패키지가 설치된 이후에 DNS서비스를 제공하기 위한 named 서비스를 사용할 수 있다.
- 설치직후에는 systemctl status named.service 로 확인해보면 아직 서비스 활성화가 안되어있다.
<서버>
2.바인드 구성을 위해 named서비스 설정 파일인 /etc/named.conf 를 cat으로 확인해보면
옵션 영역에서 port53번 부분 영역들이 현재 시스템만 DNS요청을 받아들일 수 있도록 설정되어있다. (기본설정값)
이부분을 각각 vi편집기로 any; , none;, any; 로 변경해주고 systemctl enable named.service, systemctl restart named.service 한다. 상태 확인해보면 활성화 되어있다.
3. UDP포트 53번을 허용해야 DNS사용이 가능하기 때문에
방화벽에서 연결허용을 해줘야한다.
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
이후 DNS가 동작하는지 확인하기 위해
nslookup www.google.com 192.168.122.200 (본인 아이피)
치면 뜬다.
[존파일 구성과 권한문제 해결필수]
4. * sudo chmod -R 754 /var/named (권한부여/읽기 권한 허용해줘야함)
* 존 구성
sudo cp /var/named/named.empty /var/named/data/www.20200602.co.kr.zone
sudo vi /var/named/data/20200602.co.kr.zone (www. 으로 해줘도 되고 기존에 없는 서버로 이름 자유 , 하지만 마지막부분에 .zone 형식으로 만들어줘야함)
5.존 파일 조회
-정방향 // 역방향
cd /var/named 로 들어가서
cat /data/www.20200602.co.kr 확인해보고 vi편집기로
NS 부분에 www.20200602.co.kr
그밑 A 부분에 서버주소 적기(server 주소 192.168.122.200)
6. /etc/named.conf 파일수정*****
zone영역 추가하기
ex)
zone "www.20200602.co.kr." IN{
type master; ****마스터형태
file "data/www.20200602.co.kr.zone";
};
이후
sudo named-checkconf /etc/named.conf
sudo systemctl restart named.service
sudo systemctl status named.service
8. http서비스 패키지 다운 및 방화벽 활성화
9. vi 로 html 에 내용 입력해주고
<클라이언트>
7. nslookup www.20200602.co.kr 192.168.122.200 으로 확인해보면
잡히고 저장
>> 클라이언트의 도메인 서버의 IP주소로 바꿔주고
8. curl 로 확인
*** 실수였던 부분
-> vi 존 설정시 @ 와 ; 의 오타 및 누락
-> 클라이언트 서버에서 기존 디엔에스 서버를 서버의 아이피주소로 변경해줘야한다******
또한 , curl 전에는 http 를 yum install 해주고
방화벽 firewall-cmd 를 통해 http서비스 시작해주고 리로드 해준다.
systemctl 활성화 및 재시작을 하고 status로 상태확인을 해준다.
잘 작동하고 있으면
**** vi /var/www/html/index.html 에 "hello world!"를 입력한다.
이후 클라이언트에서 curl 잡아주면 -> hello world가 잡힌다.
웹페이지상에서도 서버의 주소를 입력하면 hello world가 출력된다.
'IT 기초, 네트워크, 리눅스 > 2. 리눅스 기초 vol2 (kvm 활용한 서비스 관리)' 카테고리의 다른 글
vol2_ smb스토리지 (0) | 2020.06.04 |
---|---|
vol2 _4 NFS (0) | 2020.06.03 |
vol2_2 SELinux (0) | 2020.06.03 |
vol2_1 네트워크 티밍 (0) | 2020.06.03 |
vol2 _5 nfs 스토리지 구성과 마운트로 연결하기 (수동맵, 자동맵<직접맵,간접맵>) (0) | 2020.06.03 |