LFCS — 리눅스 재단 시스템 관리자 · 서비스와 네트워크를 실제로 — systemd·nginx·iptables·chrony·podman · 퀴즈
퀴즈: 서비스와 네트워크를 실제로
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`systemctl start lfcs-heartbeat.timer` 만 하고 재부팅했더니 타이머가 없다. 무엇이 빠졌나?
- [Timer] 절에 Persistent=true 가 없어서 부팅 때 복원되지 않았다
- 타이머는 start 만으로는 다음 부팅에 켜지지 않는다. [Install] 의 WantedBy 를 두고 enable 해야 한다
- 서비스 쪽 Type=oneshot 이 부팅 때 타이머를 막았다
- OnBootSec 이 없으면 타이머는 재부팅 뒤 영구히 비활성화된다
nat 테이블 PREROUTING 에 8080→80 DNAT 를 넣고 같은 VM 에서 `curl http://127.0.0.1:8080/` 을 했더니 연결이 거부된다. 해석은?
- DNAT 규칙이 잘못 들어간 것이다. -j REDIRECT 로 바꿔야 한다
- nf_tables 백엔드에서는 PREROUTING DNAT 가 지원되지 않는다
- 자기 자신이 만든 패킷은 PREROUTING 을 지나지 않으므로 이 시험으로는 DNAT 를 볼 수 없다
- 80 포트의 nginx 가 죽어 있어 DNAT 된 패킷이 거부된 것이다
`iptables -A INPUT -p tcp --dport 9999 -j DROP` 뒤에 `127.0.0.1:9999` 로 접속하면 클라이언트가 보는 것은?
- 연결 거부(Connection refused)가 즉시 돌아온다
- TCP RST 대신 ICMP 오류가 돌아온다
- 연결이 되지만 데이터가 오지 않는다
- 응답이 전혀 없어 시간 초과를 본다
`ip link set dummy1 master bond0` 이 거부됐다. 가장 흔한 원인은?
- bond0 의 모드가 active-backup 이면 슬레이브를 넣을 수 없다
- 슬레이브는 넣기 전에 down 상태여야 한다
- dummy 인터페이스는 본드의 슬레이브가 될 수 없다
- netplan 파일을 먼저 적용해야 ip 명령이 허용된다
`/etc/sysctl.d/90-lfcs.conf` 에 `vm.swappiness = 10` 을 적었는데 `sysctl -n vm.swappiness` 는 60 이다. 다음 조치는?
- sysctl --system 으로 파일을 지금 커널에 적용한다
- 파일 이름을 99-lfcs.conf 로 바꿔 우선순위를 올린다
- 재부팅 전에는 바꿀 수 없으므로 재부팅한다
- 값 사이의 공백을 지워 vm.swappiness=10 으로 적는다
`podman import bb.tar localhost/lfcs-busybox:1` 로 만든 이미지의 특징으로 옳은 것은?
- 레지스트리에서 베이스 이미지를 받아 그 위에 tar 를 얹은 다층 이미지다
- Containerfile 이 없으면 import 는 실행 불가능한 이미지를 만든다
- import 한 이미지는 --network none 으로만 실행할 수 있다
- tar 하나가 그대로 한 층이 되며 Dockerfile 도 레지스트리도 필요 없다