nftables ํŒจํ‚ท ํ•„ํ„ฐ 1.0.1 ๋ฆด๋ฆฌ์Šค

IPv1.0.1, IPv4, ARP ๋ฐ ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€์— ๋Œ€ํ•œ ํŒจํ‚ท ํ•„ํ„ฐ๋ง ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ํŒจํ‚ท ํ•„ํ„ฐ nftables 6 ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(iptables, ip6table, arptables ๋ฐ ebtables๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•จ). nftables 1.0.1 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ Linux ์ปค๋„ 5.16-rc1์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

nftables ํŒจํ‚ค์ง€์—๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” ํŒจํ‚ท ํ•„ํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ปค๋„ ์ˆ˜์ค€ ์ž‘์—…์€ ๋ฆด๋ฆฌ์Šค 3.13๋ถ€ํ„ฐ Linux ์ปค๋„์˜ ์ผ๋ถ€์˜€๋˜ nf_tables ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ปค๋„ ์ˆ˜์ค€์€ ํŒจํ‚ท์—์„œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ, ๋ฐ์ดํ„ฐ ์ž‘์—… ์ˆ˜ํ–‰ ๋ฐ ํ๋ฆ„ ์ œ์–ด๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ”„๋กœํ† ์ฝœ ๋…๋ฆฝ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ•„ํ„ฐ๋ง ๊ทœ์น™๊ณผ ํ”„๋กœํ† ์ฝœ๋ณ„ ํ•ธ๋“ค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋œ ํ›„ ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ Netlink ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์— ๋กœ๋“œ๋˜๊ณ  BPF(Berkeley Packet Filters)๋ฅผ ์—ฐ์ƒ์‹œํ‚ค๋Š” ํŠน์ˆ˜ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ปค๋„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋„ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋Š” ํ•„ํ„ฐ๋ง ์ฝ”๋“œ์˜ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ค„์ด๊ณ  ํ”„๋กœํ† ์ฝœ ์ž‘์—…์„ ์œ„ํ•œ ๊ตฌ๋ฌธ ๋ถ„์„ ๊ทœ์น™ ๋ฐ ๋…ผ๋ฆฌ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ :

  • ๋Œ€๊ทœ๋ชจ ์„ธํŠธ ๋ฐ ์ง€๋„ ๋ชฉ๋ก์„ ๋กœ๋“œํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ธํŠธ ๋ฐ ๋งต ๋ชฉ๋ก ๋‹ค์‹œ ๋กœ๋“œ๊ฐ€ ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๊ทœ๋ชจ ๊ทœ์น™ ์„ธํŠธ์—์„œ ์„ ํƒ๋œ ํ…Œ์ด๋ธ” ๋ฐ ์ฒด์ธ์˜ ์ถœ๋ ฅ์ด ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 100๋งŒ ๋ผ์ธ์˜ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” "nft list ruleset" ๋ช…๋ น์˜ ์‹คํ–‰ ์‹œ๊ฐ„์€ 3.049์ดˆ์ด๊ณ , nat ๋ฐ filter ํ…Œ์ด๋ธ”("nft list table nat", "nft list table filter")๋งŒ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. 1.969์ดˆ์™€ 0.697์ดˆ๋กœ ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค.
  • ๋Œ€๊ทœ๋ชจ ์„ธํŠธ ๋ชฉ๋ก๊ณผ ๋งต ๋ชฉ๋ก์ด ์žˆ๋Š” ๊ทœ์น™์„ ์ฒ˜๋ฆฌํ•  ๋•Œ "--terse" ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ ์ฟผ๋ฆฌ ์‹คํ–‰์ด ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • netdev ์ฒด์ธ(์†ก์‹  ํ›„ํฌ)์˜ ์†ก์‹  ํ•ธ๋“ค๋Ÿฌ์™€ ๋™์ผํ•œ ์ˆ˜์ค€์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” "์†ก์‹ " ์ฒด์ธ์˜ ํŠธ๋ž˜ํ”ฝ์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ปค๋„ ๋„คํŠธ์›Œํฌ ์Šคํƒ์œผ๋กœ๋ถ€ํ„ฐ ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ. ํ…Œ์ด๋ธ” netdev ํ•„ํ„ฐ { ์ฒด์ธ ์†ก์‹  { ์œ ํ˜• ํ•„ํ„ฐ ํ›„ํฌ ์†ก์‹  ์žฅ์น˜ = { eth0, eth1 } ์šฐ์„  ์ˆœ์œ„ 0; ๋ฉ”ํƒ€ ์šฐ์„ ์ˆœ์œ„ ์„ค์ • ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • ์ง€์ •๋œ ์˜คํ”„์…‹์—์„œ ํŒจํ‚ท ํ—ค๋”์™€ ์ฝ˜ํ…์ธ ์˜ ๋ฐ”์ดํŠธ๋ฅผ ์ผ์น˜์‹œํ‚ค๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. # nft ์ถ”๊ฐ€ ๊ทœ์น™ xy @ih,32,32 0x14000000 ์นด์šดํ„ฐ # nft ์ถ”๊ฐ€ ๊ทœ์น™ xy @ih,32,32 set 0x14000000 ์นด์šดํ„ฐ

์ถœ์ฒ˜ : opennet.ru

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