LabHub

LFCS — 리눅스 재단 시스템 관리자 · 네트워킹 · 실습

주소·이름·경로를 설정하고 읽기

LabHub 에서 이어서 보기

목표

정적 주소 설정 파일을 쓰고, 이름 해석 경로를 구간별로 확인하고, 소켓과 라우팅을 읽어 요약을 만든다.

왜 중요한가

이 실습의 1~2단계는 저자의 홈랩에서 실제로 클러스터를 죽인 사고의 재발 방지 절차 그대로다. DHCP 임대 갱신으로 컨트롤 플레인의 주소가 바뀌자 인증서 SAN 과 어긋나 apiserver 가 기동하지 못했다. 그때 배운 것은 dhcp4: false 만으로는 고정이 아니라는 것이다. cloud-init 이 부팅마다 네트워크 설정을 다시 생성하기 때문에 그 생성을 함께 막아야 하고, 공유기 쪽 DHCP 예약까지 세트로 해야 비로소 주소가 고정된다.

나머지 단계는 진단 순서를 몸에 익히는 과정이다. getentdig 의 결과가 갈리는 지점이 곧 문제 구간이고, ss 의 소켓 상태와 ip route 의 기본 경로는 "여기까지는 정상" 을 확정해 주는 근거다. 이 환경에서는 pingiptables 가 막혀 있으므로 도달성 확인 대신 설정 파일과 관찰 도구로만 판단하는 훈련을 한다.

단계

1. /root/lfcs-net/01-static.yaml 에 netplan 설정을 쓰세요. network.version 은 2, 인터페이스는 enp3s0, dhcp4: false, 주소는 10.0.0.120/24, 기본 경로는 to: defaultvia: 10.0.0.1, 네임서버는 10.0.0.11.1.1.1 입니다.
2. /root/lfcs-net/99-disable-network-config.cfg 에 cloud-init 의 네트워크 설정 생성을 끄는 내용을 쓰세요. 실제 서버라면 이 파일은 /etc/cloud/cloud.cfg.d/ 아래에 둡니다.
3. /etc/hosts 에 주소 10.0.0.120, 정규 이름 cp-1.homelab.internal, 별칭 cp-1 항목을 추가하고, getent hosts cp-1 의 출력을 /root/lfcs-net/getent.txt 에 저장하세요.
4. /root/lfcs-net/resolv-summary.txtnameservers=<nameserver 줄 개수>ndots=<옵션 값 또는 none> 두 줄을 /etc/resolv.conf 기준으로 적으세요.
5. 127.0.0.1:8087 에서 듣는 TCP 리스너를 하나 띄우고, 현재 LISTEN 중인 소켓의 로컬 주소를 /root/lfcs-net/listen.txt 에 한 줄씩 담으세요.
6. /root/lfcs-net/route.txtdefault_via=<기본 경로의 게이트웨이 또는 none>primary_iface=<기본 경로가 나가는 장치> 두 줄을 적으세요.
7. /root/lfcs-net/nsswitch.txthosts=<'/etc/nsswitch.conf' 의 hosts 행 값들> 한 줄을 적으세요. 값 사이는 공백 하나로 구분합니다.
8. /root/lfcs-net/firewall-plan.txt 에 규칙 다섯 줄을 <동작> <프로토콜> <포트> <출발지> 형식으로 아래 순서 그대로 적으세요.

allow tcp 22 10.0.0.0/24allow tcp 6443 10.0.0.0/24allow tcp 80 0.0.0.0/0allow tcp 443 0.0.0.0/0deny any any 0.0.0.0/0

참고

단계 8개

  1. netplan 정적 주소 설정
  2. cloud-init 네트워크 설정 끄기
  3. hosts 항목과 getent 확인
  4. 리졸버 설정 요약
  5. 리스너를 띄우고 소켓 목록 만들기
  6. 기본 경로 파싱
  7. 이름 해석 순서 기록
  8. 방화벽 규칙 설계 문서