일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Operating System
- MAC address
- AWS
- helm
- ip
- CSV
- Packet
- kubernetes
- kubeadm
- Vision
- docker
- grafana
- Python
- log
- Kafka
- Network
- aws s3
- OS
- Spring
- zookeeper
- jvm
- EC2
- JavaScript
- PostgreSQL
- java
- tcp
- airflow
- Trino
- kubectl
- CVAT
- Today
- Total
JUST WRITE
DNS 체크 본문
DNS 체크
Private Network 환경에서 Bare Metal Server를 Kubernetes Cluster를 구성하는 프로젝트를 진행하였다.
신경 써야 돼야 할 부분이 많았는데, 그중 하나가 DNS NameServer였다.
Private Network 보니 NameServer 역시 별도로 구성된 환경이었다.
해당 포스팅에서 DNS NameServer를 설정하는 것을 정리해 보았다.
DNS NameServer
DNS NameServer는 Domain주소를 IP로 알려주는 Server이다.
local Cache에 찾으려는 Domain의 IP 정보가 없으면 NameServer에 쿼리 하여 알아나게 된다.
보통 ISP(Internet Service Provider)에서 제공해 주는 DNS를 이용한다.
대표적인 DNS NameServer는 아래 2가지이다.
- 1.1.1.1(Cloudflare)
- 8.8.8.8(Google)
Linux에서는 /etc/hosts에서 직접 설정할 수도 있다.
$ cat /etc/hosts
resolv.conf
제일 먼저 쉽게 설정할 수 있는 것이 /etc/resolv.conf를 수정한다.
/etc/resolv.conf에서 nameserver를 DNS 쿼리 하는 NameServer를 지정해 준다.
보통 /run/systemd/resolve/stub-resolv.conf를 /etc/resolv.conf에 link를 걸어서 세팅한다.
$ cat /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search .
위 예시에서 127.0.0.53은 local내 NameServer이다.
systemd-resolved
systemd-resolved는 systemd에서 DNS 관련 Module이다.
덕분에 systemd가 배포된 Linux에서 쉽게 설정할 수 있다.
/etc/systemd/resolved.conf에서 DNS NameServer를 설정할 수 있다.
$ systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-01-10 10:54:34 KST; 2 weeks 3 days ago
Docs: man:systemd-resolved.service(8)
man:org.freedesktop.resolve1(5)
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
Main PID: 2256 (systemd-resolve)
Status: "Processing requests..."
Tasks: 1 (limit: 617426)
Memory: 8.7M
CPU: 4.041s
CGroup: /system.slice/systemd-resolved.service
└─2256 /lib/systemd/systemd-resolved
$ vi /etc/systemd/resolved.conf
[Resolve]
#DNS=
DNS=10.32.***.***,10.32.***.***
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=no
#LLMNR=no
#Cache=no-negative
#CacheFromLocalhost=no
#DNSStubListener=yes
#DNSStubListenerExtra=
#ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no
$ systemctl restart systemd-resolved
$ resolvectl
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
...
...
...
Link 8 (bond0)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 10.32.***.***
DNS Servers: 10.32.***.*** 10.32.***.***
/etc/systemd/resolved.conf 파일에서 설정 후 systemd-resolved 서비스를 재시작하면 적용된다.
resolvectl command로 현재 설정된 DNS NameServer를 확인할 수 있다.
netplan
netplan은 Linux에서 yaml 파일로 쉽게 Network 세팅을 해주는 유틸리티이다.
NetworkManager와 systemd-networkd와 같이 동작한다.
/etc/netplan/ 경로 아래 yaml 파일로 설정할 수 있다.
DNS 설정뿐만 아니라 전반적인 Network 설정을 할 수 있다.
$ systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-01-10 10:54:33 KST; 2 weeks 3 days ago
TriggeredBy: ● systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
Main PID: 2250 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 617426)
Memory: 3.1M
CPU: 51.795s
CGroup: /system.slice/systemd-networkd.service
└─2250 /lib/systemd/systemd-networkd
vi /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
bonds:
bond0:
addresses:
- 10.198.***.***/***
gateway4: 10.198.***.***
interfaces:
- enp175s0f0
- enp175s0f1
- enp59s0f0
- enp59s0f1
nameservers:
addresses:
#- 8.8.8.8
#- 8.8.4.4
- 10.32.***.***
- 10.32.***.***
search: []
parameters:
lacp-rate: fast
mode: 802.3ad
transmit-hash-policy: layer3+4
ethernets:
enp175s0f0: {}
enp175s0f1: {}
enp59s0f0: {}
enp59s0f1: {}
version: 2
$ netplan apply
/etc/netplan 경로 아래 yaml 파일에서 DNS NameServer 설정한다.
설정 후 neplan apply 명령어로 적용한다.
systemd-resolved와 netplan이 다 세팅되어 있으면 netplan의 yaml 파일을 설정해주면 된다.
'OS > Linux' 카테고리의 다른 글
NTP 설정 (0) | 2023.02.19 |
---|---|
RAID Disk 구성 - Spare Disk (0) | 2023.02.12 |
SFTP 전용 유저 생성 (0) | 2023.01.19 |
120TB Disk EXT4로 포맷 (0) | 2023.01.18 |