본문 바로가기
Linux/OpenShift

RHOCP Installation (5) - DNS 서버 구축 및 이중화

by LILO 2023. 7. 22.
반응형

INTRO

아래의 구성에서 Bastion 서버에 DNS 서버를 구축한 후 이중화를 진행할 예정입니다.

이중화 구성은 Master(bastion1)/Slave(bastion2) 구성입니다.

 

 

BIND(named) DNS Master 서버 구성

위의 구성에서는 bastion1 서버에 해당되는 내용입니다.

 

DNS 서버를 구성하기 위해 BIND 패키지를 설치합니다.

# dnf install bind bind-utils

DNS 서버 구축에서 수정될 설정 파일을 백업합니다.

cp /etc/named.conf /etc/named.conf_bak
cp /etc/sysconfig/named /etc/sysconfig/named_bak

named.conf에서 DNS 서버에 대한 설정을 수정합니다.

기본 설정값 변경 설정값 의미
listen-on port 53 { 127.0.0.1; }; listen-on port 53 { any; }; 모든 IP가 접근 가능 (보안 중요시 CIDR 설정 가능)
listen-on-v6 port 53 { ::1; }; listen-on-v6 port 53 { none; }; IPv6로 접근 불가능 (IPv6 사용시 any로 변경 필요)
allow-query     { localhost; };  allow-query     { any; }; 쿼리에 대한 응답으로 모든 IP에서 응답
X include "/etc/tb_ocp.named.rfc1912.zones"; /etc/tb_ocp.named.rfc1912.zones 파일을 참고함
sed -i "s/listen-on\ port\ 53\ { 127.0.0.1; };/listen-on\ port\ 53\ { any; };/g" /etc/named.conf
sed -i "s/listen-on-v6\ port\ 53\ { ::1; };/listen-on-v6\ port\ 53\ { none; };/g" /etc/named.conf
sed -i "s/allow-query\ \ \ \ \ { localhost; };/allow-query\ \ \ \ \ { any; };/g" /etc/named.conf
echo 'include "/etc/tb_ocp.named.rfc1912.zones";' >> /etc/named.conf

BIND에 대한 IPv6 비활성화를 설정합니다.

echo 'OPTIONS="-4"' >> /etc/sysconfig/named

 DNS Zone에 대한 설정을 정의합니다.

설정값 의미
zone "example.com" IN example.com 도메인에 대한 정방향 DNS 설정을 정의
type master; 해당 서버를 DNS master 서버로 사용
file "example.com.zone"; "/var/named/example.zone" 파일에 정방향 DNS Zone 정의
allow-update { 192.168.56.31; }; slave(192.168.56.31)로 zone 파일 내용 업데이트
"56.168.192.in-addr.arpa" IN 192.168.56.X 대역에 대한 역방향 DNS 설정을 정의
file "56.168.192.in-addr.rev"; "/var/named/56.168.192.in-addr.rev" 파일에 역방향 DNS Zone 정의
cat << EOF > /etc/tb_ocp.named.rfc1912.zones
//RHOCP DNS Forward Zone
zone "example.com" IN {
        type master;
        file "example.com.zone";
        allow-update { 192.168.56.31; };
};

//RHOCP DNS Reverse Zone
zone "56.168.192.in-addr.arpa" IN {
        type master;
        file "56.168.192.in-addr.rev";
        allow-update { 192.168.56.31; };
};
EOF

정방향 DNS Zone 파일을 작성합니다.

cat << EOF > /var/named/example.com.zone
\$TTL 1W
@       IN      SOA     ns1.example.com.    root (
                        2023072203      ; serial
                        3H              ; refresh (3 hours)
                        30M             ; retry (30 minutes)
                        2W              ; expiry (2 weeks)
                        1W )            ; minimum (1 week)


; DNS Name Server Settings
                                IN      NS      ns1.example.com.
                                IN      NS      ns2.example.com.


; DNS A Record Settings
ns1.example.com.                    IN      A       192.168.56.30
ns2.example.com.                    IN      A       192.168.56.31


; Bastion
bastion1.ocp4                 IN      A       192.168.56.30
bastion2.ocp4                 IN      A       192.168.56.31


; bootstrap
bootstrap.ocp4                 IN      A       192.168.56.40

; OCP Contorl Plane
master1.ocp4                  IN      A       192.168.56.32
master2.ocp4                  IN      A       192.168.56.33
master3.ocp4                  IN      A       192.168.56.34


; OCP Compute Node
worker1.ocp4                  IN      A       192.168.56.35
worker2.ocp4                  IN      A       192.168.56.36


; OCP API Server and Route
api.ocp4              IN      A       192.168.56.29
api-int.ocp4          IN      A       192.168.56.29
*.apps.ocp4           IN      A       192.168.56.29


; OCP Registry Server
harbor                        IN      A       192.168.56.28
EOF

역방향 DNS Zone 파일을 작성합니다.

cat << EOF > /var/named/56.168.192.in-addr.rev
\$TTL 1W
@       IN      SOA     ns1.example.com.    root (
                        2023072203      ; serial
                        3H              ; refresh (3 hours)
                        30M             ; retry (30 minutes)
                        2W              ; expiry (2 weeks)
                        1W )            ; minimum (1 week)

; NS
        IN      NS      ns1.example.com.
        IN      NS      ns2.example.com.

; Bastion
30      IN      PTR     bastion1.ocp4.example.com.
31      IN      PTR     bastion2.ocp4.example.com.

; bootstrap
40      IN      PTR     bootstrap.ocp4.example.com.

; RHOCP Control Plane
32      IN      PTR     master1.ocp4.example.com.
33      IN      PTR     master2.ocp4.example.com.
34      IN      PTR     master3.ocp4.example.com.

; RHOCP Compute Node
35      IN      PTR     worker1.ocp4.example.com.
36      IN      PTR     worker2.ocp4.example.com.

; API
29      IN      PTR     api.ocp4.example.com.
29      IN      PTR     api-int.ocp4.example.com.


; Registry Server
28      IN      PTR     harbor.example.com.
EOF

위의 Zone 파일에 기입한 DNS 레코드는 아래의 RHOCP Docs를 참고하였습니다.

 

Installing a user-provisioned bare metal cluster on a restricted network - Installing on bare metal | Installing | OpenShift Con

alibabacloud, aws, azure, gcp, ibmcloud, nutanix, openstack, ovirt, powervs, vsphere, or {}

docs.openshift.com

DNS 서버를 시작한다.

# systemctl enable --now named

 

 

 

BIND(named) DNS Slave 서버 구성

위의 구성에서는 bastion2 서버에 해당되는 내용입니다.

 

DNS 서버를 구성하기 위해 BIND 패키지를 설치합니다.

# dnf install bind bind-utils

DNS 서버 구축에서 수정될 설정 파일을 백업합니다.

cp /etc/named.conf /etc/named.conf_bak
cp /etc/sysconfig/named /etc/sysconfig/named_bak

named.conf에서 DNS 서버에 대한 설정을 수정합니다.

sed -i "s/listen-on\ port\ 53\ { 127.0.0.1; };/listen-on\ port\ 53\ { any; };/g" /etc/named.conf
sed -i "s/listen-on-v6\ port\ 53\ { ::1; };/listen-on-v6\ port\ 53\ { none; };/g" /etc/named.conf
sed -i "s/allow-query\ \ \ \ \ { localhost; };/allow-query\ \ \ \ \ { any; };/g" /etc/named.conf
echo 'include "/etc/tb_ocp.named.rfc1912.zones";' >> /etc/named.conf

named.conf에 options 설정에 아래의 설정을 추가합니다. master에서 전송한 파일을 별도로 변환하여 보지 않고 text 형식으로 떨궈서 cat으로 열어서 볼 수 있게 하는 설정입니다.

masterfile-format text;

options {
.. (생략)
        masterfile-format text;
.. (생략)

BIND에 대한 IPv6 비활성화를 설정합니다.

echo 'OPTIONS="-4"' >> /etc/sysconfig/named

DNS Zone에 대한 설정을 정의합니다.

설정값 의미
type slave; 해당 서버를 DNS slave서버로 사용
masters { 192.168.56.31; }; master(192.168.56.30)에서 zone 파일의 내용을 갱신
cat << EOF> /etc/tb_ocp.named.rfc1912.zones
//RHOCP DNS Forward Zone
zone "example.com" IN {
        type slave;
        file "slaves/example.com.zone";
        masters { 192.168.56.30; };
};

//RHOCP DNS Reverse Zone
zone "56.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/56.168.192.in-addr.rev";
        masters { 192.168.56.30; };
};
EOF

DNS 서버를 시작한다.

# systemctl enable --now named
반응형