프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

이전글의 Web 3Tier 망에서 추가로  DNS와 DHCP를 적용시켜 보자.

 

 

네트워크 환경

기존에 Web Server로 사용하는 Ubuntu Server에 DNS와 DCHP를 추가로 설치하여,

더 이상 내부 망에서 IP를 사용하지 않고 DN로만 서로의 서비스에 접근할 수 있게 해 주자.

 

 

 

 

 

DHCP 설치 및 세팅

 

Ubnutu server에 DHCP를 설치와 세팅 법은 아래의 게시글을 참조하자.

[Virtual Box] Ubuntu server - DHCP server 설치 및 IP할당

 

 

Interface 세팅을 Enp0s3로 변경해 주자.

sudo vim /etc/default/isc-dhcp-server

 

 

sudo vim /etc/dhcp/dhcpd.conf

를 통해서 subnet을 명시해 주자.

 

#사용할 서브넷의 범위와 router 주소 등을 명시

subnet 192.168.46.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.46.254;
    option domain-name-servers 192.168.46.3;
    range 192.168.46.4 192.168.46.250;
}

subnet 192.168.56.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.56.254;
	range 192.168.56.4 192.168.56.250;
}

subnet 192.168.66.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.66.254;
	range 192.168.66.4 192.168.66.250;
}

subnet 192.168.76.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.76.254;
	range 192.168.76.4 192.168.76.250;
}

subnet 192.168.10.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.10.254;
option domain-name-servers 192.168.11.3;
	range 192.168.10.3 192.168.10.250;
}

subnet 192.168.11.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.11.254;
option domain-name-servers 192.168.11.3;
	range 192.168.11.3 192.168.11.250;
}

 

 

 

 

 

Router Relay 적용

router 서버에서 서브넷 너머의 dhcp를 사용할 수 있도록 dchp relay가 필요하다.

Cisco router를 사용한다면, ip helper-address를 세팅해 주면 되지만 우리는 ubuntu server를 router로 사용하므로 다른 방식이 필요하다.

 

 

 

DHCP 서버와 클라이언트 사이에서 DHCP 메시지를 전달하는 중계 에이전트인 ISC DHCP Relay route 역할을 하는 server에 설치하자.

 

sudo apt-get install isc-dhcp-relay

 

 

/etc/default/isc-dhcp-relay

에 설정을 해주자.

Server dhcp 서버의 주소를, INTERFACE에는 브로드케스트 정보를 수신할 어댑터 dev들을 기입

 

 

 

 

세팅 후 재시작

sudo service isc-dhcp-relay restart

 

동작 확인

 

 

 

 

다른 서버가 이제 subnet너머의 dhcp 서버에서 ip를 에서 받아온다.

 

 

하지만 항상 서버의 IP가 달라지면  DNS 서비스를 매칭시키기가 곤란하다.

따라서 dhcp ip고정을 해보자.

 

 

 

 

 

DHCP로 서버 ip고정시키기

맥주소와 1:1 매칭되는 ip를 설정해 준다.

sudo nano /etc/dhcp/dhcpd.conf

 

(어댑터의 맥주소는 ifconfig로 확인)

host WEB_SERVER  {
hardware ethernet 08:00:27:2c:42:8c;	#어댑터 맥주소
fixed-address 192.168.46.3;	
option domain-name-servers 192.168.46.3;

}
host WEB_SERVER_pub {
hardware ethernet 08:00:27:2b:c3:1e;
fixed-address 192.168.11.3;	
option domain-name-servers 192.168.11.3;
}

host DB_SERVER  {
hardware ethernet 08:00:27:87:00:e7;
fixed-address 192.168.56.3;	
option domain-name-servers 192.168.46.3;
}

host WAS_SERVER  {
hardware ethernet 08:00:27:5d:9b:21;
fixed-address 192.168.76.3;
option domain-name-servers 192.168.46.3;
}

host WAS_SERVER2  {
hardware ethernet 08:00:27:4B:D0:07;
fixed-address 192.168.76.4;
option domain-name-servers 192.168.46.3;
}

host Bastion_Host_pri  {
hardware ethernet 08:00:27:66:2c:6b;
fixed-address 192.168.66.3;
option domain-name-servers 192.168.46.3;
}

host Bastion_Host_pub  {
hardware ethernet 08:00:27:29:10:0d;
fixed-address 192.168.10.3;
option domain-name-servers 192.168.11.3;
}

 

 

 

 

이제 고정한 서버에서 다시 dhclient 명령어로 지정한 ip를 받아온다.

 

 

 

 

 

DNS 설치

Ubuntu server - DNS 서버 설치 및 구성

 

sudo apt update

sudo apt install bind9 bind9utils bind9-doc dnsutils  //bind9 설치

 

ipv4로만 사용하기 위해 -4 추가

sudo nano /etc/default/named

 

 

 

 

sudo nano /etc/bind/named.conf.options

 

options에도 설정을 해주자.

 

//listen-on-v6 { any; };        # disable bind on IPv6
        recursion yes;                 # enables resursive queries
        allow-recursion { trusted; };  # allows recursive queries from "trusted" - referred to ACL
        listen-on { 192.168.46.3; };   # DHCP IP address
        allow-transfer { none; };      # disable zone transfers by default
        forwarders {
                8.8.8.8;
                1.1.1.1;
        };

 

 

 

option의 위에는 접속 가능하게 할 ACL  ip 범위 설정

 

 

이후 아래 명령어가 에러메시지를 출력하지 않는다면 구문이 정상이다.

 sudo named-checkconf /etc/bind/named.conf.options

 

이제 Zone 설정이다.

 

sudo nano /etc/bind/named.conf.local

 

 

zone " renegades.com" {
    type master;
    file "/etc/bind/zones/db.renegades.com"; # zone file path
};
zone "168.192.in-addr.arpa" {	#역순 주소
    type master;
    file "/etc/bind/zones/db.192.168";  # subnet 
}

 

 

 

 

영역 데이터 베이스를 만들어 주자.

sudo mkdir -p /etc/bind/zones/

sudo cp /etc/bind/db.local /etc/bind/zones/db.renegades.com  #기존 템플릿 복제 생성

sudo nano /etc/bind/zones/db.renegades.com

 

 

$TTL    604800
@       IN      SOA     ns1.renegades.com. root.renegades.com. (
                2022013101 ; Serial
                604800     ; Refresh
                86400      ; Retry
                2419200    ; Expire
                604800 )   ; Negative Cache TTL

; Name servers
@       IN      NS      ns1.renegades.com.

; Define hosts in the domain
ns1.renegades.com.     IN      A       192.168.46.3
db.renegades.com.      IN      A       192.168.56.3
was.renegades.com.      IN      A       192.168.76.3
was2.renegades.com.      IN      A       192.168.76.4
bastion.renegades.com.      IN      A       192.168.66.3

 

 

 

역방향 영역 구성도 해주자.

(ip로 역으로 DN을 검색할 때 사용됨.)

 

sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.168

sudo nano /etc/bind/zones/db.192.168

 

 

$TTL    604800
@       IN      SOA     ns1.renegades.com. root.renegades.com. (
                             3         ; Serial
                             604800    ; Refresh
                             86400     ; Retry
                             2419200   ; Expire
                             604800 )  ; Negative Cache TTL
;
@       IN      NS      ns1.example.com.

3.46       IN      PTR     ns1.renegades.com	#나머지 ip는 역방향으로 기입
3.56       IN      PTR     db.renegades.com.
3.66       IN      PTR     bastion.renegades.com.
3.76       IN      PTR     was.renegades.com.
4.76       IN      PTR     was2.renegades.com.

 

 

sudo named-checkconf

로 구문 오류를 확인하고, 아래의 명령어도 ok를 출력하는지 확인한다.

sudo named-checkzone renegades.com /etc/bind/zones/db.renegades.com

sudo named-checkzone 168.192.in-addr.arpa /etc/bind/zones/db.192.168

 

 

 

재시작해주자.

sudo systemctl restart named

 

 

 

 

이제 내부망의 서버에서는 nslookup으로 만들어준 주소 조회 가능 해졌다.

 

 

Nameserver가 설정이 안 된 곳이 있다면

sudo nano /etc/netplan/00-installer-config.yaml nameserver를 지정해 주자.

 

 

sudo nano /etc/netplan/00-installer-config.yaml
network:
version: 2
  ethernets:
     enp0s3:
       dhcp4: true
       nameservers:
         addresses: [192.168.46.3] #DHCP IP 설정

 

 

 

내부망의 서버들에서 동작한다.

 

통신이 잘 안 되면 데이터가 잘 도달되도록 routing 설정을 잘했는지 확인하자.

 

 

 

외부에서 DNS 사용해 접근

 

 

DNS 서버 주소를 설정해도 외부에서는 접근이 안되고 있다.

 

 

100.1.2.251은 192.168.11.3(WEB Server의 두 번째 어댑터 IP)으로 변환되어 들어간다.

 

하지만 DNS 서버는 192.168.46.3으로만 ip를 설정했기 때문에 192.168.11.3로는 DNS 서비스를 이용할 수 없었다.

 

 

따라서 외부와 연결된 router192.168.46.3(web server, DNS)으로 도달할 수 있는 경로를 추가해 주자.

sudo ip route add 192.168.46.0/24 via 192.168.11.3 dev enp0s9

 

이후 DNS 서버를 192.168.46.3로 바꿔주면 DNS 서버로 잘 전달이 된다.

 

 

 

 

 

이제 외부에서도 DNS 주소로 웹 접속이 가능해졌다.

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함