BSD Router ํ”„๋กœ์ ํŠธ 1.97 ๋ฐฐํฌํŒ ์ถœ์‹œ

FreeNAS ๋ฐฐํฌํŒ์˜ ์ฐฝ์‹œ์ž์ธ Olivier Cochard-Labbรฉ๋Š” ๋„์ž… ๋œ ์ „๋ฌธ ๋ฐฐํฌ ํ‚คํŠธ ์ถœ์‹œ BSD ๋ผ์šฐํ„ฐ ํ”„๋กœ์ ํŠธ 1.97 (BSDRP), ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ FreeBSD 12.1๋กœ ์—…๋ฐ์ดํŠธํ•œ ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฐํฌํŒ์€ RIP, OSPF, BGP ๋ฐ PIM๊ณผ ๊ฐ™์€ ๊ด‘๋ฒ”์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜๋Š” ์†Œํ˜• ์†Œํ”„ํŠธ์›จ์–ด ๋ผ์šฐํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ๋Š” Cisco๋ฅผ ์—ฐ์ƒ์‹œํ‚ค๋Š” CLI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ช…๋ น์ค„ ๋ชจ๋“œ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ถ„ํฌ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋‹ค. amd64 ๋ฐ i386 ์•„ํ‚คํ…์ฒ˜์šฉ ์–ด์…ˆ๋ธ”๋ฆฌ(์„ค์น˜ ์ด๋ฏธ์ง€ ํฌ๊ธฐ 140MB)

FreeBSD 12.1-STABLE๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ์ƒˆ ๋ฒ„์ „ ๋†€๋ž„ ๋งŒํ•œ Intel ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ๋กœ๋”ฉ์„ โ€‹โ€‹ํ™œ์„ฑํ™”ํ•˜๊ณ  wireguard, Mellanox ํŽŒ์›จ์–ด, vim-tiny, mrtparse, nrpe3, perl, bash ๋ฐ frr7-pythontools ํŒจํ‚ค์ง€๋Š” ๋ฌผ๋ก  if_cxgbev(Chelsio Ethernet VF) ๋ฐ if_qlxgb(Ethernet QLogic 3200) ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ICMP ๋ฆฌ๋””๋ ‰์…˜์˜ ์˜ฌ๋ฐ”๋ฅธ ์ฐจ๋‹จ์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „์—๋Š” easy-rsa 3.0.7, FRR 7.4, pmacct 1.7.4, openvpn 2.4.9 ๋ฐ Strongswan 5.8.4๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. IPv6์šฉ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ(pim6-tools, pim6dd, pim6sd)๋Š” ํŒจํ‚ค์ง€์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.

๋ถ„ํฌ์˜ ์ฃผ์š” ํŠน์ง•:

  • ์ด ํ‚คํŠธ์—๋Š” ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํŒจํ‚ค์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. FRR๋ผ์šฐํŒ… (Quagga ํฌํฌ)๋Š” BGP, RIP, RIPng(IPv6), OSPF v2, OSFP v3(IPv6), ISIS ๋ฐ ์ƒˆ BGP, RIP, RIPng(IPv6), OSPF v2 ๋ฐ OSFP v3(IPv6) ์ง€์›
  • ์ด ๋ฐฐํฌํŒ์€ ์‹ค์ œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”(FIB)์„ ๋ณ‘๋ ฌ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ์—๋Š” SNMP(bsnmp-ucd)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Netflow ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋กœ ํŠธ๋ž˜ํ”ฝ ๋ฐ์ดํ„ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด NetPIPE, iperf, netblast, netsend ๋ฐ netreceive์™€ ๊ฐ™์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ ํ†ต๊ณ„๋ฅผ ์ถ•์ ํ•˜๊ธฐ ์œ„ํ•ด ng_netflow๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • VRRP ํ”„๋กœํ† ์ฝœ(Virtual Router Redundancy Protocol, RFC 3768)์„ ๊ตฌํ˜„ํ•œ freevrrpd์™€ CARP ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜๋Š” ucarp๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๊ฐ€์ƒ MAC ์ฃผ์†Œ๋ฅผ ํ™œ์„ฑ ์„œ๋ฒ„์— ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ๋‚ด๊ฒฐํ•จ์„ฑ ๋ผ์šฐํ„ฐ์˜ ์ž‘๋™์„ ๊ตฌ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐฑ์—… ์„œ๋ฒ„๋กœ ์ด๋™๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ชจ๋“œ์—์„œ๋Š” ๋ถ€ํ•˜๊ฐ€ ๋‘ ์„œ๋ฒ„์— ๋ถ„์‚ฐ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ๋ผ์šฐํ„ฐ๊ฐ€ ๋‘ ๋ฒˆ์งธ ๋ผ์šฐํ„ฐ์˜ ๋ถ€ํ•˜๋ฅผ ์ธ๊ณ„๋ฐ›๊ณ  ๋‘ ๋ฒˆ์งธ ๋ผ์šฐํ„ฐ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ธ๊ณ„๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • MPD PPTP, PPPoE ๋ฐ L2TP๋ฅผ ์ง€์›ํ•˜๋Š” (๋‹ค์ค‘ ๋งํฌ PPP ๋ฐ๋ชฌ)
  • ๋Œ€์—ญํญ์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด IPFW + dummynet์˜ ์…ฐ์ดํผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ng_car;
  • ์ด๋”๋„ท์˜ ๊ฒฝ์šฐ VLAN(802.1q) ์ž‘์—…, ๋งํฌ ์ง‘๊ณ„ ๋ฐ Rapid Spanning Tree Protocol(802.1w)์„ ์‚ฌ์šฉํ•œ ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€ ์‚ฌ์šฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉ Monit;
  • VPN ์ง€์› ์ œ๊ณต: GRE, GIF, IPSec(strongswan์ด ํฌํ•จ๋œ IKEv1 ๋ฐ IKEv2), OpenVPN ๋ฐ Wireguard
  • tayga ๋ฐ๋ชฌ์„ ์‚ฌ์šฉํ•œ NAT64 ์ง€์› ๋ฐ IPv6-IPv4 ํ„ฐ๋„์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›
  • ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜๋ ค๋ฉด pkgng ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • ์—ฌ๊ธฐ์—๋Š” DHCP ์„œ๋ฒ„์™€ isc-dhcp ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฌผ๋ก  ssmtp ๋ฉ”์ผ ์„œ๋ฒ„๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • SSH, ์ง๋ ฌ ํฌํŠธ, ํ…”๋„ท ๋ฐ ๋กœ์ปฌ ์ฝ˜์†”์„ ํ†ตํ•œ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํ‚คํŠธ์—๋Š” tmux ์œ ํ‹ธ๋ฆฌํ‹ฐ(BSD ์•„๋‚ ๋กœ๊ทธ ํ™”๋ฉด)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ FreeBSD ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ ๋ถ€ํŒ… ์ด๋ฏธ์ง€ ๋‚˜๋…ธBSD;
  • ์‹œ์Šคํ…œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋ž˜์‹œ ์นด๋“œ์— ๋‘ ๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ํŒŒํ‹ฐ์…˜์— ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์žฌ๋ถ€ํŒ… ํ›„ ์ด ํŒŒํ‹ฐ์…˜์ด ํ™œ์„ฑํ™”๋˜๊ณ  ๊ธฐ๋ณธ ํŒŒํ‹ฐ์…˜์€ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค( ํŒŒํ‹ฐ์…˜์€ ์ฐจ๋ก€๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค). ์„ค์น˜๋œ ์—…๋ฐ์ดํŠธ์—์„œ ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜๋ฉด ์‹œ์Šคํ…œ์˜ ์ด์ „ ์ƒํƒœ๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ํŒŒ์ผ์—๋Š” ์ •๋ณด์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” sha256 ์ฒดํฌ์„ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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