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를 참고하였습니다.
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
'Linux > OpenShift' 카테고리의 다른 글
RHOCP Installation (7) - Cluster Image Mirroring (0) | 2023.07.24 |
---|---|
RHOCP Installation (6) - HAProxy + KeepAlived 이중화 구성 (0) | 2023.07.23 |
RHOCP Installation (4) - Local DNF Repository 구성 (0) | 2023.07.22 |
RHOCP Installation (3) - TB Architecture 구상 (0) | 2023.07.21 |
RHOCP Installation (2) - Harbor Registry 설치 (0) | 2023.07.19 |