๊ธ์, "์ฌ๋์ ๋น ์ก๋ค"๋ ๋ง์ ๊ณผ์ฅ๋ ๊ฒ์ ๋๋ค. ์คํ๋ ค "๊ณต์กดํ ์ ์๋ค".
์ฌ๋ฌ๋ถ ๋ชจ๋ ์์๋ค์ํผ, 16๋ 2018์ 10์ผ๋ถํฐ Roskomnadzor๋ ๋๋ฉ์ธ ์ด๋ฆ์ ํตํฉ ๋ ์ง์คํธ๋ฆฌ, ์ธํฐ๋ท ์ฌ์ดํธ ํ์ด์ง์ ๋ํ ํฌ์ธํฐ ๋ฐ ๋ค์์ ํ์ฉํ๋ ๋คํธ์ํฌ ์ฃผ์๋ฅผ ์ถ๊ฐํ์ฌ ๋คํธ์ํฌ์ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๋งค์ฐ ๊ด๋ฒ์ํ๊ฒ ์ฐจ๋จํด ์์ต๋๋ค. ๋ฌ์์ ์ฐ๋ฐฉ์์ ์ ํฌ๊ฐ ๊ธ์ง๋ ์ ๋ณด๊ฐ ํฌํจ๋ ์ธํฐ๋ท ์ฌ์ดํธ๋ฅผ ์๋ณํฉ๋๋ค."(ํ ์คํธ์์ - ๋ฑ๋ก๋ง) /XNUMX ๋๋๋ก. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฌ์์ ์๋ฏผ๊ณผ ๊ธฐ์ ์ ํ์ํ ์์ ํ ๋ฒ์ ์์์ ๋ํ ์ ๊ทผ๊ถ์ ์์คํ์ฌ ๊ณ ํต์ ๊ฒช๊ณ ์์ต๋๋ค.
Habrรฉ์ ๊ธฐ์ฌ ์ค ํ๋์ ๋ํ ๋๊ธ์์ ์ฐํ ๊ณํ์ ์ธ์ฐ๋ ๋ฐ ํผํด์๋ค์ ๋์ธ ์ค๋น๊ฐ ๋์๋ค๊ณ ๋งํ ํ ๋ช๋ช ์ฌ๋๋ค์ด ๋์๊ฒ ์ฐ๋ฝํ์ฌ ๋์์ ์์ฒญํ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ํจ๊ณผ๊ฐ ์์์ ๋ ๊ทธ๋ค ์ค ํ ๋ช ์ด ๊ธฐ์ฌ์์ ๊ธฐ์ ์ ์ค๋ช ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ์ฑํ๋ฉด์ ๋๋ ์ฌ์ดํธ์์ ์นจ๋ฌต์ ๊นจ๊ณ ํ๋ก์ ํธ์ ํ์ด์ค๋ถ ๊ฒ์๋ฌผ ์ฌ์ด์ ์ค๊ฐ ๋ด์ฉ์ ํ ๋ฒ ์์ฑํด ๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ๋ธ๋ผํฌ์คํธ. ๊ฒฐ๊ณผ๊ฐ ๋น์ ์์ ์์ต๋๋ค.
์ฑ ์ ๋ถ์ธ
๋ฌ์์ ์ฐ๋ฐฉ ์ํ ์์ ๊ธ์ง๋ ์ ๋ณด์ ๋ํ ์ก์ธ์ค ์ฐจ๋จ์ ์ฐํํ๋ ๋ฐฉ๋ฒ์ ๊ฒ์ํ๋ ๊ฒ์ ํฉ๋ฒ์ ์ด์ง ์๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ์ฌ์ ๋ชฉ์ ์ ํด๋น ์ํ ์์ ํ์ฉ๋๋ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์๋ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๊ตฐ๊ฐ์ ํ๋์ผ๋ก ์ธํด ๊ทํ์ ์๋น์ค ์ ๊ณต์๋ฅผ ํตํด ์ง์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ฌ์ ์กฐ์น๋ก ์ธํด ์ป์ ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ ๋ถํํ ๋ถ์์ฉ์ด๋ฉฐ ๊ฒฐ์ฝ ๊ธฐ์ฌ์ ๋ชฉ์ ์ด ์๋๋๋ค.
๋ํ ์ ๋ ์ฃผ๋ก ์ง์ , ์ง์ , ์ํ ๊ฒฝ๋ก์ ๋ฐ๋ผ ๋คํธ์ํฌ ์ค๊ณ์์ด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ๊ณผ Linux๋ ์ ์ ๊ฐ์ ์ด ์๋๋๋ค. ๋ฐ๋ผ์ ๋ฌผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ๋ ์ ์์ฑํ ์ ์๊ณ VPS์ ๋ณด์ ๋ฌธ์ ๋ฅผ ๋ ๊น์ด ์๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทํ์ ์ ์์ด ์ถฉ๋ถํ ์์ธํ๋ค๋ฉด ๊ฐ์ฌ์ ๋ง์์ผ๋ก ๋ฐ์๋ค์ฌ์ง ๊ฒ์ ๋๋ค. ๊ธฐ์ฌ ํ ์คํธ์ ํด๋น ์ ์์ ์ถ๊ฐํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
TL; DR
๋ ์ง์คํธ๋ฆฌ ๋ณต์ฌ๋ณธ๊ณผ BGP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ํฐ๋์ ํตํด ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์๋ํํฉ๋๋ค. ๋ชฉํ๋ ์ฐจ๋จ๋ ๋ฆฌ์์ค๋ก ํฅํ๋ ๋ชจ๋ ํธ๋ํฝ์ ํฐ๋๋ก ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์ต์ํ์ ์ค๋ช , ๋๋ถ๋ถ ๋จ๊ณ๋ณ ์ง์นจ.
์ด๋ฅผ ์ํด ๋ฌด์์ด ํ์ํฉ๋๊น?
๋ถํํ๋ ์ด ๊ฒ์๋ฌผ์ ๋ชจ๋ ์ฌ๋์ ์ํ ๊ฒ์ด ์๋๋๋ค. ์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์์๋ฅผ ์กฐํฉํด์ผ ํฉ๋๋ค.
- ์ฐจ๋จ ํ๋ ์ธ๋ถ ์ด๋๊ฐ์ Linux ์๋ฒ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๋๋ ์ ์ด๋ ๊ทธ๋ฌํ ์๋ฒ๋ฅผ ์์ํ๋ ค๋ ์๊ตฌ - ํ์ฌ ๋น์ฉ์ ์ฐ๊ฐ $ 9์ด๋ฉฐ ์๋ง๋ ๊ทธ ์ดํ์ผ ์๋ ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ๋ณ๋์ VPN ํฐ๋์ด ์๋ ๊ฒฝ์ฐ์๋ ์ ํฉํ๋ฉฐ, ๊ทธ๋ฌ๋ฉด ์๋ฒ๊ฐ ์ฐจ๋จ ํ๋ ๋ด๋ถ์ ์์นํ ์ ์์ต๋๋ค.
- ๋ผ์ฐํฐ๋ ๋ค์์ ์ํํ ์ ์์ ๋งํผ ๋๋ํด์ผ ํฉ๋๋ค.
- ์ํ๋ ๋ชจ๋ VPN ํด๋ผ์ด์ธํธ(์ ๋ OpenVPN์ ์ ํธํ์ง๋ง PPTP, L2TP, GRE+IPSec ๋ฐ ํฐ๋ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ ๊ธฐํ ์ต์ ์ด ๋ ์ ์์ต๋๋ค)
- BGPv4 ํ๋กํ ์ฝ. ์ด๋ SOHO์ ๊ฒฝ์ฐ Mikrotik ๋๋ Quagga ๋๋ Bird๋ฅผ ์ค์นํ ์ ์๋ OpenWRT/LEDE/์ ์ฌํ ์ฌ์ฉ์ ์ ์ ํ์จ์ด๊ฐ ์๋ ๋ผ์ฐํฐ์ผ ์ ์์์ ์๋ฏธํฉ๋๋ค. PC ๋ผ์ฐํฐ ์ฌ์ฉ๋ ๊ธ์ง๋์ง ์์ต๋๋ค. ๊ธฐ์ ์ ๊ฒฝ์ฐ BGP ์ง์์ ๋ํด์๋ ๊ฒฝ๊ณ ๋ผ์ฐํฐ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- BGP๋ฅผ ํฌํจํ Linux ์ฌ์ฉ ๋ฐ ๋คํธ์ํฌ ๊ธฐ์ ์ ๋ํด ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. ์๋๋ฉด ์ ์ด๋ ๊ทธ ์์ด๋์ด๋ฅผ ์ป๊ณ ์ถ์ต๋๋ค. ์ด๋ฒ์๋ ๊ทธ ๊ด๋ํจ์ ๋ฐ์๋ค์ผ ์ค๋น๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์, ๋น์ ์ด ์ดํดํ ์ ์๋ ๋ช ๊ฐ์ง ์ฌํญ์ ์ค์ค๋ก ๊ณต๋ถํด์ผ ํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ฌผ๋ก ๊ตฌ์ฒด์ ์ธ ์ง๋ฌธ์ ๋๊ธ๋ก ๋ต๋ณํด๋๋ฆด ์์ ์ด๋ฉฐ, ์ ํผ์๋ง ๋ต๋ณ์ ๋๋ฆด ๊ฐ๋ฅ์ฑ์ ๋ฎ์ผ๋ ํธํ๊ฒ ์ง๋ฌธํด ์ฃผ์ธ์.
์์ ์ ์ฌ์ฉ๋ ๋ด์ฉ
- ๋ฑ๋ก๋ถ ์ฌ๋ณธ
https://github.com/zapret-info/z-i VPS-์ฐ๋ถํฌ 16.04 - ๋ผ์ฐํ
์๋น์ค -
์ 1.6.3 - ๋ผ์ฐํฐ -
๋ฏธํฌ๋กํฑ ํ ac - ์์
ํด๋ - ๋ฃจํธ๋ก ์์
ํ๊ณ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๋ชจ๋ ํญ๋ชฉ์ ๋ฃจํธ ํ ํด๋์ ์ ์ฅ๋ฉ๋๋ค. ๊ฐ๊ธฐ:
- /root/blacklist - ์ปดํ์ผ ์คํฌ๋ฆฝํธ๊ฐ ์๋ ์์ ํด๋
- /root/zi - github์ ๋ ์ง์คํธ๋ฆฌ ๋ณต์ฌ๋ณธ
- /etc/bird - ํ์ค ์กฐ๋ฅ ์๋น์ค ์ค์ ํด๋
- ๋ผ์ฐํ ์๋ฒ ๋ฐ ํฐ๋ ์ข ๋ฃ ์ง์ ์ด ์๋ VPS์ ์ธ๋ถ IP ์ฃผ์๋ก 194.165.22.146, ASN 64998์ ํ์ฉํฉ๋๋ค. ๋ผ์ฐํฐ์ ์ธ๋ถ IP ์ฃผ์ - 81.177.103.94, ASN 64999
- ํฐ๋ ๋ด๋ถ์ IP ์ฃผ์๋ ๊ฐ๊ฐ 172.30.1.1 ๋ฐ 172.30.1.2์ ๋๋ค.
๋ฌผ๋ก ๋ค๋ฅธ ๋ผ์ฐํฐ, ์ด์ ์ฒด์ ๋ฐ ์ํํธ์จ์ด ์ ํ์ ์ฌ์ฉํ์ฌ ํด๋น ๋ ผ๋ฆฌ์ ๋ง๊ฒ ์๋ฃจ์ ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
๊ฐ๋จํ - ์๋ฃจ์ ์ ๋ ผ๋ฆฌ
- ์ค๋น ์กฐ์น
- VPS ๋ฐ๊ธฐ
- ๋ผ์ฐํฐ์์ VPS๊น์ง ํฐ๋์ ์ฌ๋ฆฝ๋๋ค.
- ๋ ์ง์คํธ๋ฆฌ ์ฌ๋ณธ ํ๋ณด ๋ฐ ์ ๊ธฐ์ ์ ๋ฐ์ดํธ
- ๋ผ์ฐํ ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
- ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ์๋น์ค์ ๋ํ ๊ณ ์ ๊ฒฝ๋ก ๋ชฉ๋ก์ ๋ง๋ญ๋๋ค.
- ๋ผ์ฐํฐ๋ฅผ ์๋น์ค์ ์ฐ๊ฒฐํ๊ณ ํฐ๋์ ํตํด ๋ชจ๋ ํธ๋ํฝ์ ์ ์กํ๋๋ก ์ค์ ํฉ๋๋ค.
์ค์ ๊ฒฐ์
์ค๋น ์กฐ์น
๋ฐฉ๋ํ ๋คํธ์ํฌ์๋ ๋งค์ฐ ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก VPS๋ฅผ ์ ๊ณตํ๋ ๋ง์ ์๋น์ค๊ฐ ์์ต๋๋ค. ์ง๊ธ๊น์ง 9๋ฌ๋ฌ/๋ ์ต์ ์ ์ฐพ์์ ์ฌ์ฉํ๊ณ ์๋๋ฐ ๊ตณ์ด ์ ๊ฒฝ์ฐ์ง ์๋๋ผ๋ ๊ตฌ์๊ตฌ์ 1E/์ ์ต์ ์ด ๋ง์ด ์์ต๋๋ค. VPS๋ฅผ ์ ํํ๋ ๋ฌธ์ ๋ ์ด ๊ธฐ์ฌ์ ๋ฒ์๋ฅผ ํจ์ฌ ๋ฒ์ด๋๋ฏ๋ก ์ด์ ๋ํด ๋๊ตฐ๊ฐ์๊ฒ ๋ช ํํ์ง ์์ ๋ด์ฉ์ด ์์ผ๋ฉด ์๊ฒฌ์ ํตํด ๋ฌธ์ํ์ญ์์ค.
๋ผ์ฐํ ์๋น์ค๋ฟ๋ง ์๋๋ผ ํฐ๋ ์ข ๋ฃ์๋ VPS๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ํฐ๋์ ๋์ด๊ณ ๊ฑฐ์ ๋ช ๋ฐฑํ๊ฒ ์ด์ ๋ํด NAT๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋คํธ์ํฌ์๋ ์ด๋ฌํ ์์ ์ ๋ํ ๋ง์ ์ง์นจ์ด ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์๋ ๋ฐ๋ณตํ์ง ์๊ฒ ์ต๋๋ค. ์ด๋ฌํ ํฐ๋์ ์ฃผ์ ์๊ตฌ ์ฌํญ์ VPS๋ฅผ ํฅํ ํฐ๋์ ์ง์ํ๋ ๋ณ๋์ ์ธํฐํ์ด์ค๋ฅผ ๋ผ์ฐํฐ์ ์์ฑํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ๋๋ VPN ๊ธฐ์ ์ ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด tun ๋ชจ๋์ OpenVPN์ ๊ด์ฐฎ์ต๋๋ค.
๋ ์ง์คํธ๋ฆฌ ์ฌ๋ณธ ๋ฐ๊ธฐ
Jabrayil์ด ๋งํ๋ฏ์ด "์ฐ๋ฆฌ๋ฅผ ๋ฐฉํดํ๋ ์ฌ๋์ ์ฐ๋ฆฌ๋ฅผ ๋์ธ ๊ฒ์ ๋๋ค." RKN์ ๊ธ์ง๋ ๋ฆฌ์์ค์ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์์ผ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ฃ์ ์ ๋๋ค. ์ฐ๋ฆฌ๋ github์์ ๋ ์ง์คํธ๋ฆฌ ์ฌ๋ณธ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ Linux ์๋ฒ๋ก ์ด๋ํ์ฌ root'a(sudo su-) ์์ง ์ค์น๋์ง ์์ ๊ฒฝ์ฐ git์ ์ค์นํฉ๋๋ค.
apt install git
ํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ฌ ๋ ์ง์คํธ๋ฆฌ ์ฌ๋ณธ์ ๊บผ๋ด์ญ์์ค.
cd ~ && git clone --depth=1 https://github.com/zapret-info/z-i
ํฌ๋ก ์ ๋ฐ์ดํธ๋ฅผ ์ค์ ํฉ๋๋ค(20๋ถ๋ง๋ค ์ ๋ฐ์ดํธํ์ง๋ง ๊ด์ฌ ์๋ ๊ฐ๊ฒฉ์ ์ ํํ ์ ์์ต๋๋ค). ์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ crontab์ -e ๊ทธ๋ฆฌ๊ณ ๋ค์ ์ค์ ์ถ๊ฐํ์ธ์:
*/20 * * * * cd ~/z-i && git pull && git gc
๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ ํ ๋ผ์ฐํ ์๋น์ค์ฉ ํ์ผ์ ์์ฑํ ํํฌ๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. ์ด๋ฅผ ์ํด ํ์ผ์ ๋ง๋ญ๋๋ค. /root/zi/.git/hooks/post-merge ๋ค์ ๋ด์ฉ์ผ๋ก:
#!/usr/bin/env bash
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
check_run dump.csv "/root/blacklist/makebgp"
์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ์ ์์ง ๋ง์ธ์
chmod +x /root/z-i/.git/hooks/post-merge
ํํฌ์์ ์ฐธ์กฐํ๋ makebgp ์คํฌ๋ฆฝํธ๋ ๋์ค์ ์์ฑ๋ฉ๋๋ค.
๋ผ์ฐํ ์๋น์ค ์ค์น ๋ฐ ๊ตฌ์ฑ
์๋ฅผ ์ค์นํฉ๋๋ค. ๋ถํํ๊ฒ๋ ํ์ฌ ์ฐ๋ถํฌ ์ ์ฅ์์ ์ถ์๋ ์ ๋ฒ์ ์ ์์กฐ์ ๋ฐฐ์ค๋ฌผ๊ณผ ์ ์ ๋๊ฐ ๋น์ทํ๋ฏ๋ก ๋จผ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๊ณต์ PPA๋ฅผ ์์คํ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
add-apt-repository ppa:cz.nic-labs/bird
apt update
apt install bird
๊ทธ๋ฐ ๋ค์ IPv6์ฉ ์๋ฅผ ์ฆ์ ๋นํ์ฑํํฉ๋๋ค. ์ด ์ค์น์์๋ ํ์ํ์ง ์์ต๋๋ค.
systemctl stop bird6
systemctl disable bird6
๋ค์์ ์ ์๋น์ค์ ๋ํ ์ต์ํ์ ๊ตฌ์ฑ ํ์ผ์ ๋๋ค(/etc/bird/bird.conf), ์ด๋ ์ฐ๋ฆฌ์๊ฒ ์ถฉ๋ถํฉ๋๋ค. (๊ทธ๋ฆฌ๊ณ ๋ค์ ํ ๋ฒ ์์ ์ ํ์์ ๋ง๊ฒ ์์ด๋์ด๋ฅผ ๊ฐ๋ฐํ๊ณ ์กฐ์ ํ๋ ๊ฒ์ ๊ธ์งํ๋ ์ฌ๋์ ์๋ค๋ ์ ์ ๋ค์ ํ ๋ฒ ์๊ธฐ์์ผ๋๋ฆฝ๋๋ค.)
log syslog all;
router id 172.30.1.1;
protocol kernel {
scan time 60;
import none;
# export all; # Actually insert routes into the kernel routing table
}
protocol device {
scan time 60;
}
protocol direct {
interface "venet*", "tun*"; # Restrict network interfaces it works with
}
protocol static static_bgp {
import all;
include "pfxlist.txt";
#include "iplist.txt";
}
protocol bgp OurRouter {
description "Our Router";
neighbor 81.177.103.94 as 64999;
import none;
export where proto = "static_bgp";
local as 64998;
passive off;
multihop;
}
๋ผ์ฐํฐ ID - ์๊ฐ์ ์ผ๋ก IPv4 ์ฃผ์์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ ๋ผ์ฐํฐ ์๋ณ์์ ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ IPv32 ์ฃผ์ ํ์์ 4๋นํธ ์ซ์์ผ ์ ์์ง๋ง ์ฅ์น์ IPv4 ์ฃผ์(์ด ๊ฒฝ์ฐ VPS)๋ฅผ ๊ฑฐ๊ธฐ์ ์ง์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํ๋กํ ์ฝ ์ง์ ์ ๋ผ์ฐํ ํ๋ก์ธ์ค์ ํจ๊ป ์๋ํ ์ธํฐํ์ด์ค๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด ์์์๋ ์ด๋ฆ์ ๋ํ ๋ช ๊ฐ์ง ์๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๊ฐ๋จํ ์ค์ ์ญ์ ํ ์๋ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์๋ฒ๋ IPv4 ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์ธํฐํ์ด์ค๋ฅผ ์์ ํฉ๋๋ค.
ํ๋กํ ์ฝ ์ ์ ์ ๋์ค์ ๋ฐํํ๊ธฐ ์ํด ํ์ผ์์ ์ ๋์ฌ ๋ฐ IP ์ฃผ์(๋ฌผ๋ก /32 ์ ๋์ฌ) ๋ชฉ๋ก์ ๋ก๋ํ๋ ๋ง๋ฒ์ ๋๋ค. ์ด ๋ชฉ๋ก์ ์ถ์ฒ๋ ์๋์์ ๋ ผ์๋ฉ๋๋ค. IP ์ฃผ์ ๋ก๋ฉ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ์ ์ฒ๋ฆฌ๋์ด ์๋๋ฐ, ๊ทธ ์ด์ ๋ ์ ๋ก๋๋์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋น๊ต๋ฅผ ์ํด ๊ธฐ์ฌ ์์ฑ ๋น์์๋ ์ ๋์ฌ ๋ชฉ๋ก์ 78์ค, IP ์ฃผ์ ๋ชฉ๋ก์ 85898์ค์ด ์๋๋ฐ ์ ๋์ฌ ๋ชฉ๋ก์์๋ง ์์ํ๊ณ ๋๋ฒ๊ทธํ๊ณ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ผ์ฐํฐ๋ฅผ ์คํํ ํ ๋์ค์ IP ๋ก๋ฉ์ ํ์ฑํํ๋ ค๋ฉด ๊ทธ๋ค ๋ชจ๋๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ 85๊ฐ ํญ๋ชฉ์ ์ฝ๊ฒ ์ํํ ์ ์๋ ๊ฒ์ ์๋๋๋ค.
ํ๋กํ ์ฝ bgp๋ ์ค์ ๋ก ๋ผ์ฐํฐ์ bgp ํผ์ด๋ง์ ์ค์ ํฉ๋๋ค. ip-address๋ ๋ผ์ฐํฐ์ ์ธ๋ถ ์ธํฐํ์ด์ค ์ฃผ์(๋๋ ๋ผ์ฐํฐ ์ธก์ ํฐ๋ ์ธํฐํ์ด์ค ์ฃผ์)์ด๊ณ , 64998 ๋ฐ 64999๋ ์์จ ์์คํ ์ ๋ฒํธ์ ๋๋ค. ์ด ๊ฒฝ์ฐ 16๋นํธ ์ซ์ ํ์์ผ๋ก ํ ๋นํ ์ ์์ง๋ง RFC6996 - 64512-65534์ ์ ์๋ ๊ฐ์ธ ๋ฒ์์ AS ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(32๋นํธ ASN ํ์์ด ์์ง๋ง ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๋ ํ์คํ ๊ณผ์์ ๋๋ค). ์ค๋ช ๋ ๊ตฌ์ฑ์์๋ ๋ผ์ฐํ ์๋น์ค์ ๋ผ์ฐํฐ์ ์์จ ์์คํ ๋ฒํธ๊ฐ ๋ฌ๋ผ์ผ ํ๋ eBGP ํผ์ด๋ง์ ์ฌ์ฉํฉ๋๋ค.
๋ณด์๋ค์ํผ ์๋น์ค๋ ๋ผ์ฐํฐ์ IP ์ฃผ์๋ฅผ ์์์ผ ํ๋ฏ๋ก ๋์ ์ด๊ฑฐ๋ ๋ผ์ฐํ ํ ์ ์๋ ๊ฐ์ธ(RFC1918) ๋๋ ๊ณต์ (RFC6598) ์ฃผ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ธ๋ถ ์ธํฐํ์ด์ค์์ ํผ์ด๋ง์ ์ฌ๋ฆด ์ ์๋ ์ต์ ์ด ์์ต๋๋ค. ํ์ง๋ง ์๋น์ค๋ ํฐ๋ ๋ด๋ถ์์๋ ๊ณ์ ์๋ํฉ๋๋ค.
๋ํ ํ๋์ ์๋น์ค๋ก๋ถํฐ์ ๊ฒฝ๋ก๊ฐ ํฌํจ๋ ์ฌ๋ฌ ๋ค๋ฅธ ๋ผ์ฐํฐ๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ ๊ฒ๋ ๋งค์ฐ ํฌ๋ช ํฉ๋๋ค. ์ด์์ IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ ํ๋กํ ์ฝ bgp ์น์ ์ ๋ณต์ฌํ์ฌ ์ค์ ์ ๋ณต์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์์์์ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ํฐ๋ ์ธ๋ถ ํผ์ด๋ง ์ค์ ์ ๋ณด์ฌ์ฃผ๋ ์ด์ ์ ๋๋ค. ๊ทธ์ ๋ฐ๋ผ ์ค์ ์์ IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ์ฌ ํฐ๋๋ก ์ ๊ฑฐํ๋ ๊ฒ์ ์ด๋ ต์ง ์์ต๋๋ค.
๋ผ์ฐํ ์๋น์ค์ ๋ํ ๋ ์ง์คํธ๋ฆฌ ์ฒ๋ฆฌ
์ด์ ์ค์ ๋ก ํ๋กํ ์ฝ ์ ์ ์ ์ด์ ๋จ๊ณ์์ ์ธ๊ธํ ์ ๋์ฌ ๋ฐ IP ์ฃผ์ ๋ชฉ๋ก์ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ ์ง์คํธ๋ฆฌ ํ์ผ์ ๊ฐ์ ธ์ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ํ์ผ์ ๋ง๋ญ๋๋ค. /๋ฃจํธ/๋ธ๋๋ฆฌ์คํธ/makebgp
#!/bin/bash
cut -d";" -f1 /root/z-i/dump.csv| tr '|' 'n' | tr -d ' ' > /root/blacklist/tmpaddr.txt
cat /root/blacklist/tmpaddr.txt | grep / | sed 's_.*_route & reject;_' > /etc/bird/pfxlist.txt
cat /root/blacklist/tmpaddr.txt | sort | uniq | grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}" | sed 's_.*_route &/32 reject;_' > /etc/bird/iplist.txt
/etc/init.d/bird reload
logger 'bgp list compiled'
์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ์ ์์ง ๋ง์ธ์
chmod +x /root/blacklist/makebgp
์ด์ ์๋์ผ๋ก ์คํํ๊ณ /etc/bird์์ ํ์ผ์ ๋ชจ์์ ๊ด์ฐฐํ ์ ์์ต๋๋ค.
์ด์ ๋จ๊ณ์์ ์์ง ์กด์ฌํ์ง ์๋ ํ์ผ์ ๊ฒ์ํ๋๋ก ์ ์ํ๊ธฐ ๋๋ฌธ์ ํ์ฌ๋ก์๋ Bird๊ฐ ์๋ํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์คํํ๊ณ ์์์ ์ ์ดํฉ๋๋ค.
systemctl start bird
birdc show route
๋ ๋ฒ์งธ ๋ช ๋ น์ ์ถ๋ ฅ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ 80๊ฐ์ ํญ๋ชฉ์ด ํ์๋์ด์ผ ํฉ๋๋ค(์ด๋ ํ์ฌ๋ก์๋ ์ค์ ์ ๋ชจ๋ ๊ฒ์ด ์ฐจ๋จ ๋คํธ์ํฌ์์ ILV์ ์ด์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค).
54.160.0.0/12 unreachable [static_bgp 2018-04-19] * (200)
ํ
birdc show protocol
์๋น์ค ๋ด์ ํ๋กํ ์ฝ ์ํ๋ฅผ ํ์ํฉ๋๋ค. ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์ฑํ ๋๊น์ง(๋ค์ ๋จ๋ฝ ์ฐธ์กฐ) OurRouter ํ๋กํ ์ฝ์ ์์ ์ํ(์ฐ๊ฒฐ ๋๋ ํ์ฑ ๋จ๊ณ)์ ์์ผ๋ฉฐ, ์ฑ๊ณต์ ์ผ๋ก ์ฐ๊ฒฐ๋๋ฉด ์๋ ์ํ(์ค์ ๋จ๊ณ)๋ก ์ ํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ด ์์คํ ์์ ์ด ๋ช ๋ น์ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
BIRD 1.6.3 ready.
name proto table state since info
kernel1 Kernel master up 2018-04-19
device1 Device master up 2018-04-19
static_bgp Static master up 2018-04-19
direct1 Direct master up 2018-04-19
RXXXXXx1 BGP master up 13:10:22 Established
RXXXXXx2 BGP master up 2018-04-24 Established
RXXXXXx3 BGP master start 2018-04-22 Connect Socket: Connection timed out
RXXXXXx4 BGP master up 2018-04-24 Established
RXXXXXx5 BGP master start 2018-04-24 Passive
๋ผ์ฐํฐ ์ฐ๊ฒฐ
๋ชจ๋๊ฐ ์ด๋ฏธ ์ด ์ ๋ฐ์ ์ฝ๋ ๋ฐ ์ง์ณค์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ํ์ ๋ด์ญ์์ค. ๋์ด ๊ฐ๊น์ ์ต๋๋ค. ๋ํ ์ด ์น์ ์์๋ ๋จ๊ณ๋ณ ์ง์นจ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ ์ ์กฐ์ ์ฒด๋ง๋ค ๋ค๋ฅผ ์ ์์ต๋๋ค.
ํ์ง๋ง ๋ช ๊ฐ์ง ์๋ฅผ ๋ณด์ฌ ๋๋ฆด ์ ์์ต๋๋ค. ์ฃผ์ ๋ ผ๋ฆฌ๋ BGP ํผ์ด๋ง์ ๋์ด๊ณ ์์ ๋ ๋ชจ๋ ์ ๋์ฌ์ nexthop์ ์ฐ๊ฒฐํ์ฌ ํฐ๋(p2p ์ธํฐํ์ด์ค๋ฅผ ํตํด ํธ๋ํฝ์ ์ถ๋ ฅํด์ผ ํ๋ ๊ฒฝ์ฐ) ๋๋ ํธ๋ํฝ์ด ์ด๋๋ท์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ nexthop IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด RouterOS์ Mikrotik์์๋ ๋ค์๊ณผ ๊ฐ์ด ํด๊ฒฐ๋ฉ๋๋ค.
/routing bgp instance set default as=64999 ignore-as-path-len=yes router-id=172.30.1.2
/routing bgp peer add in-filter=dynamic-in multihop=yes name=VPS remote-address=194.165.22.146 remote-as=64998 ttl=default
/routing filter add action=accept chain=dynamic-in protocol=bgp comment="Set nexthop" set-in-nexthop=172.30.1.1
Cisco IOS์์๋ ์ด๋ ๊ฒ ํฉ๋๋ค.
router bgp 64999
neighbor 194.165.22.146 remote-as 64998
neighbor 194.165.22.146 route-map BGP_NEXT_HOP in
neighbor 194.165.22.146 ebgp-multihop 250
!
route-map BGP_NEXT_HOP permit 10
set ip next-hop 172.30.1.1
BGP ํผ์ด๋ง๊ณผ ์ ์ฉํ ํธ๋ํฝ ์ ์ก์ ๋์ผํ ํฐ๋์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๋ฅ์คํธํ์ ์ค์ ํ ํ์๊ฐ ์์ผ๋ฉฐ ํ๋กํ ์ฝ์ ํตํด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋ฉ๋๋ค. ํ์ง๋ง ์๋์ผ๋ก ์ค์ ํด๋ ์ํฉ์ด ๋ ์ ํ๋์ง๋ ์์ต๋๋ค.
๋ค๋ฅธ ํ๋ซํผ์์๋ ๊ตฌ์ฑ์ ์ง์ ํ์ ํด์ผ ํ์ง๋ง, ์ด๋ ค์์ด ์๋ ๊ฒฝ์ฐ ๋๊ธ์ ์์ฑํด ์ฃผ์๋ฉด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
BGP ์ธ์ ์ด ํ์ฑํ๋๊ณ ๋๊ท๋ชจ ๋คํธ์ํฌ์ ๋ํ ๊ฒฝ๋ก๊ฐ ๋์ฐฉํ์ฌ ํ ์ด๋ธ์ ์ค์น๋๊ณ ํด๋น ์ฃผ์๋ก์ ํธ๋ํฝ์ด ์ฌ๋ผ์ง๊ณ ํ๋ณต์ด ๊ฐ๊น์์ง๋ฉด ์ ์๋น์ค๋ก ๋์๊ฐ์ ์ฐ๊ฒฐํ๋ ํญ๋ชฉ์ ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. IP ์ฃผ์ ๋ชฉ๋ก, ๊ทธ ํ์ ์คํ
systemctl reload bird
๋ผ์ฐํฐ๊ฐ 85๊ฐ์ ๊ฒฝ๋ก๋ฅผ ์ด๋ป๊ฒ ์ ์กํ๋์ง ํ์ธํ์ธ์. ์ ์์ ๋ ์ค๋น๋ฅผ ํ๊ณ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ์๊ฐํด ๋ณด์ธ์ ๐
์ ์ฒด๋ก
์์ ํ ์ด๋ก ์ ์ผ๋ก ์์ ๋จ๊ณ๋ฅผ ์ํํ๋ฉด ํํฐ๋ง ์์คํ ์ ๊ฑฐ์ณ ๋ฌ์์ ์ฐ๋ฐฉ์์ ๊ธ์ง๋ IP ์ฃผ์๋ก ํธ๋ํฝ์ ์๋์ผ๋ก ๋ฆฌ๋๋ ์ ํ๋ ์๋น์ค๊ฐ ์์ต๋๋ค.
๋ฌผ๋ก ๊ฐ์ ๋ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Perl ๋๋ Python ์๋ฃจ์ ์ ํตํด IP ์ฃผ์ ๋ชฉ๋ก์ ์์ฝํ๋ ๊ฒ์ ์ถฉ๋ถํ ์ฝ์ต๋๋ค. Net::CIDR::Lite๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํ๋ ๊ฐ๋จํ Perl ์คํฌ๋ฆฝํธ๋ 85๊ฐ์ ์ ๋์ฌ๋ฅผ 60(XNUMX๊ฐ๊ฐ ์๋)์ผ๋ก ๋ฐ๊พธ์ง๋ง ์์ฐ์ค๋ฝ๊ฒ ์ฐจ๋จ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋์ ๋ฒ์์ ์ฃผ์๋ฅผ ํฌํจํฉ๋๋ค.
์๋น์ค๋ ISO/OSI ๋ชจ๋ธ์ ์ธ ๋ฒ์งธ ์์ค์์ ์๋ํ๋ฏ๋ก ๋ ์ง์คํธ๋ฆฌ์ ๊ธฐ๋ก๋ ์ฃผ์๋ก ํ์ธ๋์ง ์์ผ๋ฉด ์ฌ์ดํธ/ํ์ด์ง ์ฐจ๋จ์ผ๋ก๋ถํฐ ๋ณดํธ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ github์ ๋ ์ง์คํธ๋ฆฌ์ ํจ๊ป nxdomain.txt ํ์ผ์ด ๋์ฐฉํฉ๋๋ค. ์ด ํ์ผ์ ๋ช ๋ฒ์ ์คํฌ๋ฆฝํธ ์คํธ๋กํฌ๋ง์ผ๋ก Chrome์ SwitchyOmega ํ๋ฌ๊ทธ์ธ๊ณผ ๊ฐ์ ์ฃผ์ ์์ค๋ก ์ฝ๊ฒ ์ ํ๋ฉ๋๋ค.
๋ํ ์ธํฐ๋ท ์ฌ์ฉ์์ผ ๋ฟ๋ง ์๋๋ผ ์์ ์ ์ผ๋ถ ๋ฆฌ์์ค๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ(์: ์น ์ฌ์ดํธ ๋๋ ๋ฉ์ผ ์๋ฒ๊ฐ ์ด ์ฐ๊ฒฐ์์ ์คํ๋๋ ๊ฒฝ์ฐ) ์๋ฃจ์ ์ ์ถ๊ฐ ์ ๋ช ํ๊ฐ ํ์ํ๋ค๋ ์ ๋ ์ธ๊ธํด์ผ ํฉ๋๋ค. ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์๋น์ค์์ ๊ณต๊ฐ ์ฃผ์๋ก ๋๊ฐ๋ ํธ๋ํฝ์ ํ๋ ๋ฐ์ธ๋ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ผ์ฐํฐ์์ ์์ ํ ์ ๋์ฌ ๋ชฉ๋ก์ ํฌํจ๋ ๋ฆฌ์์ค์์ ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค.
์ง๋ฌธ์ด ์์ผ๋ฉด ์ง๋ฌธํ๊ณ ๋ต๋ณํ ์ค๋น๋ฅผ ํ์ธ์.
UPD. ๊ฐ์ฌํฉ๋๋ค
UPD2. ๋๋ฃ ์ฌ๋ฌ๋ถ, VPS์ ๋ผ์ฐํฐ ์ฌ์ด์ ํฐ๋ ์ค์ ์ ๋ํ ์ง์นจ์ ๊ธฐ์ฌ์ ์ถ๊ฐํ์ง ์์ ์ค์๋ฅผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ก ์ธํด ๋ง์ ์ง๋ฌธ์ด ๋ฐ์ํฉ๋๋ค.
๋ง์ฝ์ ๋๋นํด ๋ค์ ํ ๋ฒ ๋ง์๋๋ฆฌ์ง๋ง, ์ด ๊ฐ์ด๋์ ๋จ๊ณ๋ฅผ ์์ํ๊ธฐ ์ ์ ์ด๋ฏธ ํ์ํ ๋ฐฉํฅ์ผ๋ก VPN ํฐ๋์ ๊ตฌ์ฑํ๊ณ ์ฑ๋ฅ์ ํ์ธํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค(์: ๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋ํฝ์ ๋ํํ๊ฑฐ๋ ์ ์ ์ผ๋ก ๋ํ). ์์ง ์ด ๋จ๊ณ๋ฅผ ์๋ฃํ์ง ์์๋ค๋ฉด ๊ธฐ์ฌ์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ค์ ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค. ์์ง ์ด์ ๋ํ ํ
์คํธ๋ ์์ง๋ง VPS์ ์ค์น๋ ์ด์ ์ฒด์ ์ด๋ฆ๊ณผ ํจ๊ป "OpenVPN ์๋ฒ ์ค์ "์ ๊ฒ์ํ๊ณ ๋ผ์ฐํฐ ์ด๋ฆ๊ณผ ํจ๊ป "OpenVPN ํด๋ผ์ด์ธํธ ์ค์ "์ Google์ ๊ฒ์ํ๋ฉด ์๋ง๋ Habrรฉ๋ฅผ ํฌํจํ์ฌ ์ด ์ฃผ์ ์ ๊ดํ ์ฌ๋ฌ ๊ธฐ์ฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
UPD3.
UPD4. ์ค๋ฅ์ ๋ํ ์ฝ๊ฐ์ ์์
(๋ณธ๋ฌธ์๋ ๊ธฐ์ฌํ์ง ์์):
1) ๋์ systemctl ์๋ก๊ณ ์นจ ์ ๋ช
๋ น์ ์ฌ์ฉํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค ์ ๊ตฌ์ฑ.
2) Mikrotik ๋ผ์ฐํฐ์์ ๋ค์ ํ์ ํฐ๋ ๋ ๋ฒ์งธ ์ธก๋ฉด์ IP๋ก ๋ณ๊ฒฝํ๋ ๋์ /๋ผ์ฐํ
ํํฐ ์ถ๊ฐ ์์
=accept chain=dynamic-in ํ๋กํ ์ฝ=bgp comment="๋ค์ ํ ์ค์ " set-in-nexthop=172.30.1.1 ์ฃผ์ ์์ด ํฐ๋ ์ธํฐํ์ด์ค์ ์ง์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค. /๋ผ์ฐํ
ํํฐ ์ถ๊ฐ ์์
=accept chain=dynamic-in ํ๋กํ ์ฝ=bgp comment="๋ค์ ํ ์ค์ " set-in-nexthop-direct=<์ธํฐํ์ด์ค ์ด๋ฆ>
UPD5. ์๋ก์ด ์๋น์ค๊ฐ ๋์์ต๋๋ค
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋ํด์๋ ์๋ง๋ ํ ๋จธ๋๋ฅผ ํ๋ค๊ณ ๊ธฐ์ฌ๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ ๊ฒ์
๋๋ค.
UPD6. ์ดํดํ๊ณ ์ถ์ง ์์ง๋ง ์์ํ๊ณ ์ถ์ ์ฌ๋๋ค์ ์ํ ๊ธฐ์ฌ์ ๊ฐ์ ํ-
์ถ์ฒ : habr.com