๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๊ธฐ NetworkManager 1.32.0 ์ถœ์‹œ

๋„คํŠธ์›Œํฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐํŽ˜์ด์Šค์˜ ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค(NetworkManager 1.32.0)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VPN, OpenConnect, PPTP, OpenVPN ๋ฐ OpenSWAN์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ž์ฒด ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

NetworkManager 1.32์˜ ์ฃผ์š” ํ˜์‹  ์‚ฌํ•ญ:

  • ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ ๋ฐฑ์—”๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์—ˆ์œผ๋ฉฐ, ์ด์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์˜ต์…˜ โ€œ[main].firewall-backendโ€๊ฐ€ NetworkManager.conf์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ "nftables" ๋ฐฑ์—”๋“œ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ์‹œ์Šคํ…œ์— /usr/sbin/nft ํŒŒ์ผ์ด ์—†๊ณ  /usr/sbin/iptables๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ "iptables" ๋ฐฑ์—”๋“œ๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„์—๋Š” Firewalld๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๊ณต์œ  ์•ก์„ธ์Šค ํ”„๋กœํ•„์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ nftables(์ด์ „์—๋Š” iptables๋งŒ ์‚ฌ์šฉ๋จ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ ๋ณ€ํ™˜๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ์ˆ˜์‹ ํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ์ง€์—ฐ์„ ๋„์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์˜ต์…˜ "ethtool.pause-autoneg", "ethtool.pause-rx" ๋ฐ "ethtool.pause-tx"๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋œ ์˜ต์…˜์€ ethtool ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์œ ์‚ฌํ•œ ๋ชจ๋“œ์ธ "-pause devname [autoneg on|off] [rx on|off] [tx on|off]"์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ์‹œ์Šคํ…œ์— ์ฃผ์†Œ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์ „์†ก ๋„คํŠธ์›Œํฌ ํ”„๋ ˆ์ž„์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋ฅผ "๋ฌด์ฐจ๋ณ„" ๋ชจ๋“œ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” "ethernet.accept-all-mac-addresses" ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ญ๋ฐฉํ–ฅ DNS ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‹œ์Šคํ…œ์— ํ• ๋‹น๋œ IP ์ฃผ์†Œ์— ๋Œ€ํ•ด ์ •์˜๋œ DNS ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“œ๋Š” ํ”„๋กœํ•„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” NSS ๊ตฌ์„ฑ๊ณผ /etc/hostname ํŒŒ์ผ์— ์ง€์ •๋œ ์ด๋ฆ„์„ ๊ณ ๋ คํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด getnameinfo() ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด DNS์˜ ์—ญ๋ฐฉํ–ฅ ์˜์—ญ ํ™•์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ๋งŒ ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ). DNS๋ฅผ ํ†ตํ•ด ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ฟผ๋ฆฌํ•˜๋ ค๋ฉด ์ด์ œ systemd-resolved API๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ, systemd๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ 'dns' NSS ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ 'nm-daemon-helper' ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
  • "๊ธˆ์ง€", "๋ธ”๋ž™ํ™€" ๋ฐ "๋„๋‹ฌํ•  ์ˆ˜ ์—†์Œ" ๋ผ์šฐํŒ… ๊ทœ์น™ ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ทœ์น™๊ณผ ๊ด€๋ จ๋œ ๋™์ž‘์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ NetworkManager๋Š” ์ด์ œ ์‹œ์Šคํ…œ์— ์ด๋ฏธ ์„ค์ •๋œ qdiscs ๊ทœ์น™ ๋ฐ ํŠธ๋ž˜ํ”ฝ ํ•„ํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • NetworkManager ๋ฌด์„  ์—ฐ๊ฒฐ ํ”„๋กœํ•„์„ iwd ๊ตฌ์„ฑ ํŒŒ์ผ๋กœ ๋ฏธ๋Ÿฌ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • DHCP ์˜ต์…˜ 249(Microsoft Classless Static Route)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • IP ๋ฐ”์ธ๋”ฉ ์—…๋ฐ์ดํŠธ ์š”์ฒญ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹"rd.net.dhcp.retry" ์ปค๋„ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์†Œ์Šค ํ…์ŠคํŠธ์˜ ์ค‘์š”ํ•œ ์žฌ๊ตฌ์„ฑ์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก API๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜ค๋žซ๋™์•ˆ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๋˜ PropertiesChanged ์‹ ํ˜ธ ๋ฐ D-Bus ์†์„ฑ org.freedesktop.DBus.Properties.PropertiesChanged์˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. libnm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” NMSimpleConnection, NMSetting ๋ฐ NMSetting ํด๋ž˜์Šค์˜ ๊ตฌ์กฐ ์ •์˜๋ฅผ ์ˆจ๊น๋‹ˆ๋‹ค. "connection.uuid" ํ˜•์‹์€ ์—ฐ๊ฒฐ ํ”„๋กœํ•„์„ ์‹๋ณ„ํ•˜๋Š” ๊ธฐ๋ณธ ํ‚ค๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Intel์—์„œ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ์†Œ๋น„๊ฐ€ ์ ๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•œ ์œ ์—ฐํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ํŠน์ง•์ธ ConnMan 1.40 ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ์‹œ์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ConnMan์€ Tizen, Yocto, Sailfish, Aldebaran Robotics ๋ฐ Nest์™€ ๊ฐ™์€ ํ”Œ๋žซํผ ๋ฐ ๋ฐฐํฌํŒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Linux ๊ธฐ๋ฐ˜ ํŽŒ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์†Œ๋น„์ž ์žฅ์น˜์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Intel์€ ๋˜ํ•œ Linux ์‹œ์Šคํ…œ์„ ๋ฌด์„  ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ wpa_supplicant์˜ ๋Œ€์•ˆ์œผ๋กœ ๊ฐœ๋ฐœ๋œ Wi-Fi ๋ฐ๋ชฌ IWD 1.15(iNet Wireless Daemon)์˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. IWD๋Š” ์ž์ฒด์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Network Manager ๋ฐ ConnMan ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๊ธฐ์˜ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์— ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•˜๋ฉฐ ์ตœ์†Œํ•œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋””์Šคํฌ ๊ณต๊ฐ„ ์†Œ๋น„์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. IWD๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ‘œ์ค€ Linux ์ปค๋„์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์—๋งŒ ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค(Linux ์ปค๋„๊ณผ Glibc๋งŒ์œผ๋กœ๋„ ์ž‘๋™ ๊ฐ€๋Šฅ).

ConnMan์˜ ์ƒˆ ๋ฒ„์ „์—๋Š” WiFi์˜ ์ž๋™ ์—ฐ๊ฒฐ ๋ฐ ์—ฐ๊ฒฐ ํ•ด์ œ ์ƒํƒœ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ๋ฒ„๊ทธ ์ˆ˜์ •๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. DNS ํ”„๋ก์‹œ ์ฝ”๋“œ์˜ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ์ทจ์•ฝ์ ๋„ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. IWD์˜ ์ƒˆ ๋ฒ„์ „์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์ž‘์—…์— ๋Œ€ํ•œ ์ •๋ณด ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ง€์›ํ•˜๊ณ  VHT RX(Very High Throughput) ๋ชจ๋“œ์—์„œ ํŒจํ‚ท ๋„์ฐฉ ๊ฐ•๋„๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉฐ FT-over-DS ์ ˆ์ฐจ์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ๋ณธ ์„œ๋น„์Šค ์„ธํŠธ(BSS).

์ถœ์ฒ˜ : opennet.ru

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