systemd ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค 243

XNUMX๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ œ์‹œ๋œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค systemd 243. ํ˜์‹  ์ค‘์—๋Š” ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์„ ์œ„ํ•œ ํ•ธ๋“ค๋Ÿฌ์˜ PID 1 ํ†ตํ•ฉ, ๋‹จ์œ„ ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ง์„ ์œ„ํ•œ ์ž์ฒด BPF ํ”„๋กœ๊ทธ๋žจ ์—ฐ๊ฒฐ ์ง€์›, systemd-networkd์— ๋Œ€ํ•œ ์ˆ˜๋งŽ์€ ์ƒˆ๋กœ์šด ์˜ต์…˜, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ชจ๋“œ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 64๋น„ํŠธ ์‹œ์Šคํ…œ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ 22๋น„ํŠธ ๋Œ€์‹  16๋น„ํŠธ PID ๋ฒˆํ˜ธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ†ตํ•ฉ cgroups ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ „ํ™˜๋˜๋ฉฐ systemd-network-generator์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ(Out-Of-Memory, OOM)์— ๋Œ€ํ•œ ์ปค๋„ ์ƒ์„ฑ ์‹ ํ˜ธ ์ธ์‹์ด PID 1 ํ•ธ๋“ค๋Ÿฌ์— ์ถ”๊ฐ€๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ์ œํ•œ์— ๋„๋‹ฌํ•œ ์žฅ์น˜๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์  ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ํŠน์ˆ˜ ์ƒํƒœ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๋ฉˆ์ถฐ๋ผ;
  • ๋‹จ์œ„ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ์ƒˆ ๋งค๊ฐœ๋ณ€์ˆ˜ IPIngressFilterPath ๋ฐ
    IPEgressFilterPath - BPF ํ”„๋กœ๊ทธ๋žจ์„ ์ž„์˜ ํ•ธ๋“ค๋Ÿฌ์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์ด ์žฅ์น˜์™€ ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์Šค์—์„œ ์ƒ์„ฑ๋œ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” IP ํŒจํ‚ท์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ผ์ข…์˜ ๋ฐฉํ™”๋ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์„ฑ์˜ˆ BPF ๊ธฐ๋ฐ˜์˜ ๊ฐ„๋‹จํ•œ ๋„คํŠธ์›Œํฌ ํ•„ํ„ฐ

  • ์บ์‹œ, ๋Ÿฐํƒ€์ž„ ํŒŒ์ผ, ์ƒํƒœ ์ •๋ณด ๋ฐ ๋กœ๊ทธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด "clean" ๋ช…๋ น์ด systemctl ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-networkd๋Š” MACsec, nlmon, IPVTAP ๋ฐ Xfrm ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • systemd-networkd๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์˜ "[DHCPv4]" ๋ฐ "[DHCPv6]" ์„น์…˜์„ ํ†ตํ•ด DHCPv4 ๋ฐ DHCPv6 ์Šคํƒ์˜ ๋ณ„๋„ ๊ตฌ์„ฑ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. DHCP ์„œ๋ฒ„์—์„œ ์ˆ˜์‹ ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ง€์ •๋œ DNS ์„œ๋ฒ„์— ๋ณ„๋„์˜ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” RoutesToDNS ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. (DNS๋กœ ํ–ฅํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์€ DHCP์—์„œ ์ˆ˜์‹ ํ•œ ๊ธฐ๋ณธ ๊ฒฝ๋กœ์™€ ๋™์ผํ•œ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.) DHCPv4์— ๋Œ€ํ•œ ์ƒˆ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. MaxAttempts - ์ฃผ์†Œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ์ตœ๋Œ€ ์š”์ฒญ ์ˆ˜, BlackList - DHCP ์„œ๋ฒ„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ, SendRelease - ์„ธ์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ DHCP RELEASE ๋ฉ”์‹œ์ง€ ์ „์†ก์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • systemd-analyze ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ƒˆ๋กœ์šด ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:
    • "systemd-analyze timestamp" - ์‹œ๊ฐ„ ๋ถ„์„ ๋ฐ ๋ณ€ํ™˜;
    • "systemd-analyze timespan" - ๊ธฐ๊ฐ„ ๋ถ„์„ ๋ฐ ๋ณ€ํ™˜
    • "systemd-analyze ์กฐ๊ฑด" - ConditionXYZ ํ‘œํ˜„์‹์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
    • "systemd-analyze exit-status" - ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ์ˆซ์ž์—์„œ ์ด๋ฆ„์œผ๋กœ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • "systemd-analyze unit-files" - ์žฅ์น˜ ๋ฐ ์žฅ์น˜ ๋ณ„์นญ์— ๋Œ€ํ•œ ๋ชจ๋“  ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ต์…˜ SuccessExitStatus, RestartPreventExitStatus ๋ฐ
    RestartForceExitStatus๋Š” ์ด์ œ ์ˆซ์ž ๋ฐ˜ํ™˜ ์ฝ”๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ํ…์ŠคํŠธ ์‹๋ณ„์ž(์˜ˆ: "DATAERR")๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. "sytemd-analyze exit-status" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹๋ณ„์ž์— ํ• ๋‹น๋œ ์ฝ”๋“œ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์žฅ์น˜๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ "delete" ๋ช…๋ น๊ณผ ์žฅ์น˜ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ "-stats" ์˜ต์…˜์ด networkctl ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด SpeedMeter ๋ฐ SpeedMeterIntervalSec ์„ค์ •์ด networkd.conf์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ธก์ • ๊ฒฐ๊ณผ์—์„œ ์–ป์€ ํ†ต๊ณ„๋Š” 'networkctl status' ๋ช…๋ น์˜ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ์ƒ์„ฑ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์œ ํ‹ธ๋ฆฌํ‹ฐ systemd-network-generator๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    .network, .netdev ๋ฐ .link๋Š” Dracut ์„ค์ • ํ˜•์‹์˜ Linux ์ปค๋„ ๋ช…๋ น์ค„์„ ํ†ตํ•ด ์‹œ์ž‘ํ•  ๋•Œ ์ „๋‹ฌ๋œ IP ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • 64๋น„ํŠธ ์‹œ์Šคํ…œ์˜ sysctl "kernel.pid_max" ๊ฐ’์€ ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ 4194304(22๋น„ํŠธ ๋Œ€์‹  16๋น„ํŠธ PID)๋กœ ์„ค์ •๋˜์–ด PID ํ• ๋‹น ์‹œ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ณ  ๋™์‹œ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ณด์•ˆ์— ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์ž ์žฌ์ ์œผ๋กœ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ๊ทธ๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์•„์ง ๋ณด๊ณ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นŒ๋“œ ๋‹จ๊ณ„๋Š” ํ†ตํ•ฉ ๊ณ„์ธต cgroups-v2(โ€œ-Ddefault-hierarchy=unifiedโ€)๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋“œ(โ€œ-Ddefault-hierarchy=hybridโ€)์˜€์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ํ˜ธ์ถœ ํ•„ํ„ฐ(SystemCallFilter)์˜ ๋™์ž‘์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธˆ์ง€๋œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๊ฒฝ์šฐ ๊ฐœ๋ณ„ ์Šค๋ ˆ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด์ œ ๊ฐœ๋ณ„ ์Šค๋ ˆ๋“œ๊ฐ€ ์•„๋‹Œ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ Linux ์ปค๋„ 4.14+ ๋ฐ libseccomp 2.4.0+๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ์ด ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์ „์ฒด ๊ทธ๋ฃน ๋ฒ”์œ„(๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด)์— ๋Œ€ํ•ด sysctl "net.ipv4.ping_group_range"๋ฅผ ์„ค์ •ํ•˜์—ฌ ICMP Echo(ping) ํŒจํ‚ท์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ man ๋งค๋‰ด์–ผ ์ƒ์„ฑ์ด ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ „์ฒด ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด html ํ˜•์‹ ๋งค๋‰ด์–ผ์˜ ๊ฒฝ์šฐ "-Dman=true" ๋˜๋Š” "-Dhtml=true" ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ). ๋ฌธ์„œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋‘ ๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ๋งค๋‰ด์–ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์œ„ํ•œ build/man/man ๋ฐ build/man/html;
  • ์ž๊ตญ์–ด ๋ฌธ์ž๋กœ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ libidn2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(libidn์„ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด "-Dlibidn=true" ์˜ต์…˜ ์‚ฌ์šฉ).
  • ๋ฐฐํฌํŒ์—์„œ ๋„๋ฆฌ ๋ฐฐํฌ๋˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” /usr/sbin/halt.local ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ข…๋ฃŒ ์‹œ ๋ช…๋ น ์‹คํ–‰์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด /usr/lib/systemd/system-shutdown/์— ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ final.target์— ์˜์กดํ•˜๋Š” ์ƒˆ ์žฅ์น˜๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ์ข…๋ฃŒ์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ systemd๋Š” ์ด์ œ sysctl "kernel.printk"์˜ ๋กœ๊ทธ ์ˆ˜์ค€์„ ์ž๋™์œผ๋กœ ๋†’์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜ ๋กœ๊น… ๋ฐ๋ชฌ์ด ์ด๋ฏธ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ข…๋ฃŒ์˜ ํ›„๋ฐ˜ ๋‹จ๊ณ„์—์„œ ๋ฐœ์ƒํ•œ ๋กœ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ;
  • ๋กœ๊ทธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ €๋„ctl ๋ฐ ๊ธฐํƒ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ๊ฒฝ๊ณ ๋Š” ๋…ธ๋ž€์ƒ‰์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋˜๊ณ  ๊ฐ์‚ฌ ๊ธฐ๋ก์€ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋˜์–ด ์‹œ๊ฐ์ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • $PATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ bin/ ๊ฒฝ๋กœ๋Š” ์ด์ œ sbin/ ๊ฒฝ๋กœ ์•ž์— ์˜ต๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋™์ผํ•œ ์ด๋ฆ„์˜ ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด bin/์˜ ํŒŒ์ผ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • systemd-logind๋Š” ์„ธ์…˜๋ณ„๋กœ ํ™”๋ฉด ๋ฐ๊ธฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด SetBrightness() ํ˜ธ์ถœ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์žฅ์น˜๊ฐ€ ์ดˆ๊ธฐํ™”๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ์œ„ํ•ด "--wait-for-initialization" ํ”Œ๋ž˜๊ทธ๊ฐ€ "udevadm info" ๋ช…๋ น์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์ค‘์— PID 1 ํ•ธ๋“ค๋Ÿฌ๋Š” ์ด์ œ ์„ค๋ช…์ด ํฌํ•จ๋œ ์ค„ ๋Œ€์‹  ์žฅ์น˜ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋™์ž‘์œผ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด /etc/systemd/system.conf์˜ StatusUnitFormat ์˜ต์…˜์ด๋‚˜ systemd.status_unit_format ์ปค๋„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • kexec๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ง€์ •ํ•˜๋Š” watchdog PID 1์— ๋Œ€ํ•œ KExecWatchdogSec ์˜ต์…˜์„ /etc/systemd/system.conf์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ์„ค์ •
    ShutdownWatchdogSec๋Š” RebootWatchdogSec๋กœ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉฐ ์ข…๋ฃŒ ๋˜๋Š” ์ •์ƒ ์žฌ์‹œ์ž‘ ์ค‘ ์ž‘์—…์— ๋Œ€ํ•œ ์‹œ๊ฐ„ ์ œํ•œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค์— ์ƒˆ๋กœ์šด ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰์กฐ๊ฑด, ExecStartPre ์ „์— ์‹คํ–‰๋  ๋ช…๋ น์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์—์„œ ๋ฐ˜ํ™˜๋œ ์˜ค๋ฅ˜ ์ฝ”๋“œ์— ๋”ฐ๋ผ ์žฅ์น˜์˜ ์ถ”๊ฐ€ ์‹คํ–‰์— ๋Œ€ํ•œ ๊ฒฐ์ •์ด ๋‚ด๋ ค์ง‘๋‹ˆ๋‹ค. ์ฝ”๋“œ 0์ด ๋ฐ˜ํ™˜๋˜๋ฉด ์žฅ์น˜ ์‹คํ–‰์ด ๊ณ„์†๋˜๊ณ , 1์—์„œ 254๊นŒ์ง€ ์‹คํŒจ ํ”Œ๋ž˜๊ทธ ์—†์ด ์ž๋™์œผ๋กœ ๋๋‚˜๋ฉด 255๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ์‹คํŒจ ํ”Œ๋ž˜๊ทธ;
  • sys/fs/pstore/์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์ถ”๊ฐ€ ๋ถ„์„์„ ์œ„ํ•ด /var/lib/pstore์— ์ €์žฅํ•˜๋Š” ์ƒˆ๋กœ์šด ์„œ๋น„์Šค systemd-pstore.service๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ด€๋ จํ•˜์—ฌ systemd-timesyncd์— ๋Œ€ํ•œ NTP ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด timedatectl ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ƒˆ๋กœ์šด ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "localectl list-locales" ๋ช…๋ น์€ ๋” ์ด์ƒ UTF-8 ์ด์™ธ์˜ ๋กœ์ผ€์ผ์„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜ ์ด๋ฆ„์ด "-" ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ sysctl.d/ ํŒŒ์ผ์˜ ๋ณ€์ˆ˜ ํ• ๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋ฌด์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค systemd-random-seed.service ์ด์ œ Linux ์ปค๋„ ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ์˜ ์—”ํŠธ๋กœํ”ผ ํ’€ ์ดˆ๊ธฐํ™”๋ฅผ ์ „์ ์œผ๋กœ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดˆ๊ธฐํ™”๋œ /dev/urandom์ด ํ•„์š”ํ•œ ์„œ๋น„์Šค๋Š” systemd-random-seed.service ์ดํ›„์— ์‹œ์ž‘๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • systemd-boot ๋ถ€ํŠธ ๋กœ๋”๋Š” ๋‹ค์Œ์„ ์ง€์›ํ•˜๋Š” ์„ ํƒ์  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋“œ ํŒŒ์ผ EFI ์‹œ์Šคํ…œ ํŒŒํ‹ฐ์…˜(ESP)์—์„œ ๋ฌด์ž‘์œ„ ์ˆœ์„œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • bootctl ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ƒˆ๋กœ์šด ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค: ESP์—์„œ ์‹œ๋“œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ "bootctl random-seed" ๋ฐ systemd-boot ๋ถ€ํŠธ ๋กœ๋”์˜ ์„ค์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ "bootctl is-installed". ๋˜ํ•œ bootctl์€ ๋ถ€ํŒ… ํ•ญ๋ชฉ์˜ ์ž˜๋ชป๋œ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์ปค๋„ ์ด๋ฏธ์ง€๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์ง€๋งŒ ๋กœ๋“œํ•  ํ•ญ๋ชฉ์ด ๋‚จ์•„ ์žˆ๋Š” ๊ฒฝ์šฐ).
  • ์‹œ์Šคํ…œ์ด ์ ˆ์ „ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜๋ฉด ์Šค์™‘ ํŒŒํ‹ฐ์…˜์ด ์ž๋™์œผ๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜์€ ๊ตฌ์„ฑ๋œ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์„ ํƒ๋˜๋ฉฐ, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ ์—ฌ์œ  ๊ณต๊ฐ„์˜ ์–‘์— ๋”ฐ๋ผ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
  • ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ์žˆ๋Š” ์žฅ์น˜๊ฐ€ ์•”ํ˜ธํ™”๋œ ํŒŒํ‹ฐ์…˜์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด /etc/crypttab์— keyfile-timeout ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • BFQ ์Šค์ผ€์ค„๋Ÿฌ์˜ I/O ๊ฐ€์ค‘์น˜๋ฅผ ์„ค์ •ํ•˜๋Š” IOWeight ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-resolved๋Š” DNS-over-TLS์— '์—„๊ฒฉํ•œ' ๋ชจ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ธ์ •์ ์ธ DNS ์‘๋‹ต๋งŒ ์บ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค(resolved.conf์˜ "Cache no-negative").
  • VXLAN์˜ ๊ฒฝ์šฐ systemd-networkd์— VXLAN ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” GenericProtocolExtension ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. VXLAN ๋ฐ GENEVE์˜ ๊ฒฝ์šฐ ๋‚˜๊ฐ€๋Š” ํŒจํ‚ท์— ๋Œ€ํ•œ ์กฐ๊ฐํ™” ๊ธˆ์ง€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด IPDoNotFragment ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-networkd์˜ "[Route]" ์„น์…˜์— FastOpenNoCookie ์˜ต์…˜์ด ๋‚˜ํƒ€๋‚˜ TTLPropagate ์˜ต์…˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ณ„ ๊ฒฝ๋กœ์™€ ๊ด€๋ จํ•˜์—ฌ TCP ์—ฐ๊ฒฐ(TFO - TCP Fast Open, RFC 7413)์„ ๋น ๋ฅด๊ฒŒ ์—ฌ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. TTL LSP(Label Switched Path)๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. "์œ ํ˜•" ์˜ต์…˜์€ ๋กœ์ปฌ, ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ, ์• ๋‹ˆ์บ์ŠคํŠธ, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ, ๋ชจ๋“  ๋ฐ xresolve ๋ผ์šฐํŒ… ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • Systemd-networkd๋Š” "[Network]" ์„น์…˜์—์„œ DefaultRouteOnDevice ์˜ต์…˜์„ ์ œ๊ณตํ•˜์—ฌ ํŠน์ • ๋„คํŠธ์›Œํฌ ์žฅ์น˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • Systemd-networkd์— ProxyARP ๋ฐ
    ํ”„๋ก์‹œ ARP ๋™์ž‘ ์„ค์ •์„ ์œ„ํ•œ ProxyARPWifi, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ๋ชจ๋“œ์—์„œ ๋ผ์šฐํŒ… ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •์„ ์œ„ํ•œ MulticastRouter, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ์šฉ IGMP(Internet Group Management Protocol) ๋ฒ„์ „ ๋ณ€๊ฒฝ์„ ์œ„ํ•œ MulticastIGMPVersion;

  • Systemd-networkd์—๋Š” ๋กœ์ปฌ ๋ฐ ์›๊ฒฉ IP ์ฃผ์†Œ์™€ ๋„คํŠธ์›Œํฌ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด FooOverUDP ํ„ฐ๋„์— ๋Œ€ํ•œ ๋กœ์ปฌ, ํ”ผ์–ด ๋ฐ PeerPort ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TUN ํ„ฐ๋„์˜ ๊ฒฝ์šฐ GSO(์ผ๋ฐ˜ ์„ธ๊ทธ๋จผํŠธ ์˜คํ”„๋กœ๋“œ) ์ง€์›์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด VnetHeader ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-networkd์˜ [Match] ์„น์…˜์— ์žˆ๋Š” .network ๋ฐ .link ํŒŒ์ผ์— udev์˜ ํŠน์ • ์†์„ฑ์œผ๋กœ ์žฅ์น˜๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ ์˜ต์…˜์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
  • systemd-networkd์—๋Š” ํ„ฐ๋„์— ๋Œ€ํ•ด AssignToLoopback ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํ„ฐ๋„ ๋์ด ๋ฃจํ”„๋ฐฑ ์žฅ์น˜ "lo"์— ํ• ๋‹น๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • systemd-networkd๋Š” sysctl ๋น„ํ™œ์„ฑํ™”_ipv6์„ ํ†ตํ•ด ์ฐจ๋‹จ๋œ ๊ฒฝ์šฐ IPv6 ์Šคํƒ์„ ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. - IPv6 ์„ค์ •(์ •์  ๋˜๋Š” DHCPv6)์ด ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ์ •์˜๋œ ๊ฒฝ์šฐ IPv6๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋ฏธ ์„ค์ •๋œ sysctl ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • .network ํŒŒ์ผ์—์„œ CriticalConnection ์„ค์ •์€ systemd-networkd๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ("yes", "static", "dhcp-on-stop", "dhcp")์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ๋” ๋งŽ์€ ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•˜๋Š” KeepConfiguration ์˜ต์…˜์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•  ๋•Œ ๊ธฐ์กด ์—ฐ๊ฒฐ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  • ์ทจ์•ฝ์ ์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CVE-2019-15718, D-Bus ์ธํ„ฐํŽ˜์ด์Šค systemd-resolved์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ๊ถŒํ•œ ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ DNS ์„ค์ • ๋ณ€๊ฒฝ, ์•…์„ฑ ์„œ๋ฒ„๋กœ DNS ์ฟผ๋ฆฌ ์ „๋‹ฌ ๋“ฑ ๊ด€๋ฆฌ์ž์—๊ฒŒ๋งŒ ๊ฐ€๋Šฅํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ทจ์•ฝ์ ์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CVE-2019-9619๋น„๋Œ€ํ™”ํ˜• ์„ธ์…˜์— ๋Œ€ํ•ด pam_systemd๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋˜์–ด ํ™œ์„ฑ ์„ธ์…˜์„ ์Šคํ‘ธํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€