1. 네트워크 설정 유효성 검사
1) IP 주소 표시
# ip address show 장치이름
: 장치에 대한 ip 주소를 출력해준다.

- UP : 활성 인터페이스임을 의미
- link 행 : 장치의 MAC 주소
- inet 행 : IPv4 주소 및 접두사
- 10.10.10.255 : 브로드캐스트 주소로 범위 및 장치 이름도 이 행에 표시됨
- inet6 행 : IPv6 정보를 표시
2) 라우팅 문제 해결
# ip route
: 라우팅 정보 표시

3) 포트 및 서비스 문제 해결
TCP 서비스는 소켓을 통신용 엔드포인트로 사용하며 IP 주소, 프로토콜 및 포트 번호로 이루어져 있다. 일반적으로 서비스는 표준 포트에서 수신 대기를 하는 반면, 클라이언트는 사용 가능한 임의의 포트를 활용하여 표준 포트에 연결된다.
# ss -ta
: 소켓 통계 표시

2. 네트워크 매니저
네트워크 매니저는 네트워크 설정을 모니터링 및 관리하는 데몬이다.
명령줄 및 그래픽 도구는 네트워크 매니저와 통신하며 구성 파일을 /etc/sysconfig/network-scripts 디렉터리에 저장한다.
장치는 네트워크 인터페이스이며, 연결은 설정 모음으로 이루어진 장치에 사용되는 구성으로 되어 있다.
한 장치에 여러 연결이 존재할 수 있지만 한 번에 하나의 연결만 활성화할 수 있다.
1) nmcli와 nmtui
- nmcli : 명령어로 네트워크 연결 설정
- nmtui : GUI로 네트워크 연결 설정
2) [실습] DHCP를 사용한 연결 설정 파일 생성 및 장치 연결
2-1) 자동 구성
1. ens192 장치를 dhcp-ens192라는 이름으로 추가
# nmcli con add con-name 'dhcp-ens192' type ethernet ifname ens192
2. 연결 활성화
# nmcli on up dhcp-ens192
3. 연결 설정 확인
# cat /etc/NetworkManager/system-connections/dhcp-ens192.nmconnection
[connection]
id=dhcp-ens192
uuid=a1d8b5e1-5e92-45f3-ae77-0c7c6e44bc31
type=ethernet
interface-name=ens192
[ethernet]
[ipv4]
method=auto
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
4. 연결 비활성화 (사용 중지)
# nmcli con down dhcp-ens192
5. 연결 삭제
# nmcli con delete dhcp-ens192
2-2) 수동 구성
# nmcli con add con-name 'static-ens192' ifname ens192 type ethernet ipv4.method manual ipv4.addresses 10.10.10.192/24 ipv4.gateway 10.10.10.2 ipv4.dns 8.8.8.8 autoconnect yes
3. xinetd & service
RHEL 5 버전 기준
- standalone 방식 : 서버 프로그램이 자체적으로 실행되고 지속적으로 백그라운드에서 대기
→ ex) httpd, sshd - xinetd 방식 : xinetd라는 슈퍼 데몬이 요청을 대신 받아서, 필요한 서버 프로그램을 요청이 있을 때마다 실행
→ ex) telnet, ftp (옛날 서비스들)
4. systemctl
1) systemd
systemd는 Linux 시스템의 부팅 과정과 서비스 관리를 담당하는 시스템 및 서비스 관리자이다.
시스템이 부팅될 때, 또는 운영 중에 리소스와 데몬을 효율적으로 관리한다.
systemd의 주요 특징
- 병렬로 서비스 실행하여 부팅 속도 향상
- 필요할 때만 서비스 실행 (on-demand)
- 자동 의존성 관리 (예: 네트워크가 준비되지 않으면 네트워크 관련 서비스 대기)
- Control Groups(cgroups)를 사용해 관련 프로세스를 함께 추적
2) systemctl 및 유닛
systemctl은 systemd의 유닛들을 관리하는 명령어이다.
유닛 유형
- 서비스 유닛(.service) : 시스템 서비스. 웹 서버처럼 자주 액세스하는 데몬을 시작하는 데 사용됨
- 소켓 유닛(.socket) : 클라이언트 연결이 들어올 때까지 서비스를 대기 상태로 두는 방식
- 경로 유닛(.path) : 특정 파일 경로나 디렉토리에 변화가 생겼을 때만 서비스 실행
3) 서비스 상태
# systemctl status name.type
: 서비스 상태 확인
systemctl로 서비스를 재시작 또는 정지 후 시작하게 되면 메인 PID 번호가 변경된다.
# systemctl reload-or-restart httpd
: reload가 가능하면 reload하고 안되면 restart 수행
4) 유닛 종속성
다른 서비스의 종속성으로 서비스가 시작될 수 있다.

5) 서비스 마스킹
시스템이 방화벽같은 특정 기능용으로 설치된 서비스와 충돌하는 경우가 있을 수 있다.
관리자가 의도하지 않은 충돌을 방지하기 위해 그 서비스에 마스크를 지정할 수 있다.
mask로 마스킹을 추가하고, unmask로 해제한다.

6) 시스템 데몬을 활성화하여 부팅시 시작 또는 중지
enable 옵션을 --now로 설정해 부팅시 시작되게 할 수 있다.

7) 부팅 프로세스 제어
7-1) Target
systemd target은 부팅 단계나 서비스 그룹을 논리적으로 묶은 단위를 말한다.
| Target | 설명 |
| graphical.target | 멀티 유저 + GUI (X 서버, GNOME 등) 지원 |
| multi-user.target | 멀티 유저, 텍스트 기반 로그인만 제공 |
| rescue.target | 단일 사용자 모드, sulogin 제공, 기본 시스템 초기화만 완료 |
| emergency.target | 최소한의 쉘 환경만 제공, 시스템 루트 읽기 전용 마운트 |
7-2) 런타임 시 대상 선택
- 실행 중인 시스템의 runlevel을 전환하듯 target을 바꿀 수 있음
- 예: GUI 없이 CLI 환경으로 전환
# systemctl isolate multi-user.target
- 단, AllowIsolate=yes가 설정된 Target만 격리 가능
→ 예: graphical.target은 가능, cryptsetup.target은 불가
7-3) 기본 Target 설정
- 시스템 부팅 시 자동으로 진입할 Target을 지정할 수 있음
- 기본값 확인 :
# systemctl get-default graphical.target
- 기본값 변경 :
# systemctl set-default multi-user.target
- /etc/systemd/system/default.target → 실제 대상(target)에 대한 심볼릭 링크
7-4) 부팅 시 Target 임시 변경
부팅 시 GRUB에서 특정 Target으로 부팅 가능:
- 시스템 재부팅
- 부트 로더(GRUB) 카운트다운 중 아무 키나 눌러 중단
- 부팅 항목 선택 후 e 키로 편집
- linux16 또는 linux로 시작하는 줄에서 끝에 추가
-
# systemd.unit=rescue.target 명령어 수행
- Ctrl + x를 눌러 부팅
5. DNS
- DNS는 도메인 이름(ex: www.google.com)을 IP 주소(ex: 142.250.72.68)로 변환해주는 시스템
- 53번 포트를 사용하며, TCP, UP 모두 사용
- 전 세계적으로 분산된 네임 서버 구조를 가지며, 계층적 구조로 운영됨
1) 주요 용어
- URL : 자원의 위치를 나타내는 전체 주소 ex) https://www.example.com/index.html
- 호스트 이름 : 네트워크 상에서 컴퓨터를 식별하는 이름 ex) www
- 도메인 이름 : 네트워크 상에서 조직을 식별하는 이름 ex) example.com
- IP 주소 : 장비가 네트워크에서 통신할 수 있도록 식별하는 고유한 번호
- FQDN : Fully Qualified Domain Name. 호스트명 + 도메인명을 포함한 완전한 주소
- 도메인 주소 구조
- 1단계 (최상위 도메인, TLD) : 상업용 도메인 (com, org, net, kr 등)
- 2단계 (2차 도메인) : 기관이나 회사 등의 고유 이름
- 3단계 (서브 도메인) : 웹 서버를 나타냄 (필수 아님, 보통 웹 서비스용)
2) 도메인 이름 부여 원칙
- 영문, 숫자, 하이픈(-)만 사용
- 대소문자 구분 없음
- 하이픈으로 시작하거나 끝날 수 없음
- 단계별 최대 길이 : 63자
- 전체 도메인 이름 총 길이는 255자 제한
- 중복 불가, 전 세계에서 고유해야 함
3) 동적 DNS(DDNS)
- IP가 자주 변경되는 유동 IP 환경에서 자동으로 DNS 정보를 갱신해주는 방식
- 주로 개인 사용자, 소규모 서버 환경 등에서 활용
4) DNS 동작 원리
1. 사용자가 웹 사이트 주소 입력 (www.example.com)
2. 클라이언트 PC는 먼저 캐시 또는 /etc/hosts 등에서 IP 주소 탐색
3. 없으면 /etc/resolv.conf에 등록된 네임서버로 질의 전송
4. 네임서버가 요청을 받아 루트 DNS -> 상위 도메인(.com 등) -> 하위 도메인(example.com) 순으로 저옵 요청
5. 최종적으로 해당 도메인의 네임서버가 IP 주소 반환
6. 클라이언트는 IP를 받아 웹 서버에 접속 (이후 요청된 정보는 캐시에 저장)
5) 리눅스 관련 파일
- /etc/hosts : 로컬에서 이름 확인시 사용하는 파일
- /etc/resolv.conf : 사용자의 DNS 서버 정보를 설정
- /etc/named.conf : BIND 설정 파일 (DNS 서버 측)
6) DNS 서버 종류
- Master(Primary) : 도메인 정보의 원본을 저장하고 관리하는 서버
- Slave(Secondary) : Master의 정보를 복제하여 사용하는 보조 서버
- Cache-Only : 도메인 정보를 저장하지 않고, 질의 결과만 캐싱
- Forwarding : 다른 DNS 서버로 요청을 전달만 하는 역할
7) BIND (Berkeley Internet Name Domain)
- 가장 널리 사용되는 DNS 서버 소프트웨어
- Linux/Unix 기반에서 사용
- 주요 버전 : BIND 4.x / 8.x / 9.x / 10.x
- 기본 동작 구성 : 네임 서버 + Resolver 라이브러리
8) ARPANet
- 초기 인터넷의 기반이 된 네트워크
- 미국 국방부가 후원하여 패킷 스위칭 기반으로 개발됨
- 이후 NSFNet 등으로 발전 -> 현대 인터넷으로 연결
6. [실습] /etc/hosts 파일을 사용한 이전 도메인 관리 방식
최근에는 IP로 직접 요청을 하게 되면 거부하는 사례가 많기 때문에 2번 서버에 httpd로 한줄짜리 웹 서버를 구성한 뒤 실습을 진행하자.
[root@server2 ~]# dnf -y install httpd ; echo 'server2.example.com web' > /var/www/html/index.html ; systemctl start httpd
[root@server2 ~]# firewall-cmd --permanent --add-service=http
[root@server2 ~]# firewall-cmd --reload

네임서버를 잠시 주석처리를 하면 외부로 나가지를 못해서 curl 명령 수행시 찾을 수 없다고 뜬다.

server1의 /etc/hosts 파일에 server2 도메인을 추가하자.

✍️ 하루 회고
열심히 기록하다가 갑자기 크롬이 강제 종료되는 바람에 오전에 배운 내용이 다 날라갔다....
이론만 다시 정리하고 실습은 아쉽지만 학습 자료만 보고 복습해야 할 것 같다.
이런 적이 처음이라 많이 당황했지만 빠르게 단념하고 할 수 있는 부분부터 다시 기록하기로 했다.
오늘은 이전 수업 중에 사용했던 systemctl, nmcli, nmtui와 같은 시스템 네트워크 설정 도구들에 대해 더 깊이 있게 학습하는 시간을 가졌다. 또 DNS의 역할과 도메인 이름을 IP 주소로 변환하는 과정을 배우면서 그동안 알고 있던 개념들이 맞는지 확인해볼 수 있었다. 내일 수업에서 배운 이론들을 실제로 적용해보게 될 DNS 서버 구축 실습이 기대된다.
'TIL' 카테고리의 다른 글
| [에스넷시스템 부트캠프] TIL Day 48 - OpenSSH (0) | 2025.07.28 |
|---|---|
| [에스넷시스템 부트캠프] TIL Day 46 - SELinux, DHCP, NFS, AutoFS (0) | 2025.07.25 |
| [에스넷시스템 부트캠프] TIL Day 44 - Active Directory (0) | 2025.07.22 |
| [에스넷시스템 부트캠프] TIL Day 43 - VUM (0) | 2025.07.21 |
| [에스넷시스템 부트캠프] TIL Day 42 - 에스넷시스템 현장견학 (2) | 2025.07.18 |