[작성 중] [Cent 7 → Rocky 9] DNS 1,2,3,4차 업그레이드

mimic1995·2024년 2월 4일
0

EOS

목록 보기
3/4

Master/Slave 서버의 작업이 완료된 후 1~4차 네임서버의 업그레이드를 진행하였으며, Replication 상태를 중점적으로 확인하였습니다.

기존 버전과 업그레이드할 버전은 아래와 같습니다.

OS기존 버전업그레이드 버전
OSCentOS Linux release 7.6.1810 (Core)Rocky Linux release 9.3 (Blue Onyx)
DBmySQL 5.6.1410.6.16
PDNS4.2.04.8.3

공통 기본 설정 진행

▶ 🧑‍💻 공통 기본 설정 보기

MariaDB 설치

설치 가능한 버전 확인

dnf list mariadb
===
마지막 메타자료 만료확인(0:22:38 이전): 2024년 01월 29() 오후 04시 1059초.
사용 가능한 꾸러미
mariadb.x86_64                           3:10.5.22-1.el9_2                            appstream
===

Maria DB 10.6 레포 추가 후 설치

참고 URL
https://mariadb.org/download/?t=repo-config
vi /etc/yum.repos.d/MariaDB.repo
===
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.6/centos/$releasever/$basearch
baseurl = https://mirrors.xtom.jp/mariadb/yum/10.6/centos/$releasever/$basearch
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.xtom.jp/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
===
dnf update -y
dnf list mariadb-server
===
마지막 메타자료 만료확인(0:00:47 이전): 2024년 01월 29() 오후 04시 3539초.
사용 가능한 꾸러미
MariaDB-server.x86_64                        10.6.16-1.el9                            mariadb  
mariadb-server.x86_64                        3:10.5.22-1.el9_2                        appstream
===

# '-y' 옵션으로 설치하므로 repo로 추가한 패키지 명의 대소문자 확인 후 주의하여 입력
dnf install -y MariaDB-server MariaDB-client
systemctl enable mariadb --now
netstat -nltp | egrep 'Proto|3306'
===
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      10014/mariadbd      
tcp6       0      0 :::3306                 :::*                    LISTEN      10014/mariadbd 
===

mariadb 설치 후 비밀번호 없이 Enter로 접근 가능합니다. 이때 비밀번호를 설정해야 하니 아래처럼 입력하여 임시 비밀번호를 설정하거나 그냥 backup.sql 파일을 밀어 넣고 재시작해도 됩니다.

mysql -uroot -p 
===
Enter password: [Enter] 입력
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.6.16-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
---
MariaDB [(none)]> set password=password('비밀번호');
Query OK, 0 rows affected (0.005 sec)

MariaDB [(none)]> quit
Bye
===

utf-8 언어셋 설정

vi /etc/my.cnf.d/server.cnf
===
[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
log-bin = mysql-bin
server-id = 1

init_connect = 'SET collation_connection = utf8_general_ci, NAMES utf8'
character-set-server = utf8
collation-server = utf8_general_ci

expire_logs_days = 10

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8
===

일단 mariadb 설정은 이 정도로 하고 pdns 설치로 넘어가겠습니다.


PDNS 설치 및 설정

repo 허용 및 설치

dnf config-manager --set-enabled crb
dnf install -y epel-release
dnf install -y pdns pdns-backend-mysql pdns-recursor

설정 파일 백업 후 수정

# 백업 진행
cp -arp /etc/pdns /etc/pdns_ori
cp -arp /etc/pdns-recursor /etc/pdns-recursor_ori
chmod 660 /etc/pdns/pdns.conf
vi /etc/pdns/pdns.conf
===
allow-axfr-ips=127.0.0.1
config-dir=/etc/pdns
daemon=yes
disable-axfr=no
guardian=yes
launch=gmysql
local-port=53
module-dir=/usr/lib64/pdns
#recursor=127.0.0.1:54
setgid=pdns
setuid=pdns
socket-dir=/var/run/pdns
version-string=DNS

gmysql-host=localhost 또는 127.0.0.1
gmysql-user=데이터베이스명
gmysql-password=비밀번호
gmysql-dbname=계정명
gmysql-port=3306
gmysql-socket=/var/lib/mysql/mysql.sock
===

소유권을 660으로 하지 않으면 root:pdns 소유자이므로 start 시 pdns.conf 파일을 읽어올 수 없어 에러가 발생합니다.

/etc/pdns/pdns.conf 설정을 전부 복원했으면 db data 복원으로 넘어갑니다.

mariaDB 백업본으로 복원

mariadb를 mysql 백업 본으로 복원 시 유의할 점은 alldump인 경우 mysql.user table이 view 정책으로 바뀌면서 오류가 발생할 수 있다는 점입니다. user view를 아래 명령어로 재생성하거나 수동으로 옮겨주어도 됩니다.

INSERT INTO `tables_priv` (`Host`, `Db`, `User`, `Table_name`, `Grantor`, `Timestamp`, `Table_priv`, `Column_priv`) VALUES ('localhost','mysql','mariadb.sys','global_priv','root@localhost','0000-00-00 00:00:00','Select,Delete','');

mariadb 10.4 이상 버전부터 패스워드 변경은 아래 명령어로 진행합니다.

set password for 'root'@'localhost' = password('비밀번호');

테이블이나 내부 쿼리 데이터가 잘 복원되었는지, user 내부 계정의 권한과 hosts도 복구되었는지 확인합니다.

pdns 실행

mkdir /var/run/pdns
chown root.pdns /var/run/pdns
chmod 660 -R /var/run/pdns
systemctl enable pdns --now
===

이제 질의테스트를 해보겠습니다. nslookup 시 Slave 서버의 IP를 지정하여 질의합니다.
이때, 질의할 도메인이 기존 DB 백업본에 등록된 도메인인지 확인합니다.

nslookup 도메인명 Slave서버IP

PDNS table 리플리케이션

mysql> change master to master_host="마스터IP", master_user="계정", master_password="비밀번호", master_port=3306, master_log_file="bin로그정보", master_log_pos=포지션_값;

mysql> start slave;
mysql> show slave status\G;
profile
Raiju Hantu Goryo Obake

0개의 댓글