<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>creativebox.log</title>
        <link>https://velog.io/</link>
        <description>엔지니어</description>
        <lastBuildDate>Mon, 10 Jul 2023 04:22:39 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>creativebox.log</title>
            <url>https://velog.velcdn.com/images/creativebox_-/profile/c3e89923-3c3e-4d20-9f15-f64ec0a164d0/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. creativebox.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/creativebox_-" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[DHCP & DNS Network  구성]]></title>
            <link>https://velog.io/@creativebox_-/DnsAndDhcpNetwork</link>
            <guid>https://velog.io/@creativebox_-/DnsAndDhcpNetwork</guid>
            <pubDate>Mon, 10 Jul 2023 04:22:39 GMT</pubDate>
            <description><![CDATA[<p>** 원활한 테스트를 위해서 순차적 진행을 권장합니다. **</p>
<h2 id="1-시나리오">1. 시나리오</h2>
<ul>
<li>Local Server : DNS, DHCP, web server에 역활을 수행</li>
<li>Local PC<ul>
<li>Local Server 로부터 DHCP IP를 할당받는다.</li>
<li>Local webserver에 도메인을 Local DNS Server로부터 도메인을 찾고 접속한다.</li>
</ul>
</li>
</ul>
<h2 id="2-테스트-환경">2. 테스트 환경</h2>
<ul>
<li>Network Simulator : GNS3</li>
<li>Packet check : WireShark on GNS3</li>
<li>Host PC : window</li>
<li>Virtualbox<ul>
<li>Local Server : Ubuntu server 20.04 , Host-only &amp; NAT<ul>
<li>Apt  Package : isc-dhcp-server, bind9, apache2, net-tools</li>
</ul>
</li>
<li>Local PC : Ubuntu 20.04, Host-only<ul>
<li>Apt Package : net-tools</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="3-환경-체크">3. 환경 체크</h2>
<p>초기 환경을 확인하는 방법에 대한 설명</p>
<ul>
<li><p>Local Server</p>
<ul>
<li><p>초기 Apt 설치 목록 확인</p>
<ul>
<li><code>apt list --installed</code></li>
<li><code>apt list --installed | grep {패키지명}</code></li>
</ul>
</li>
<li><p>PC확인</p>
<ul>
<li><p><code>ifconfig</code></p>
<ul>
<li>추가 도구 설치</li>
<li>해당 과정에서 IP를 확인을 하기 위해서 추가 도구를 설치해 과정을 편하게 한다.</li>
</ul>
<pre><code class="language-c">sudo apt-get install net-tools</code></pre>
</li>
</ul>
</li>
<li><p>외부 통신 확인(인터넷 확인)</p>
<ul>
<li><code>ping 8.8.8.8</code><ul>
<li>구글 도메인 서버로 Ping 테스트</li>
<li>Apt install을 하기 위해서는 외부와 연결이 필수</li>
<li>오류 발생 시 IP, virtual Box 네트워크 확인<ul>
<li>NAT일 경우 : ip가 10.0.2.15인 것을 확인</li>
<li>host-only 상황에서는 NAT,브릿지로 변경</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="4-apt">4. Apt</h2>
<p>Apt는 리눅스 계열에서 사용되는 소프트웨어 패키지의 설치 및 제거를 도와주는 도구다.</p>
<pre><code class="language-c">sudo apt-get update</code></pre>
<ul>
<li>설치 가능한 패키지 리스트를 업데이트한다.</li>
</ul>
<pre><code class="language-c">sudo apt-get upgrade</code></pre>
<ul>
<li>현재 운영체제에 설치된 패키지를 최신 버전으로 업데이트하는 명령어<ul>
<li>해당 과정을 안 할 경우 vi 편집 과정에서 backspace가 안되어 불편할 수 있다.</li>
</ul>
</li>
<li>현재 설치되어 있는 모든 프로그램을 전부 업데이트해서 버전 오류가 발생할 수 있기에 필요한 부분만 업데이트할 경우</li>
</ul>
<pre><code class="language-c">apt-get install --only-upgrade {packagename}</code></pre>
<h2 id="5-dhcp설정">5. DHCP설정</h2>
<p>Local server에 DHCP 서비스를 설정하는 과정입니다.</p>
<h3 id="51-dhcp-설치">5.1 DHCP 설치</h3>
<pre><code class="language-c">sudo apt-get install isc-dhcp-server</code></pre>
<ul>
<li>apt를 활용해 DHCP서버 패키지를 다운로드</li>
</ul>
<h3 id="52-dhcp-서버-구성">5.2 DHCP 서버 구성</h3>
<p> 5.2.1<code>sudo vi /etc/dhcp/dhcpd.conf</code> 로 DHCP 서버 구성 파일 열기</p>
<pre><code class="language-c">subent 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.1 192.168.10.250
    option routers 192.168.10.251
    option domain-name-servers 192.168.10.253
}</code></pre>
<ul>
<li>내용설명<ul>
<li><code>subent 192.168.10.0 netmask 255.255.255.0</code> : 192.168.10.0/24 대역에 ip에 대한 설정을 의미</li>
<li><code>range 192.168.10.1 192.168.10.250</code> : 192.168.10.1 ~ 250 범위에 IP를 부여</li>
<li><code>option routers 192.168.10.251</code>: 해당 네트워크 대역에 디폴트 게이트웨이를 지정해 준다.</li>
<li><code>option domain-name-servers 192.168.10.253</code> : 해당 네트워크에서 DNS서버를 지정</li>
</ul>
</li>
<li>처음 conf 파일 수정 시 다양한 예제 코드가 주석 처리되어 있어서 참고하고 작성하면 좋다.</li>
<li>처음 Default 값으로 default-lease-time 과 max-lease-time가 입력되어 있다.<ul>
<li>추가적으로 해당 IP대역에 대한 지정도 가능하다.<ul>
<li><code>default-lease-time 600;</code></li>
<li><code>max-lease-time 7200;</code></li>
</ul>
</li>
</ul>
</li>
<li>더 많은 옵션 정보 : <a href="https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhcp-options">ISC-DHCP-SERVER 공식 문서</a></li>
<li>해당 내용을 추가해 준다.<ul>
<li>추가 방법 : <code>i</code> 입력 시 i INSERT모드 진입 → 내용 입력 후 esc 누르고 <code>:wq</code> 입력 후 엔터</li>
<li><code>:wq</code> 가 안될 경우 해당 파일을 읽기 모드로 접근했을 경우가 있으니 <code>:q!</code> 로 나간 후 다시 <code>sudo vi /etc/dhcp/dhcpd.conf</code>로 접근</li>
</ul>
</li>
<li>해당 입력 내용에 대한 syntax check</li>
</ul>
<pre><code class="language-c">dhcpd -t -cf /etc/dhcp/dhcpd.conf</code></pre>
<ul>
<li>문법 에러를 찾아서 고친다.</li>
</ul>
<p>5.2.2<code>sudo vi /etc/default/isc-dhcp-server</code> 로 DHCP interface 설정</p>
<pre><code class="language-c">INTERFACESv4=&quot;{인터페이스명}&quot;</code></pre>
<ul>
<li>{인터페이스명} 확인 방법<ul>
<li><code>ifconfig</code> 입력시</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/81783988-0b15-48b7-ace9-6efb4339d0b2/image.png" alt=""></p>
<pre><code>- enp0s3 가 인터페이스 이름이다.
- 따라서, 현재 테스트 환경에서는 INTERFACESv4=&quot;enp0s3” 를 입력한다.</code></pre><ul>
<li>해당 내용을 추가해 준다.<ul>
<li>입력 방법 : <code>i</code> 입력 시 i INSERT모드 진입 → 내용 입력 후 esc 누르고 <code>:wq</code> 입력 후 엔터</li>
<li><code>:wq</code> 가 안될 경우 해당 파일을 읽기 모드로 접근했을 경우가 있으니 <code>:q!</code> 로 나간 후 다시 <code>sudo vi /etc/default/isc-dhcp-server</code>로 접근</li>
</ul>
</li>
</ul>
<h3 id="53-dhcp-확인">5.3 DHCP 확인</h3>
<p>DHCP Server설정이 정상적으로 되었는지 확인하는 과정입니다.</p>
<p>5.3.0 Virtualbox Network 변경</p>
<ul>
<li>네트워크 추가 생성<ul>
<li>호스트 전용 어댑터를 추가 설치하고 DHCP 기능을 비활성화 설정을 진행</li>
<li>Virtualbox - 도구 - 네트워크 - host-only Network 만들기 2개의 추가 네트워크 생성<ul>
<li>1번 네트워크의 경우 DHCP기능을 비활성화 해도 비활성화가 안되는 오류가 있다.</li>
<li>2, 3번 네트워크를 만들어 본 구현에서 사용할 예정이다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/e769fc68-f8f0-4994-8d71-1cc407860b89/image.png" alt=""></p>
<ul>
<li><p>해당 설정에서 DHCP서버를 꼭 비활성화 해주세요!</p>
</li>
<li><p>Virtualbox에서 해당하는 가상머신 설정 - 네트워크 - 어뎁터1 다음에 연결됨 - 호스트 전용 어댑터로 변경</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/353d187b-13c4-43ec-a43e-90db1d7b6898/image.png" alt=""></p>
<p>5.3.1 IP 설정</p>
<p><code>sudo vi /etc/netplan/00-installer-config.yaml</code> IP 설정을 위한 yaml파일 입니다</p>
<pre><code class="language-c">network:
    ethernets:
        enp0s3:
            dhcp4: no
            dhcp6: no
            addresses:
                - 192.168.10.253/24
            gateway4: 192.168.10.251
    version: 2</code></pre>
<ul>
<li>다음과 같이 입력<ul>
<li><code>enp0s3:</code> 해당 인터페이스에 대한 설정</li>
<li><code>dhcp4: no</code> 해당 인터페이스에 DHCP기능을 비활성화 (4, 6는 IPv4와 IPv6를 나타냄 )</li>
<li><code>addresses: - 192.168.10.253/24</code> 해당 인터페이스의 IP를 지정 IP / {서브넷} 형식</li>
<li><code>gateway4: 192.168.10.251</code> 해당 인터페이스의 기본 게이트웨이 IP 설정</li>
</ul>
</li>
<li>입력 방법<ul>
<li><code>i</code> 입력 시 i INSERT모드 진입 → 내용 입력 후 esc 누르고 <code>:wq</code> 입력 후 엔터</li>
<li><code>:wq</code> 가 안될 경우 해당 파일을 읽기 모드로 접근했을 경우가 있으니 <code>:q!</code> 로 나간 후 다시 <code>sudo vi /etc/netplan/00-installer-config.yaml</code>로 접근</li>
</ul>
</li>
<li>설정 파일 적용을 위해 다음 명령어를 입력</li>
</ul>
<pre><code class="language-c">sudo netplan apply</code></pre>
<ul>
<li>명령어 입력 시 오류가 있을 경우<ul>
<li>오타를 확인</li>
<li>Teb 형식을 확인한다.</li>
</ul>
</li>
<li>IP 적용 확인 - <code>ifconfig</code></li>
</ul>
<p>5.3.2 DHCP 상태 확인</p>
<pre><code class="language-c">sudo service isc-dhcp-server restart</code></pre>
<ul>
<li>설정 파일을 수정했기에 해당 서비스를 재시작하여 설정 파일을 적용한다.</li>
</ul>
<pre><code class="language-c">sudo service isc-dhcp-server status</code></pre>
<ul>
<li>DHCP 서비스에 대한 상태를 확인한다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/2d929bdf-e1e4-47d0-b4d5-d66bf6a1ec4f/image.png" alt=""></p>
<ul>
<li>다음과 같이 active 상태를 확인한다.<ul>
<li>서비스가 실행 상태라고 완벽한 상태라고 할 수는 없습니다.</li>
</ul>
</li>
</ul>
<h3 id="54-gns환경에서-확인">5.4 GNS환경에서 확인</h3>
<p>GNS3에 대한에 대한 설치 및 설정은 알아서 해주세요. 해당 과정에서 라우터 설정에 대한 명령어에 대한 설명은 최소한으로 진행하겠습니다.</p>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/713b984c-cedf-4134-b3c4-ea5a33da9816/image.png" alt=""></p>
<ul>
<li><p>다음과 같은 구성을 구성한다.</p>
</li>
<li><p>R1에 다음과 같이 설정한다.</p>
</li>
</ul>
<pre><code class="language-c">R1#configure terminal
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.10.251 255.255.255.0
R1(config-if)#no shutdown</code></pre>
<ul>
<li>라우터에 F0/0 인터페이스에 192.168.10.251로 설정한다.<ul>
<li>라우터 설정 확인</li>
<li>인터페이스 확인 - <code>show ip interface brief</code></li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/bfc03453-01dc-47e8-92bb-ecd398840718/image.png" alt=""></p>
<ul>
<li>서버와 Ping 통신 확인 - <code>ping 192.168.10.253</code></li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/c93283ca-f347-4d65-9e30-f867085b055d/image.png" alt=""></p>
<p>PC1에서 DHCP 서비스 확인</p>
<ul>
<li>PC1에서 <code>ip dhcp</code> 를 통해서 서버로부터 IP를 할당 받는지 확인한다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/78940ca5-aa26-4f21-be60-942904b0721c/image.png" alt=""></p>
<ul>
<li>DHCP서버로부터 192.168.10.1에 IP를 할당 받는 것을 확인</li>
</ul>
<h2 id="6-dns">6. DNS</h2>
<p>Local server에 Local DNS를 구현하는 과정입니다.</p>
<h3 id="61-dns-설치-전-변경-사항">6.1 DNS 설치 전 변경 사항</h3>
<p>DNS를 사용하기 위해서 apt를 통해서 bind9 패키지를 설치합니다.</p>
<p>앞 과정을 테스트하면서 외부 인터넷과 통신이 끊어진 상태입니다. </p>
<ul>
<li><code>Ping 8.8.8.8</code> 로 확인</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/0b7f88bd-767b-4dbf-b0c0-25f34234db80/image.png" alt=""></p>
<ul>
<li>추가 팁<ul>
<li>ping 전송을 취소는 <code>ctrl + c</code></li>
<li>ping 전송을 N번 전송하는 방법 ping {ip} -c N<ul>
<li>ex) ping 8.8.8.8 -c 5
입력 시 ping을 5번 보냄</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>외부 인터넷 복구를 위해서 <code>sudo vi /ete/netplan/00-installer-config.yaml</code> 과 Virtualbox Network를 NAT으로 변경한다.</p>
<pre><code class="language-c">
network:
    ethernets:
        enp0s3:
            dhcp4: true
            #dhcp6: no
            #addresses:
            #    - 192.168.10.253/24
            #gateway4: 192.168.10.251
    version: 2</code></pre>
<ul>
<li><code>dhcp4: true</code> : 해당 인터페이스에 DHCP기능을 활성화 한다.</li>
<li>나머지 라인에 # 을 붙여서 주석 처리한다.</li>
<li>vi 오류는 앞 과정과 동일하다.</li>
<li>설정 파일 적용을 위해 다음 명령어를 입력</li>
</ul>
<pre><code class="language-c">sudo netplan apply</code></pre>
<ul>
<li><code>ifconfig</code> 통해서 IP를 확인한다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/6613d47c-b507-4876-b8b8-bb76fa129241/image.png" alt=""></p>
<ul>
<li>만약 IP가 할당이 안된 경우 Virtualbox에서 Network설정을 NAT으로 변경 안 했을 확률이 높다.</li>
<li>변경 방법은 앞 과정을 참고 : <a href="https://www.notion.so/DHCP-DNS-Network-02223b8b9cc64e6f96f67844636c894e?pvs=21">구성 방법 링크</a></li>
</ul>
<h3 id="62-dns-설치">6.2 DNS 설치</h3>
<p>DNS를 위해서 apt를 활용해 bind9을 설치한다.</p>
<pre><code class="language-c">sudo apt-get install bind9</code></pre>
<ul>
<li>설치 후 상태 확인을 진행<ul>
<li><code>sudo servrice bind9 status</code> 에서 상태가 active인 것을 확인한다.</li>
</ul>
</li>
</ul>
<h3 id="63-dns-구성">6.3 DNS 구성</h3>
<p>6.3.1 DNS option 구성</p>
<p>우선 DNS 전체에 대한 구성 옵션을 설정한다.</p>
<pre><code class="language-c">sudo vi /etc/bind/named.conf.options</code></pre>
<pre><code class="language-c">options {
    directory &quot;/var/cache/bind&quot;; 
    listen-on port 53 { localhost; 192.168.10.0/24; }; 
    allow-query { any; }; 
    forwarders { 8.8.8.8; };
    recursion yes;
};</code></pre>
<ul>
<li><code>directory  &quot;/var/cache/bind&quot;</code> : 존 파일이 저장된 기본 위치</li>
<li><code>listen-on port 53 { localhost; 10.0.1.0/24; };</code>  :# server가 query에 응답할 인터페이스(interface)와 포트(port)를 지정</li>
<li><code>allow-query { any; };</code> : DNS query를 할 수 있는 host를 지정</li>
<li><code>forwarders { 8.8.8.8; };</code> : 포워딩(forwarding)에 사용할 IP address를 지정</li>
<li><code>recursion yes;</code> : 재귀(recursive) query를 활성화</li>
</ul>
<p>6.3.2 DNS Local 구현</p>
<p>DNS가 보유한 zone 파일에 대한 내용을 명시한다.</p>
<pre><code class="language-c">sudo vi /etc/bind/named.conf.local</code></pre>
<pre><code class="language-c">zone &quot;cndgh.com&quot; IN {
    type master;
    file &quot;cndgh.com.zone&quot;;
}</code></pre>
<ul>
<li><code>zone &quot;cndgh.com&quot; IN</code> : ‘cndgh.com’ 대한 정보를 표시한다고 명시</li>
<li><code>type master;</code>  :자신이 가지고 있는 파일이 master file임을 명시</li>
<li><code>file &quot;cndgh.com.zone&quot;;</code> : 정보를 담고 있는 파일명 입력 해당 파일은 option 설정에 <code>directory</code> 설정에서 찾는다.</li>
</ul>
<p>6.3.3 zone 파일 구성</p>
<p>옵션에서 지정한 위치에 ”cndgh.com.zone”파일을 만들고 도메인을 설정한다.</p>
<p>본 과정에서 처음부터 구성하는 것보다 기존에 있던 다른 zone 파일을 복사해 수정하는 것이 편하기 복사해 구성한다.</p>
<p><code>sudo cp /etc/bind/db.local /var/cache/bind/cndgh.com.zone</code> 으로 파일을 복사한다.</p>
<pre><code class="language-c">sudo vi /var/cache/bind/cndgh.com.zone</code></pre>
<pre><code class="language-c">$TTL 86400
@ IN SOA cndgh.com. root.cndgh.com. (
                        1 ; Serial
                        604800 ; Refresh
                        86400 ; Retry
                        2419200 ; Expire
                        86400 ) ; Negative Cache TTL
;
@ IN NS cndgh.com.
@ IN A 192.168.10.253
web IN A 192.168.10.253</code></pre>
<ul>
<li><code>$TTL</code> : resolver가 record를 캐시(cache) 할 시간(초, seconds)을 정의, 0이면 cache 안씀</li>
<li><code>SOA</code>(start of authority)는 zone(domain)에 대한 전역(global) 매개변수(parameters)와 zone 이름을 정의</li>
<li>‘owner-name&#39;  &#39;class&#39; &#39;type&#39; &#39;type-specific-data로 구성된 기본 형식</li>
<li><code>&#39;owner-name&#39;</code><ul>
<li>record가 속한 zone file에서 노드(node)의 소유자 이름 또는 레이블(label)입니다.</li>
<li>위 예제에서는 &#39;@&#39;이며, &#39;$ORIGIN&#39;을 대체합니다.</li>
</ul>
</li>
<li><code>&#39;class&#39;</code><ul>
<li>protocol 패밀리 또는 protocol 인스턴스(instance)를 정의합니다.</li>
<li>16 bit 값이며, 위 예제에서는 &#39;IN&#39;이며, internet protocol입니다.</li>
</ul>
</li>
<li><code>&#39;type&#39;</code><ul>
<li>&#39;type-specific-data&#39;의 값을 결정하는 RR 유형이며, 위 예제에서는 &#39;NS&#39;입니다.</li>
<li>&#39;NS&#39;는 name server를 의미합니다.</li>
<li>SOA record로 정의된 domain 또는 하위(sub) domain의 권한 있는 name server를 지정합니다.</li>
</ul>
</li>
<li><code>&#39;type-specific-data&#39;-</code><ul>
<li>&#39;class&#39;와 &#39;type&#39; 값에 의해 정의됩니다.</li>
<li>위 예제에서는 &#39;cndgh.com.&#39;입니다.</li>
</ul>
</li>
<li><a href="http://cndgh.com">cndgh.com</a>으로 접근시 192.168.10.253을 리턴</li>
<li>web.cndgh.com으로 접근시 192.168.10.253을 리턴</li>
</ul>
<p>6.3.4 설정 파일 syntax check</p>
<pre><code class="language-c">named-checkconf</code></pre>
<ul>
<li>bind9 설정의 file문법 확인<ul>
<li>틀린 경우 해당 파일과 틀린 부분 표시</li>
<li>오류 없을 시 미 출력</li>
</ul>
</li>
</ul>
<pre><code class="language-c">named-checkzone {도메인} {해당 도메인 파일 경로}</code></pre>
<ul>
<li>도메인 파일에 대한 syntax 확인<ul>
<li>오류 없을 시 ok출력</li>
<li>ex) named-checkzone <a href="http://cndgh.com">cndgh.com</a> /var/cache/bind/cndgh.com.zone</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/1dcd4eb2-60f1-4807-a6d0-f2514af541e9/image.png" alt=""></p>
<p>6.3.5 DNS 상태확인</p>
<p>모든 설정을 적용하고 DNS의 상태를 확인하는 과정입니다.</p>
<pre><code class="language-c">sudo service bind9 restart
sudo service bind9 status</code></pre>
<ul>
<li><code>sudo service bind9 restart</code> : DNS 서비스를 재시작한다.</li>
<li><code>sudo service bind9 status</code> : DNS의 서비스 상태를 확인한다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/6ae444cc-c0ce-403a-986e-d15ed6dbbb05/image.png" alt=""></p>
<p>→ 다음처럼 DNS 서비스가 정상적으로 active인 것을 확인할 수 있다.</p>
<h2 id="7-간단한-web서버">7. 간단한 web서버</h2>
<p>테스트를 위해서 간단히 apach2를 설치해서 테스트 환경을 만든다.</p>
<pre><code class="language-c">sudo apt-get install apache2</code></pre>
<h3 id="71-테스트-환경-구축">7.1 테스트 환경 구축</h3>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/40562ab2-2bd3-4b29-8dbc-b515006c1ed5/image.png" alt=""></p>
<p>앞 과정에 진행한 테스트에서 Ubuntu PC를 추가해서 DHCP와 DNS를 테스트한다.</p>
<p>테스트를 위해서 Local server에 IP와 네트워크 타입을 변경 : <a href="https://www.notion.so/DHCP-DNS-Network-02223b8b9cc64e6f96f67844636c894e?pvs=21">네트워크 및 IP변경</a></p>
<p>7.1.1 Ubuntu PC 설정</p>
<p>virtualbox - ubuntuPC - 설정 - 네트워크 - 호스트 전용 어뎁터 - 이름 : #3로 설정한다.</p>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/cff5365b-b39c-4713-bd24-478b12de7b06/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/ddc8c6fb-4e1d-4c00-8db0-8926e918cc6f/image.png" alt=""></p>
<ul>
<li>우측 상단에 Settings - Network</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/e8d5ef8e-aa5b-49ce-8b76-2245db450fba/image.png" alt=""></p>
<ul>
<li>현재 IP와 DNS서버, Default Route가 맞는지 확인한다.</li>
</ul>
<p>7.1.2 환경 테스트</p>
<ul>
<li>Ubuntu 터미널을 열어 <code>nslookup [cndgh.com](http://cndgh.com)</code> 을 입력해서 DNS서버로부터 해당 도메인 주소를 받아오는 것을 확인한다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/c09f903e-bdb8-4f1d-9de3-587be87ea98a/image.png" alt=""></p>
<ul>
<li>브라우저를 열어 cndgh.com을 입력하면 다음과 같은 사이트에 접속이 된다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/9ec60187-6894-4342-814d-b56ec752fbd9/image.png" alt=""></p>
<h2 id="8-dns-reverse">8. DNS reverse</h2>
<p>DNS에서 IP를 도메인으로 변경하는 서비스를 제공하기 위해서 <code>REVERSE ZONE</code> 을 추가로 설정한다.</p>
<pre><code class="language-c">sudo vi /etc/bind/named.conf.local</code></pre>
<pre><code class="language-c">zone &quot;10.168.192.in-addr.arpa&quot; IN {
  type master;
  file &quot;cndgh.com.zone.rev&quot;;
};</code></pre>
<ul>
<li><code>zone &quot;10.168.192.in-addr.arpa&quot; IN</code> : 192.168.10.X 대역에 대한 Reverse을 설정하기 위해서 IP를 역순으로 쓴다.
현재 /24 서브넷임으로 3자리를 명시하지만 192.168.0.0/16 인 경우 “168.192.in-addr.arpa”로 설정하면 된다.</li>
<li>나머지 내용은 위에 내용과 동일</li>
</ul>
<p>존 파일을 생성한다.</p>
<pre><code class="language-c">sudo vi /var/cache/bind/lindarex.local.zone.rev</code></pre>
<pre><code class="language-c">$TTL    86400
@    IN    SOA    cndgh.com. root.cndgh.com. (
                  2        ; Serial
             604800        ; Refresh
              86400        ; Retry
            2419200        ; Expire
              86400 )    ; Negative Cache TTL
;
@    IN    NS    cndgh.
253    IN    PTR    cndgh.com.
123 IN  PTR cndgh123.com</code></pre>
<ul>
<li><strong>PTR</strong>(PoinTeR)는 IP 주소를 호스트 이름으로 매핑하는 데 사용되는 리소스 레코드</li>
<li>주로 IP 주소의 역방향 조회에 사용</li>
</ul>
<pre><code class="language-c">&lt;마지막 옥텟&gt;.&lt;세 번째 옥텟&gt;.&lt;두 번째 옥텟&gt;.&lt;첫 번째 옥텟&gt;.in-addr.arpa. IN PTR &lt;호스트 이름&gt;.</code></pre>
<ul>
<li>해당 파일을 수정 수 DNS서비스를 재시작 및 확인한다.</li>
</ul>
<pre><code class="language-c">sudo service bind9 restart
sudo service bind9 status</code></pre>
<ul>
<li><p>status가 Failed일 경우 다음을 참조 : <a href="https://www.notion.so/DHCP-DNS-Network-02223b8b9cc64e6f96f67844636c894e?pvs=21">DNS 설정 파일 확인</a></p>
<p>테스트 환경에서 확인을 한다.</p>
</li>
</ul>
<p><code>nslookup 192.168.10.123</code> 입력 시 cndgh123.com을 확인</p>
<p><code>nslookup 192.168.10.253</code> 입력 시 cndgh.com을 확인</p>
<p><img src="https://velog.velcdn.com/images/creativebox_-/post/5e7bc6b0-f717-4829-bdac-32205d8a0b1e/image.png" alt=""></p>
<h2 id="9-추가설정">9. 추가설정</h2>
<ul>
<li>X</li>
</ul>
<h2 id="10-참조사이트">10. 참조사이트</h2>
<p><a href="https://lindarex.github.io/bind9/ubuntu-bind9-setting/">https://lindarex.github.io/bind9/ubuntu-bind9-setting/</a> : DNS 설정</p>
<hr>
<p>오타 및 수정 요청 : <a href="mailto:cndgh98@naver.com">cndgh98@naver.com</a></p>
]]></description>
        </item>
    </channel>
</rss>