๋ผ์ฐํ ์ TCP/IP ๋คํธ์ํฌ๋ฅผ ํตํด ํจํท์ ์ ์กํ๊ธฐ ์ํ ์ต์์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ํ๋ก์ธ์ค์ ๋๋ค. IPv4 ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ฅ์น์๋ ํ๋ก์ธ์ค ๋ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ด ๊ธฐ์ฌ๋ HOWTO๊ฐ ์๋๋ฉฐ, ์๋ฅผ ๋ค์ด RouterOS์ ์ ์ ๋ผ์ฐํ ์ ์ค๋ช ํ๊ณ ๋๋จธ์ง ์ค์ (์: ์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ํ srcnat)์ ์๋์ ์ผ๋ก ์๋ตํ๊ธฐ ๋๋ฌธ์ ์๋ฃ๋ฅผ ์ดํดํ๋ ค๋ฉด ๋คํธ์ํฌ ๋ฐ RouterOS์ ๋ํ ์ผ์ ์์ค์ ์ง์์ด ํ์ํฉ๋๋ค.
์ค์์นญ ๋ฐ ๋ผ์ฐํ
์ค์์นญ์ ํ๋์ Layer2 ์ธ๊ทธ๋จผํธ(์ด๋๋ท, ppp, ...) ๋ด์์ ํจํท์ ๊ตํํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ฅ์น๊ฐ ํจํท์ ์์ ์๊ฐ ์์ ๊ณผ ๋์ผํ ์ด๋๋ท ์๋ธ๋ท์ ์๋ ๊ฒ์ ํ์ธํ๋ฉด arp ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ mac ์ฃผ์๋ฅผ ํ์ตํ๊ณ ๋ผ์ฐํฐ๋ฅผ ์ฐํํ์ฌ ํจํท์ ์ง์ ์ ์กํฉ๋๋ค. ppp(point-to-point) ์ฐ๊ฒฐ์๋ ๋ ๋ช ์ ์ฐธ๊ฐ์๋ง ์์ ์ ์์ผ๋ฉฐ ํจํท์ ํญ์ ํ๋์ ์ฃผ์ 0xff๋ก ์ ์ก๋ฉ๋๋ค.
๋ผ์ฐํ ์ Layer2 ์ธ๊ทธ๋จผํธ ๊ฐ์ ํจํท์ ์ ์กํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ฅ์น๊ฐ ์์ ์๊ฐ ์ด๋๋ท ์ธ๊ทธ๋จผํธ ์ธ๋ถ์ ์๋ ํจํท์ ๋ณด๋ด๋ ค๋ ๊ฒฝ์ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ดํด๋ณด๊ณ ๋ค์ ํจํท์ ๋ณด๋ผ ์์น๋ฅผ ์๊ณ ์๋(๋๋ ํจํท์ ์๋ ๋ณด๋ธ ์ฌ๋์ ๋ชจ๋ฅผ ์ ์๋) ๊ฒ์ดํธ์จ์ด๋ก ํจํท์ ์ ๋ฌํฉ๋๋ค. ์ด ์ฌ์ค์ ์์ง ๋ชปํฉ๋๋ค).
๋ผ์ฐํฐ๋ฅผ ์๊ฐํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ ๊ฐ ์ด์์ Layer2 ์ธ๊ทธ๋จผํธ์ ์ฐ๊ฒฐ๋๊ณ ๋ผ์ฐํ ํ ์ด๋ธ์์ ์ต์์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ์ฌ ์ธ๊ทธ๋จผํธ ๊ฐ์ ํจํท์ ์ ๋ฌํ ์ ์๋ ์ฅ์น๋ก ์๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ ์ดํดํ๊ฑฐ๋ ์ด๋ฏธ ์๊ณ ์๋ค๋ฉด ๊ณ์ ์ฝ์ผ์ญ์์ค. ๋๋จธ์ง๋ ์์ง๋ง ๋งค์ฐ ํฐ ์ ๋ณด์ ์ต์ํด์ง๋ ๊ฒ์ด ์ข์ต๋๋ค.
RouterOS ๋ฐ PacketFlow์ ๋ผ์ฐํ
์ ์ ๋ผ์ฐํ ๊ณผ ๊ด๋ จ๋ ๊ฑฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ํจํค์ง์ ์์ต๋๋ค. ์ฒด๊ณ. ๋น๋ ๋ดํฌ ๋ผ์ฐํ ๋์ ๋ผ์ฐํ ์๊ณ ๋ฆฌ์ฆ(RIP, OSPF, BGP, MME), ๋ผ์ฐํ ํํฐ ๋ฐ BFD์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
๋ผ์ฐํ
์ค์ ์ ์ํ ๊ธฐ๋ณธ ๋ฉ๋ด: [IP]->[Route]
. ๋ณต์กํ ์ฒด๊ณ๋ ํจํท์ ๋ผ์ฐํ
ํ์๋ก ๋ฏธ๋ฆฌ ๋ ์ด๋ธ์ ์ง์ ํด์ผ ํ ์ ์์ต๋๋ค. [IP]->[Firewall]->[Mangle]
(์ ์ฌ์ฌ PREROUTING
ะธ OUTPUT
).
PacketFlow์๋ IP ํจํท ๋ผ์ฐํ
๊ฒฐ์ ์ด ์ด๋ฃจ์ด์ง๋ ์ธ ๊ณณ์ด ์์ต๋๋ค.
- ๋ผ์ฐํฐ๊ฐ ์์ ํ ๋ผ์ฐํ ํจํท. ์ด ๋จ๊ณ์์ ํจํท์ ๋ก์ปฌ ํ๋ก์ธ์ค๋ก ๋ณด๋ผ์ง ์๋๋ฉด ๋คํธ์ํฌ๋ก ๋ ๋ณด๋ผ์ง ๊ฒฐ์ ํฉ๋๋ค. ์ด์ก ํจํค์ง ์์ ์ถ๋ ฅ ์ธํฐํ์ด์ค
- ๋ก์ปฌ ๋ฐ์ ํจํท ๋ผ์ฐํ . ๋ฐ์ ํจํท ์์ ์ถ๋ ฅ ์ธํฐํ์ด์ค
- ๋ฐ์ ํจํท์ ๋ํ ์ถ๊ฐ ๋ผ์ฐํ
๋จ๊ณ๋ฅผ ํตํด ๋ผ์ฐํ
๊ฒฐ์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
[Output|Mangle]
- ๋ธ๋ก 1, 2์ ํจํท ๊ฒฝ๋ก๋ ๋ธ๋ก XNUMX, XNUMX์ ๊ท์น์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
[IP]->[Route]
- ์ง์ 1, 2 ๋ฐ 3์ ํจํท ๊ฒฝ๋ก๋ ๋ค์ ๊ท์น์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
[IP]->[Route]->[Rules]
- ๋ธ๋ก 1, 3์ ํจํค์ง ๊ฒฝ๋ก๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
[IP]->[Firewall]->[Mangle]
RIB, FIB, ๋ผ์ฐํ ์บ์
๋ผ์ฐํ
์ ๋ณด ๋ฒ ์ด์ค
๋์ ๋ผ์ฐํ
ํ๋กํ ์ฝ, ppp ๋ฐ dhcp์ ๊ฒฝ๋ก, ์ ์ ๋ฐ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก์์ ๊ฒฝ๋ก๊ฐ ์์ง๋๋ ๊ธฐ๋ฐ์
๋๋ค. ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๊ด๋ฆฌ์๊ฐ ํํฐ๋งํ ๊ฒฝ๋ก๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์กฐ๊ฑด๋ถ, ์ฐ๋ฆฌ๋ [IP]->[Route]
RIB๋ฅผ ํ์ํฉ๋๋ค.
ํฌ์๋ฉ ์ ๋ณด ๋ฒ ์ด์ค
RIB์์ ์ต์์ ๊ฒฝ๋ก๊ฐ ์์ง๋๋ ๊ธฐ๋ฐ์ ๋๋ค. FIB์ ๋ชจ๋ ๊ฒฝ๋ก๋ ํ์ฑ ์ํ์ด๋ฉฐ ํจํท ์ ๋ฌ์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฒฝ๋ก๊ฐ ๋นํ์ฑํ๋๋ฉด(๊ด๋ฆฌ์(์์คํ )์ ์ํด ๋นํ์ฑํ๋๊ฑฐ๋ ํจํท์ ์ ์กํด์ผ ํ๋ ์ธํฐํ์ด์ค๊ฐ ํ์ฑํ๋์ง ์์) FIB์์ ๊ฒฝ๋ก๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค.
๋ผ์ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด FIB ํ ์ด๋ธ์ IP ํจํท์ ๋ํ ๋ค์ ์ ๋ณด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์์ค ์ฃผ์
- ๋ชฉ์ ์ง ์ฃผ์
- ์์ค ์ธํฐํ์ด์ค
- ๋ผ์ฐํ ๋งํฌ
- ์๋น์ค ์ฝ๊ด(DSCP)
FIB ํจํค์ง์ ๋ค์ด๊ฐ๋ ๊ณผ์ ์ ๋ค์ ๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- ํจํค์ง๊ฐ ๋ก์ปฌ ๋ผ์ฐํฐ ํ๋ก์ธ์ค์ฉ์ ๋๊น?
- ํจํท์ ์์คํ
๋๋ ์ฌ์ฉ์ PBR ๊ท์น์ด ์ ์ฉ๋ฉ๋๊น?
- ๊ทธ๋ ๋ค๋ฉด ํจํท์ด ์ง์ ๋ ๋ผ์ฐํ ํ ์ด๋ธ๋ก ์ ์ก๋ฉ๋๋ค.
- ํจํท์ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก ์ ์ก๋ฉ๋๋ค.
์กฐ๊ฑด๋ถ, ์ฐ๋ฆฌ๋ [IP]->[Route Active=yes]
FIB๋ฅผ ํ์ํฉ๋๋ค.
๋ผ์ฐํ
์บ์
๊ฒฝ๋ก ์บ์ฑ ๋ฉ์ปค๋์ฆ. ๋ผ์ฐํฐ๋ ํจํท์ด ์ ์ก๋ ์์น๋ฅผ ๊ธฐ์ตํ๊ณ ์ ์ฌํ ํจํท์ด ์๋ ๊ฒฝ์ฐ(์๋ง๋ ๋์ผํ ์ฐ๊ฒฐ์์) FIB๋ฅผ ํ์ธํ์ง ์๊ณ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ์ด๋ํ๋๋ก ํฉ๋๋ค. ๊ฒฝ๋ก ์บ์๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ง์์ง๋๋ค.
RouterOS ๊ด๋ฆฌ์์ ๊ฒฝ์ฐ ๋ผ์ฐํ
์บ์๋ฅผ ๋ณด๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ๋ง๋ค์ง๋ ์์์ง๋ง [IP]->[Settings]
.
์ด ๋ฉ์ปค๋์ฆ์ Linux 3.6 ์ปค๋์์ ์ ๊ฑฐ๋์์ง๋ง RouterOS๋ ์ฌ์ ํ ์ปค๋ 3.3.5๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ง๋ ๋ผ์ฐํ ์บ์๊ฐ ๊ทธ ์ด์ ์ค ํ๋์ผ ๊ฒ์ ๋๋ค.
๊ฒฝ๋ก ์ถ๊ฐ ๋ํ์์
[IP]->[Route]->[+]
- ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ ค๋ ์๋ธ๋ท(๊ธฐ๋ณธ๊ฐ: 0.0.0.0/0)
- ํจํท์ด ์ ์ก๋ ๊ฒ์ดํธ์จ์ด IP ๋๋ ์ธํฐํ์ด์ค(์ฌ๋ฌ ๊ฐ๊ฐ ์์ ์ ์์, ์๋ ECMP ์ฐธ์กฐ)
- ๊ฒ์ดํธ์จ์ด ๊ฐ์ฉ์ฑ ํ์ธ
- ๋ ์ฝ๋ ์ ํ
- ๊ฒฝ๋ก์ ๊ฑฐ๋ฆฌ(๋ฏธํฐ๋ฒ)
- ๋ผ์ฐํ ํ ์ด๋ธ
- ์ด ๊ฒฝ๋ก๋ฅผ ํตํ ๋ก์ปฌ ๋ฐ์ ํจํท์ฉ IP
- ๋ฒ์ ๋ฐ ๋์ ๋ฒ์์ ๋ชฉ์ ์ ๊ธฐ์ฌ ๋์ ์์ฑ๋ฉ๋๋ค.
๊ฒฝ๋ก ํ๋๊ทธ
- X - ๊ด๋ฆฌ์๊ฐ ๊ฒฝ๋ก๋ฅผ ๋นํ์ฑํํ์ต๋๋ค(
disabled=yes
) - A - ๊ฒฝ๋ก๋ ํจํท์ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- D - ๋์ ์ผ๋ก ์ถ๊ฐ๋ ๊ฒฝ๋ก(BGP, OSPF, RIP, MME, PPP, DHCP, ์ฐ๊ฒฐ๋จ)
- C - ์๋ธ๋ท์ด ๋ผ์ฐํฐ์ ์ง์ ์ฐ๊ฒฐ๋จ
- S - ์ ์ ๊ฒฝ๋ก
- r,b,o,m - ๋์ ๋ผ์ฐํ ํ๋กํ ์ฝ ์ค ํ๋์ ์ํด ์ถ๊ฐ๋ ๊ฒฝ๋ก
- B,U,P - ํํฐ๋ง ๊ฒฝ๋ก(์ ์ก ๋์ ํจํท ์ญ์ )
๊ฒ์ดํธ์จ์ด์์ ๋ฌด์์ ์ง์ ํด์ผ ํฉ๋๊น: IP ์ฃผ์ ๋๋ ์ธํฐํ์ด์ค?
์ด ์์คํ ์ ์ฌ์ฉํ๋ฉด ๋ ๋ค ์ง์ ํ ์ ์์ง๋ง ๋งน์ธํ์ง ์๊ณ ์๋ชปํ ๊ฒฝ์ฐ ํํธ๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
IP ์ฃผ์
๊ฒ์ดํธ์จ์ด ์ฃผ์๋ Layer2๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋๋ท์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ผ์ฐํฐ๊ฐ ํ์ฑ ip ์ธํฐํ์ด์ค ์ค ํ๋์ ์๋ ๋์ผํ ์๋ธ๋ท์ ์ฃผ์๋ฅผ ๊ฐ์ ธ์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ppp์ ๊ฒฝ์ฐ ๊ฒ์ดํธ์จ์ด ์ฃผ์๋ ํ์ฑ ์ธํฐํ์ด์ค ์ค ํ๋์ ์๋ธ๋ท ์ฃผ์๋ก ์ง์ ๋ฉ๋๋ค.
Layer2์ ๋ํ ์ ๊ทผ์ฑ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์์ผ๋ฉด ๊ฒฝ๋ก๊ฐ ๋นํ์ฑ์ผ๋ก ๊ฐ์ฃผ๋์ด FIB์ ์ํ์ง ์์ต๋๋ค.
์ธํฐํ์ด์ค
๋ชจ๋ ๊ฒ์ด ๋ ๋ณต์กํ๊ณ ๋ผ์ฐํฐ์ ๋์์ ์ธํฐํ์ด์ค ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
- PPP(Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) ์ฐ๊ฒฐ์ ๋ ๋ช
์ ์ฐธ๊ฐ์๋ง ๊ฐ์ ํ๊ณ ํจํท์ ํญ์ ์ ์ก์ ์ํด ๊ฒ์ดํธ์จ์ด๋ก ์ ์ก๋ฉ๋๋ค. ๊ฒ์ดํธ์จ์ด๊ฐ ์์ ์๊ฐ ์์ ์์ ๊ฐ์งํ๋ฉด ๋ค์์ผ๋ก ํจํท์ ์ ์กํฉ๋๋ค. ๋ก์ปฌ ํ๋ก์ธ์ค์
๋๋ค.
- ์ด๋๋ท์ ๋ง์ ์ฐธ์ฌ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ํจํท ์์ ์์ ์ฃผ์์ ํจ๊ป arp ์ธํฐํ์ด์ค์ ์์ฒญ์ ๋ณด๋ผ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก์ ๋ํด ์์๋๊ณ ๋งค์ฐ ์ ์์ ์ธ ๋์์
๋๋ค.
๊ทธ๋ฌ๋ ์ธํฐํ์ด์ค๋ฅผ ์๊ฒฉ ์๋ธ๋ท์ ๊ฒฝ๋ก๋ก ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค. ๊ฒฝ๋ก๊ฐ ํ์ฑ ์ํ์ด๊ณ ๊ฒ์ดํธ์จ์ด์ ๋ํ ping์ด ํต๊ณผํ์ง๋ง ์ง์ ๋ ์๋ธ๋ท์ ์์ ์์๊ฒ ๋๋ฌํ์ง ์์ต๋๋ค. ์ค๋ํผ๋ฅผ ํตํด ์ธํฐํ์ด์ค๋ฅผ ๋ณด๋ฉด ์๊ฒฉ ์๋ธ๋ท์ ์ฃผ์๊ฐ ํฌํจ๋ arp ์์ฒญ์ด ํ์๋ฉ๋๋ค.
๊ฐ๋ฅํ ๋๋ง๋ค IP ์ฃผ์๋ฅผ ๊ฒ์ดํธ์จ์ด๋ก ์ง์ ํ์ญ์์ค. ๋จ, ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก(์๋ ์์ฑ) ๋ฐ PPP(Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*) ์ธํฐํ์ด์ค๋ ์์ธ์ ๋๋ค.
OpenVPN์๋ PPP ํค๋๊ฐ ํฌํจ๋์ด ์์ง ์์ง๋ง OpenVPN ์ธํฐํ์ด์ค ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ๊ฒฝ๋ก
๊ธฐ๋ณธ ๋ผ์ฐํ ๊ท์น. ๋ ์์ ์๋ธ๋ท(์๋ธ๋ท ๋ง์คํฌ๊ฐ ๊ฐ์ฅ ํฐ)์ ์ค๋ช ํ๋ ๊ฒฝ๋ก๊ฐ ํจํท์ ๋ผ์ฐํ ๊ฒฐ์ ์ ์ฐ์ ํฉ๋๋ค. ๋ผ์ฐํ ํ ์ด๋ธ์์ ํญ๋ชฉ์ ์์น๋ ์ ํ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ธฐ๋ณธ ๊ท์น์ ๋ ๊ตฌ์ฒด์ ์ ๋๋ค.
์ง์ ๋ ์ฒด๊ณ์ ๋ชจ๋ ๊ฒฝ๋ก๊ฐ ํ์ฑ ์ํ์ ๋๋ค(FIB์ ์์). ์๋ก ๋ค๋ฅธ ์๋ธ๋ท์ ๊ฐ๋ฆฌํค๊ณ ์๋ก ์ถฉ๋ํ์ง ์์ต๋๋ค.
๊ฒ์ดํธ์จ์ด ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก๋ ๋นํ์ฑ(FIB์์ ์ ๊ฑฐ๋จ)์ผ๋ก ๊ฐ์ฃผ๋๊ณ ๋๋จธ์ง ๊ฒฝ๋ก์์ ํจํท์ด ๊ฒ์๋ฉ๋๋ค.
์๋ธ๋ท์ด 0.0.0.0/0์ธ ๊ฒฝ๋ก๋ ๋๋๋ก ํน๋ณํ ์๋ฏธ๊ฐ ๋ถ์ฌ๋๋ฉฐ "๊ธฐ๋ณธ ๊ฒฝ๋ก" ๋๋ "๋ง์ง๋ง ์๋จ์ ๊ฒ์ดํธ์จ์ด"๋ผ๊ณ ํฉ๋๋ค. ์ฌ์ค ๋ง๋ฒ ๊ฐ์ ๊ฒ์ ์์ผ๋ฉฐ ๋จ์ํ ๊ฐ๋ฅํ ๋ชจ๋ IPv4 ์ฃผ์๋ฅผ ํฌํจํ์ง๋ง ์ด๋ฌํ ์ด๋ฆ์ ์์ ์ ์ ์ค๋ช ํฉ๋๋ค. ๋ค๋ฅธ ๋ ์ ํํ ๊ฒฝ๋ก๊ฐ ์๋ ํจํท์ ์ ๋ฌํ ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ํ๋ ๋๋ค.
IPv4์ ๊ฐ๋ฅํ ์ต๋ ์๋ธ๋ท ๋ง์คํฌ๋ /32์ด๋ฉฐ ์ด ๊ฒฝ๋ก๋ ํน์ ํธ์คํธ๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ ๋ผ์ฐํ ํ ์ด๋ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ๊ฒฝ๋ก๋ฅผ ์ดํดํ๋ ๊ฒ์ ๋ชจ๋ TCP/IP ์ฅ์น์ ๊ธฐ๋ณธ์ ๋๋ค.
๊ฑฐ๋ฆฌ
์ฌ๋ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํด ์ก์ธ์คํ ์ ์๋ ๋จ์ผ ์๋ธ๋ท์ ๋ํ ๊ฒฝ๋ก์ ๊ด๋ฆฌ ํํฐ๋ง์๋ ๊ฑฐ๋ฆฌ(๋๋ ์งํ)๊ฐ ํ์ํฉ๋๋ค. ๋ฉํธ๋ฆญ์ด ๋ฎ์ ๊ฒฝ๋ก๋ ์ฐ์ ์์๋ก ๊ฐ์ฃผ๋์ด FIB์ ํฌํจ๋ฉ๋๋ค. ๋ฉํธ๋ฆญ์ด ๋ ๋ฎ์ ๊ฒฝ๋ก๊ฐ ํ์ฑํ๋ฅผ ์ค๋จํ๋ฉด FIB์์ ๋ฉํธ๋ฆญ์ด ๋ ๋์ ๊ฒฝ๋ก๋ก ๋์ฒด๋ฉ๋๋ค.
๋์ผํ ๋ฉํธ๋ฆญ์ ๊ฐ์ง ๋์ผํ ์๋ธ๋ท์ ๋ํ ์ฌ๋ฌ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ๋ผ์ฐํฐ๋ ๋ด๋ถ ๋ ผ๋ฆฌ์ ๋ฐ๋ผ ๊ทธ ์ค ํ๋๋ง FIB ํ ์ด๋ธ์ ์ถ๊ฐํฉ๋๋ค.
๋ฉํธ๋ฆญ์ 0์์ 255 ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- 0 - ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก์ ๋ํ ๋ฉํธ๋ฆญ์ ๋๋ค. ๊ฑฐ๋ฆฌ 0์ ๊ด๋ฆฌ์๊ฐ ์ค์ ํ ์ ์์ต๋๋ค.
- 1-254 - ๊ฒฝ๋ก ์ค์ ์ ์ํด ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉํธ๋ฆญ์ ๋๋ค. ๊ฐ์ด ๋ฎ์ ๋ฉํธ๋ฆญ์ ์ฐ์ ์์๊ฐ ๋ ๋์ต๋๋ค.
- 255 - ๊ฒฝ๋ก ์ค์ ์ ์ํด ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉํธ๋ฆญ์ ๋๋ค. 1-254์ ๋ฌ๋ฆฌ ๋ฉํธ๋ฆญ์ด 255์ธ ๊ฒฝ๋ก๋ ํญ์ ๋นํ์ฑ ์ํ๋ก ์ ์ง๋๋ฉฐ FIB์ ๋น ์ง์ง ์์ต๋๋ค.
- ํน์ ๋ฉํธ๋ฆญ. ๋์ ๋ผ์ฐํ ํ๋กํ ์ฝ์์ ํ์๋ ๊ฒฝ๋ก์๋ ํ์ค ๋ฉํธ๋ฆญ ๊ฐ์ด ์์ต๋๋ค.
๊ฒ์ดํธ์จ์ด ํ์ธ
๊ฒ์ดํธ์จ์ด ํ์ธ์ icmp ๋๋ arp๋ฅผ ํตํด ๊ฒ์ดํธ์จ์ด์ ๊ฐ์ฉ์ฑ์ ํ์ธํ๊ธฐ ์ํ MikroTik RoutesOS ํ์ฅ์
๋๋ค. 10์ด๋ง๋ค ํ ๋ฒ์ฉ(๋ณ๊ฒฝ ๋ถ๊ฐ) ๊ฒ์ดํธ์จ์ด๋ก ์์ฒญ์ ๋ณด๋ด๊ณ , ๋ ๋ฒ ์๋ต์ ๋ฐ์ง ๋ชปํ๋ฉด ํด๋น ๊ฒฝ๋ก๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด FIB์์ ์ ๊ฑฐ๋ฉ๋๋ค. ๊ฒ์ฌ ๊ฒ์ดํธ์จ์ด๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ๊ฒ์ฌ ๊ฒฝ๋ก๊ฐ ๊ณ์๋๊ณ ๊ฒ์ฌ๊ฐ ํ ๋ฒ ์ฑ๊ณตํ ํ ๊ฒฝ๋ก๊ฐ ๋ค์ ํ์ฑํ๋ฉ๋๋ค.
Check gateway๋ ๊ตฌ์ฑ๋ ํญ๋ชฉ๊ณผ ์ง์ ๋ ๊ฒ์ดํธ์จ์ด๊ฐ ์๋ ๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ(๋ชจ๋ ๋ผ์ฐํ ํ ์ด๋ธ ๋ฐ ecmp ๊ฒฝ๋ก์ ์์)์ ๋นํ์ฑํํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฒดํฌ ๊ฒ์ดํธ์จ์ด๋ ๊ฒ์ดํธ์จ์ด๋ก์ ํจํท ์์ค ๋ฌธ์ ๊ฐ ์๋ ํ ์ ์๋ํฉ๋๋ค. ๊ฒ์ฌ ๊ฒ์ดํธ์จ์ด๋ ๊ฒ์ฌ ๊ฒ์ดํธ์จ์ด ์ธ๋ถ์ ํต์ ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์์ง ๋ชปํ๋ฏ๋ก ์คํฌ๋ฆฝํธ, ์ฌ๊ท ๋ผ์ฐํ , ๋์ ๋ผ์ฐํ ํ๋กํ ์ฝ๊ณผ ๊ฐ์ ์ถ๊ฐ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค.
๋๋ถ๋ถ์ VPN ๋ฐ ํฐ๋ ํ๋กํ ์ฝ์๋ ์ฐ๊ฒฐ ํ๋์ ํ์ธํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ๊ฐ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๊ฒ์ดํธ์จ์ด ํ์ธ์ ํ์ฑํํ๋ฉด ๋คํธ์ํฌ ๋ฐ ์ฅ์น ์ฑ๋ฅ์ ๋ํ ์ถ๊ฐ(ํ์ง๋ง ๋งค์ฐ ์์) ๋ถํ๊ฐ ๋ฐ์ํฉ๋๋ค.
ECMP ๊ฒฝ๋ก
Equal-Cost Multi-Path - ๋ผ์ด๋ ๋ก๋น ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋์์ ์ฌ๋ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์์๊ฒ ํจํท์ ๋ณด๋ ๋๋ค.
ECMP ๊ฒฝ๋ก๋ ๊ด๋ฆฌ์๊ฐ ํ๋์ ์๋ธ๋ท์ ๋ํด ์ฌ๋ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ง์ ํ์ฌ(๋๋ ๋๋ฑํ OSPF ๊ฒฝ๋ก๊ฐ ๋ ๊ฐ์ธ ๊ฒฝ์ฐ ์๋์ผ๋ก) ์์ฑ๋ฉ๋๋ค.
ECMP๋ ์ด๋ก ์ ์ผ๋ก ๋ ์ฑ๋ ๊ฐ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ก ์ ์ผ๋ก ecmp ๊ฒฝ๋ก์ ๋ ๊ฐ์ ์ฑ๋์ด ์๋ ๊ฒฝ์ฐ ๊ฐ ํจํท์ ๋ํด ๋๊ฐ๋ ์ฑ๋์ด ๋ฌ๋ผ์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ผ์ฐํ ์บ์ ๋ฉ์ปค๋์ฆ์ ์ฒซ ๋ฒ์งธ ํจํท์ด ์ทจํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ์ฐ๊ฒฐ์์ ํจํท์ ๋ณด๋ ๋๋ค.
๋ผ์ฐํ
์บ์๋ฅผ ๋นํ์ฑํํ๋ฉด ECMP ๊ฒฝ๋ก์ ํจํท์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ณต์ ๋์ง๋ง NAT์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. NAT ๊ท์น์ ์ฐ๊ฒฐ์ ์ฒซ ๋ฒ์งธ ํจํท๋ง ์ฒ๋ฆฌํ๊ณ (๋๋จธ์ง๋ ์๋์ผ๋ก ์ฒ๋ฆฌ๋จ) ์์ค ์ฃผ์๊ฐ ๋์ผํ ํจํท์ ์๋ก ๋ค๋ฅธ ์ธํฐํ์ด์ค์์ ๋๊ฐ๋๋ค.
๊ฒ์ดํธ์จ์ด ํ์ธ์ด ECMP ๊ฒฝ๋ก์์ ์๋ํ์ง ์์ต๋๋ค(RouterOS ๋ฒ๊ทธ). ๊ทธ๋ฌ๋ ECMP์์ ํญ๋ชฉ์ ๋นํ์ฑํํ๋ ์ถ๊ฐ ์ ํจ์ฑ ๊ฒ์ฌ ๊ฒฝ๋ก๋ฅผ ์์ฑํ์ฌ ์ด ์ ํ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ผ์ฐํ ์ ํตํ ํํฐ๋ง
์ ํ ์ต์ ์ ํจํค์ง๋ก ์ํํ ์์ ์ ๊ฒฐ์ ํฉ๋๋ค.
- ์ ๋์บ์คํธ - ์ง์ ๋ ๊ฒ์ดํธ์จ์ด(์ธํฐํ์ด์ค)๋ก ์ ์ก
- ๋ธ๋ํ - ํจํท ํ๊ธฐ
- ๊ธ์ง, ๋๋ฌ ๋ถ๊ฐ๋ฅ - ํจํท์ ๋ฒ๋ฆฌ๊ณ icmp ๋ฉ์์ง๋ฅผ ๋ฐ์ ์์๊ฒ ๋ณด๋ ๋๋ค.
ํํฐ๋ง์ ์ผ๋ฐ์ ์ผ๋ก ์๋ชป๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ํจํท์ด ์ ์ก๋๋ ๊ฒ์ ๋ณดํธํด์ผ ํ ๋ ์ฌ์ฉ๋๋ฉฐ ๋ฌผ๋ก ๋ฐฉํ๋ฒฝ์ ํตํด ์ด๋ฅผ ํํฐ๋งํ ์ ์์ต๋๋ค.
๋ช ๊ฐ์ง ์
๋ผ์ฐํ ์ ๋ํ ๊ธฐ๋ณธ ์ฌํญ์ ํตํฉํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ๊ฐ์ ์ฉ ๋ผ์ฐํฐ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
- 0.0.0.0/0์ ๋ํ ์ ์ ๊ฒฝ๋ก(๊ธฐ๋ณธ ๊ฒฝ๋ก)
- ๊ณต๊ธ์์์ ์ธํฐํ์ด์ค์์ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก
- LAN ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก
PPPoE๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ฐ์ ์ธ ํ ๋ผ์ฐํฐ
- ์๋์ผ๋ก ์ถ๊ฐ๋๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ๋ํ ๊ณ ์ ๊ฒฝ๋ก. ์ฐ๊ฒฐ ์์ฑ์ ์ง์ ๋ฉ๋๋ค.
- PPP ์ฐ๊ฒฐ์ ์ํ ์ฐ๊ฒฐ ๊ฒฝ๋ก
- LAN ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก
XNUMX๊ฐ์ ๊ณต๊ธ์์ ์ด์คํ๊ฐ ์๋ ์ผ๋ฐ์ ์ธ ํ ๋ผ์ฐํฐ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2
- ๋ฉํธ๋ฆญ 1 ๋ฐ ๊ฒ์ดํธ์จ์ด ๊ฐ์ฉ์ฑ ํ์ธ์ด ์๋ ์ฒซ ๋ฒ์งธ ๊ณต๊ธ์๋ฅผ ํตํ ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ๋ํ ์ ์ ๊ฒฝ๋ก
- ๋ฉํธ๋ฆญ 2๊ฐ ์๋ ๋ ๋ฒ์งธ ๊ณต๊ธ์๋ฅผ ํตํด ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ๋ํ ์ ์ ๊ฒฝ๋ก
- ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก
0.0.0.0/0์ ๋ํ ํธ๋ํฝ์ ์ด ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋์ 10.10.10.1์ ํต๊ณผํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด 10.20.20.1๋ก ์ ํํฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ ์ฑ๋ ์์ฝ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์ง๋ง ๋จ์ ์ด ์๋ ๊ฒ์ ์๋๋๋ค. ๊ณต๊ธ์์ ๊ฒ์ดํธ์จ์ด ์ธ๋ถ(์: ์ด์์ ๋คํธ์ํฌ ๋ด๋ถ)์์ ์ค๋จ์ด ๋ฐ์ํ๋ฉด ๋ผ์ฐํฐ๋ ์ด๋ฅผ ์์ง ๋ชปํ๊ณ ๊ณ์ํด์ ๊ฒฝ๋ก๋ฅผ ํ์ฑ ์ํ๋ก ๊ฐ์ฃผํฉ๋๋ค.
๋ ๊ณต๊ธ์, ์ค๋ณต ๋ฐ ECMP๊ฐ ์๋ ์ผ๋ฐ์ ์ธ ํ ๋ผ์ฐํฐ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1
- Chack ๊ฒ์ดํธ์จ์ด ํ์ธ์ ์ํ ์ ์ ๊ฒฝ๋ก
- ECMP ๊ฒฝ๋ก
- ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก
ํ์ธํ ๊ฒฝ๋ก๋ ํ๋์(๋นํ์ฑ ๊ฒฝ๋ก์ ์์)์ด์ง๋ง ๊ฒ์ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ๋ฐฉํดํ์ง ์์ต๋๋ค. RoS์ ํ์ฌ ๋ฒ์ (6.44)์ ECMP ๊ฒฝ๋ก์ ์๋ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ์ง๋ง ๋ค๋ฅธ ๋ผ์ฐํ
ํ
์ด๋ธ์ ํ
์คํธ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์ต์
routing-mark
)
Speedtest ๋ฐ ๊ธฐํ ์ ์ฌํ ์ฌ์ดํธ์์๋ ์๋๊ฐ ์ฆ๊ฐํ์ง ์์ง๋ง(ECMP๋ ํธ๋ํฝ์ ํจํท์ด ์๋ ์ฐ๊ฒฐ๋ก ๋๋๋๋ค), p2p ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ ๋น ๋ฅด๊ฒ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค.
๋ผ์ฐํ
์ ํตํ ํํฐ๋ง
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole
- ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ๋ํ ์ ์ ๊ฒฝ๋ก
- ipip ํฐ๋์ ํตํด 192.168.200.0/24์ ๋ํ ์ ์ ๊ฒฝ๋ก
- ISP ๋ผ์ฐํฐ๋ฅผ ํตํ 192.168.200.0/24์ ๋ํ ์ ์ ๊ฒฝ๋ก ๊ธ์ง
ipip ์ธํฐํ์ด์ค๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ํฐ๋ ํธ๋ํฝ์ด ๊ณต๊ธ์์ ๋ผ์ฐํฐ๋ก ์ด๋ํ์ง ์๋ ํํฐ๋ง ์ต์ ์ ๋๋ค. ์ด๋ฌํ ์ฒด๊ณ๋ ๊ฑฐ์ ํ์ํ์ง ์์ต๋๋ค. ๋ฐฉํ๋ฒฝ์ ํตํด ์ฐจ๋จ์ ๊ตฌํํ ์ ์์ต๋๋ค.
๋ผ์ฐํ
๋ฃจํ
๋ผ์ฐํ
๋ฃจํ - ํจํท์ด ttl ๋ง๋ฃ ์ ์ ๋ผ์ฐํฐ ๊ฐ์ ์คํ๋๋ ์ํฉ์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ ๊ตฌ์ฑ ์ค๋ฅ์ ๊ฒฐ๊ณผ์ด๋ฉฐ ๋๊ท๋ชจ ๋คํธ์ํฌ์์๋ ์์ ๋คํธ์ํฌ์์ ๋์ ๋ผ์ฐํ
ํ๋กํ ์ฝ์ ๊ตฌํ์ผ๋ก ์กฐ์ฌ์ค๋ฝ๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค.
์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ๋ํ (๊ฐ์ฅ ๊ฐ๋จํ) ์:
๋ผ์ฐํ ๋ฃจํ ์์ ๋ ์ค์ฉ์ ์ด์ง ์์ง๋ง ๋ผ์ฐํฐ๊ฐ ์ด์์ ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ํด ์ ํ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ ์ฑ ๊ธฐ๋ฐ ๋ผ์ฐํ ๋ฐ ์ถ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ
๊ฒฝ๋ก๋ฅผ ์ ํํ ๋ ๋ผ์ฐํฐ๋ ํจํท ํค๋(Dst. Address)์์ ํ๋์ ํ๋๋ง ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ด ๊ธฐ๋ณธ ๋ผ์ฐํ ์ ๋๋ค. ์๋ณธ ์ฃผ์, ํธ๋ํฝ ์ ํ(ToS), ECMP ์๋ ๊ท ํ ๋ฑ ๋ค๋ฅธ ์กฐ๊ฑด์ ๊ธฐ๋ฐํ ๋ผ์ฐํ ์ PBR(Policy Base Routing)์ ์ํ๋ฉฐ ์ถ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ฌ์ฉํฉ๋๋ค.
๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ๊ฒฝ๋ก ๋ผ์ฐํ ํ ์ด๋ธ ๋ด์ ๊ธฐ๋ณธ ๊ฒฝ๋ก ์ ํ ๊ท์น์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ผ์ฐํ ๊ท์น์ ๊ธฐ๋ณธ ํ ์ด๋ธ์ ์ถ๊ฐ๋ฉ๋๋ค. ๊ด๋ฆฌ์๋ ์์ ๊ฐ์์ ์ถ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ ์์ฑํ๊ณ ์ฌ๊ธฐ์ ํจํท์ ๋ผ์ฐํ ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ท์น์ ์๋ก ์ถฉ๋ํ์ง ์์ต๋๋ค. ํจํค์ง๊ฐ ์ง์ ๋ ํ ์ด๋ธ์์ ์ ์ ํ ๊ท์น์ ์ฐพ์ง ๋ชปํ๋ฉด ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก ์ด๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ์ ํตํ ๋ฐฐํฌ์ ์:
- 192.168.100.10-> 8.8.8.8
- 192.168.100.10์ ํธ๋ํฝ์ ๋ ์ด๋ธ์ด ์ง์ ๋จ isp1์ ํตํด ะฒ
[Prerouting|Mangle]
- ํ ์ด๋ธ์ ๋ผ์ฐํ ๋จ๊ณ์์ isp1์ ํตํด 8.8.8.8์ ๋ํ ๊ฒฝ๋ก ๊ฒ์
- ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ต๋๋ค. ํธ๋ํฝ์ ๊ฒ์ดํธ์จ์ด 10.10.10.1๋ก ์ ์ก๋ฉ๋๋ค.
- 192.168.100.10์ ํธ๋ํฝ์ ๋ ์ด๋ธ์ด ์ง์ ๋จ isp1์ ํตํด ะฒ
- 192.168.200.20-> 8.8.8.8
- 192.168.200.20์ ํธ๋ํฝ์ ๋ ์ด๋ธ์ด ์ง์ ๋จ isp2์ ํตํด ะฒ
[Prerouting|Mangle]
- ํ ์ด๋ธ์ ๋ผ์ฐํ ๋จ๊ณ์์ isp2์ ํตํด 8.8.8.8์ ๋ํ ๊ฒฝ๋ก ๊ฒ์
- ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ต๋๋ค. ํธ๋ํฝ์ ๊ฒ์ดํธ์จ์ด 10.20.20.1๋ก ์ ์ก๋ฉ๋๋ค.
- 192.168.200.20์ ํธ๋ํฝ์ ๋ ์ด๋ธ์ด ์ง์ ๋จ isp2์ ํตํด ะฒ
- ๊ฒ์ดํธ์จ์ด ์ค ํ๋(10.10.10.1 ๋๋ 10.20.20.1)๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ํจํท์ด ํ ์ด๋ธ๋ก ์ด๋ํฉ๋๋ค. ๋ณธ๊ด ๊ฑฐ๊ธฐ์์ ์ ์ ํ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ๊ฒ์ ๋๋ค
์ฉ์ด ๋ฌธ์
RouterOS์๋ ํน์ ์ฉ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์์ ๊ท์น์ผ๋ก ์์
ํ ๋ [IP]->[Routes]
๋ผ์ฐํ
ํ
์ด๋ธ์ด ํ์๋์ง๋ง ๋ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ะ [IP]->[Routes]->[Rule]
ํ
์ด๋ธ ์์
์ ๋ ์ด๋ธ ์กฐ๊ฑด์์ ๋ชจ๋ ๊ฒ์ด ์ ํํฉ๋๋ค.
ํน์ ๋ผ์ฐํ ํ ์ด๋ธ๋ก ํจํท์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
RouterOS๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊ท์น
[IP]->[Routes]->[Rules]
- ๊ฒฝ๋ก ๋ง์ปค(
action=mark-routing
)์์[IP]->[Firewall]->[Mangle]
- VRF
๊ท์น [IP]->[Route]->[Rules]
๊ท์น์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ ํจํท์ด ๊ท์น์ ์กฐ๊ฑด๊ณผ ์ผ์นํ๋ฉด ๋ ์ด์ ์ ๋ฌ๋์ง ์์ต๋๋ค.
๋ผ์ฐํ ๊ท์น์ ์ฌ์ฉํ๋ฉด ์์ ์ ์ฃผ์๋ฟ๋ง ์๋๋ผ ํจํท์ ์์ ํ ์์ค ์ฃผ์์ ์ธํฐํ์ด์ค์ ์์กดํ์ฌ ๋ผ์ฐํ ๊ฐ๋ฅ์ฑ์ ํ์ฅํ ์ ์์ต๋๋ค.
๊ท์น์ ์กฐ๊ฑด๊ณผ ์์ ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ ํฉ. ํจํค์ง๊ฐ FIB์์ ํ์ธ๋๋ ํ์ ๋ชฉ๋ก์ ์ค์ง์ ์ผ๋ก ๋ฐ๋ณตํฉ๋๋ค. ToS๋ง ๋๋ฝ๋ฉ๋๋ค.
- ํ๋
- ์กฐํ - ํ ์ด๋ธ์ ํจํท ๋ณด๋ด๊ธฐ
- lookup only in table - ํ ์ด๋ธ์์ ํจํค์ง๋ฅผ ์ ๊ธ๋๋ค. ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉด ํจํค์ง๊ฐ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก ์ด๋ํ์ง ์์ต๋๋ค.
- ๋๋กญ - ํจํท ๋๋กญ
- ์ฐ๊ฒฐํ ์ ์์ - ๋ฐ์ ์ ์๋ฆผ๊ณผ ํจ๊ป ํจํท ํ๊ธฐ
FIB์์ ๋ก์ปฌ ํ๋ก์ธ์ค์ ๋ํ ํธ๋ํฝ์ ๊ท์น์ ์ฐํํ์ฌ ์ฒ๋ฆฌ๋ฉ๋๋ค. [IP]->[Route]->[Rules]
:
๋งํน [IP]->[Firewall]->[Mangle]
๋ผ์ฐํ
๋ ์ด๋ธ์ ์ฌ์ฉํ๋ฉด ๊ฑฐ์ ๋ชจ๋ ๋ฐฉํ๋ฒฝ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ํจํท์ ๋ํ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์ค์ ๋ก ๋ชจ๋ ํญ๋ชฉ์ด ์๋ฏธ๊ฐ ์๋ ๊ฒ์ ์๋๋ฉฐ ์ผ๋ถ๋ ๋ถ์์ ํ๊ฒ ์๋ํ ์ ์์ต๋๋ค.
ํจํค์ง์ ๋ ์ด๋ธ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ์ฆ์ ๋ฃ์ด ๋ผ์ฐํ ๋งํฌ
- ๋จผ์ ๋ฃ์ด ์ฐ๊ฒฐ ํ์, ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๊ฒฐ ํ์ ์ค์ ๋ผ์ฐํ ๋งํฌ
๋ฐฉํ๋ฒฝ์ ๊ดํ ๊ธฐ์ฌ์์ ๋ ๋ฒ์งธ ์ต์ ์ด ๋ฐ๋์งํ๋ค๊ณ ์ผ์ต๋๋ค. ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ CPU์ ๋ถํ๋ฅผ ์ค์ ๋๋ค. ์ด๊ฒ์ ์ ์ ์ผ๋ก ์ฌ์ค์ด ์๋๋๋ค. ์ด๋ฌํ ๋งํน ๋ฐฉ๋ฒ์ด ํญ์ ๋์ผํ ๊ฒ์ ์๋๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ ์
์ ์ฑ ๊ธฐ๋ฐ ๋ผ์ฐํ ์ ์ฌ์ฉํ๋ ์์ ๋ก ์ด๋ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ํ์ํ ์ด์ ๋ฅผ ํจ์ฌ ์ฝ๊ฒ ๋ณด์ฌ์ค ์ ์์ต๋๋ค.
MultiWAN ๋ฐ ๋๊ฐ๋(์ถ๋ ฅ) ํธ๋ํฝ ๋ฐํ
MultiWAN ๊ตฌ์ฑ์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ : Mikrotik์ "ํ์ฑ" ๊ณต๊ธ์๋ฅผ ํตํด์๋ง ์ธํฐ๋ท์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ผ์ฐํฐ๋ ์์ฒญ์ด ์ด๋ค IP๋ก ์๋์ง ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์๋ต์ ์์ฑํ ๋ isp1์ ํตํ ๊ฒฝ๋ก๊ฐ ํ์ฑํ๋ ๋ผ์ฐํ ํ ์ด๋ธ์์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ต๋๋ค. ๋ํ ์ด๋ฌํ ํจํท์ ์์ ์์๊ฒ ๊ฐ๋ ๋์ค์ ํํฐ๋ง๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
๋ ๋ค๋ฅธ ํฅ๋ฏธ๋ก์ด ์ . ether1 ์ธํฐํ์ด์ค์ "๋จ์" ์์ค nat๊ฐ ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ: /ip fi nat add out-interface=ether1 action=masquerade
ํจํค์ง๋ src์ ํจ๊ป ์จ๋ผ์ธ ์ํ๊ฐ ๋ฉ๋๋ค. address=10.10.10.100, ์ด๋ ์ํฉ์ ๋์ฑ ์
ํ์ํต๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง ๊ทธ ์ค ์ด๋ค ๋ฐฉ๋ฒ์ด๋ ์ถ๊ฐ ๋ผ์ฐํ
ํ
์ด๋ธ์ด ํ์ํฉ๋๋ค.
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2
์ฌ์ฉ [IP]->[Route]->[Rules]
์ง์ ๋ ์์ค IP๊ฐ ์๋ ํจํท์ ์ฌ์ฉํ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ง์ ํฉ๋๋ค.
/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2
์ฌ์ฉํ ์ ์์ต๋๋ค action=lookup
, ๊ทธ๋ฌ๋ ๋ก์ปฌ ๋ฐ์ ํธ๋ํฝ์ ๊ฒฝ์ฐ ์ด ์ต์
์ ์๋ชป๋ ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ์ ์์ ํ ์ ์ธํฉ๋๋ค.
- ์์คํ ์ Src๋ก ์๋ต ํจํท์ ์์ฑํฉ๋๋ค. ์ฃผ์: 10.20.20.200
- Routing Decision(2) ๋จ๊ณ์์ ํ์ธํ๋ ์ฌํญ
[IP]->[Routes]->[Rules]
ํจํท์ ๋ผ์ฐํ ํ ์ด๋ธ๋ก ์ ์ก๋ฉ๋๋ค. ISP2 ์ด์ - ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ฐ๋ฅด๋ฉด ํจํท์ ether10.20.20.1 ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ฒ์ดํธ์จ์ด 2๋ก ์ ์ก๋์ด์ผ ํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ Mangle ํ ์ด๋ธ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ์๋ํ๋ ์ฐ๊ฒฐ ์ถ์ ๊ธฐ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ฌ์ฉ [IP]->[Firewall]->[Mangle]
๋ค์ด์ค๋ ํจํท์ผ๋ก ์ฐ๊ฒฐ์ด ์์๋๋ฏ๋ก ํ์(action=mark-connection
), ํ์๋ ์ฐ๊ฒฐ์์ ๋๊ฐ๋ ํจํท์ ๊ฒฝ์ฐ ๋ผ์ฐํ
๋ ์ด๋ธ(action=mark-routing
).
/ip firewall mangle
#ะะฐัะบะธัะพะฒะบะฐ ะฒั
ะพะดััะธั
ัะพะตะดะธะฝะตะฝะธะน
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#ะะฐัะบะธัะพะฒะบะฐ ะธัั
ะพะดััะธั
ะฟะฐะบะตัะพะฒ ะฝะฐ ะพัะฝะพะฒะต ัะพะตะดะธะฝะตะฝะธะน
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no
ํ๋์ ์ธํฐํ์ด์ค์ ์ฌ๋ฌ ๊ฐ์ ip๊ฐ ๊ตฌ์ฑ๋์ด ์๋ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์์ต๋๋ค. dst-address
ํ์ธํ๊ธฐ.
- ํจํท์ ether2 ์ธํฐํ์ด์ค์์ ์ฐ๊ฒฐ์ ์ฝ๋๋ค. ํจํค์ง๊ฐ ๋ค์ด๊ฐ๋๋ค
[INPUT|Mangle]
์ฐ๊ฒฐ์ ๋ชจ๋ ํจํท์ ๋ค์๊ณผ ๊ฐ์ด ํ์ํฉ๋๋ค. isp2์์ - ์์คํ ์ Src๋ก ์๋ต ํจํท์ ์์ฑํฉ๋๋ค. ์ฃผ์: 10.20.20.200
- Routing Decision(2) ๋จ๊ณ์์๋ ๋ผ์ฐํ
ํ
์ด๋ธ์ ๋ฐ๋ผ ํจํท์ด ether10.20.20.1 ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ฒ์ดํธ์จ์ด 1๋ก ์ ์ก๋ฉ๋๋ค. ํจํค์ง๋ฅผ ๋ก๊ทธ์ธํ์ฌ ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
[OUTPUT|Filter]
- ๋ฌด๋ ์์
[OUTPUT|Mangle]
์ฐ๊ฒฐ ๋ ์ด๋ธ์ด ํ์ธ๋จ isp2์์ ํจํท์ ๊ฒฝ๋ก ๋ ์ด๋ธ์ ์์ ํฉ๋๋ค. ISP2 ์ด์ - Routing Adjusment(3) ๋จ๊ณ๋ ๋ผ์ฐํ ๋ ์ด๋ธ์ด ์๋์ง ํ์ธํ๊ณ ์ ์ ํ ๋ผ์ฐํ ํ ์ด๋ธ๋ก ๋ณด๋ ๋๋ค.
- ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ฐ๋ฅด๋ฉด ํจํท์ ether10.20.20.1 ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ฒ์ดํธ์จ์ด 2๋ก ์ ์ก๋์ด์ผ ํฉ๋๋ค.
MultiWAN ๋ฐ ๋ฐํ dst-nat ํธ๋ํฝ
์๋ฅผ ๋ค์ด ์ฌ์ค ์๋ธ๋ท์ ๋ผ์ฐํฐ ๋ค์ ์๋ฒ(์: ์น)๊ฐ ์๊ณ ๊ณต๊ธ์๋ฅผ ํตํด ์๋ฒ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํด์ผ ํ๋ ๊ฒฝ์ฐ ์ํํ ์์ ์ ๋ ๋ณต์กํฉ๋๋ค.
/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100
๋ฌธ์ ์ ๋ณธ์ง์ ๋์ผํ๋ฉฐ ์๋ฃจ์
์ Firewall Mangle ์ต์
๊ณผ ์ ์ฌํ๋ฉฐ ๋ค๋ฅธ ์ฒด์ธ๋ง ์ฌ์ฉ๋ฉ๋๋ค.
/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no
๋ค์ด์ด๊ทธ๋จ์๋ NAT๊ฐ ํ์๋์ง ์์ง๋ง ๋ชจ๋ ๊ฒ์ด ๋ช
ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
MultiWAN ๋ฐ ์์๋ฐ์ด๋ ์ฐ๊ฒฐ
PBR ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์๋ก ๋ค๋ฅธ ๋ผ์ฐํฐ ์ธํฐํ์ด์ค์์ ๋ค์ค VPN(์์์๋ SSTP) ์ฐ๊ฒฐ์ ์์ฑํ ์ ์์ต๋๋ค.
์ถ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ:
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3
add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3
ํจํค์ง ํ์:
/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no
๊ฐ๋จํ NAT ๊ท์น, ๊ทธ๋ ์ง ์์ผ๋ฉด ํจํท์ด ์๋ชป๋ Src์ ํจ๊ป ์ธํฐํ์ด์ค๋ฅผ ๋ ๋ฉ๋๋ค. ์ฃผ์:
/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade
ํ์ฑ โโ:
- ๋ผ์ฐํฐ๋ XNUMX๊ฐ์ SSTP ํ๋ก์ธ์ค๋ฅผ ์์ฑํฉ๋๋ค.
- Routing Decision (2) ๋จ๊ณ์์๋ ๋ฉ์ธ ๋ผ์ฐํ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฌํ ํ๋ก์ธ์ค์ ๋ํ ๊ฒฝ๋ก๋ฅผ ์ ํํฉ๋๋ค. ๋์ผํ ๊ฒฝ๋ก์์ ํจํท์ Src๋ฅผ ์์ ํฉ๋๋ค. ether1 ์ธํฐํ์ด์ค์ ๋ฐ์ธ๋ฉ๋ ์ฃผ์
- ะ
[Output|Mangle]
๋ค๋ฅธ ์ฐ๊ฒฐ์ ํจํท์ ๋ค๋ฅธ ๋ ์ด๋ธ์ ๋ฐ์ต๋๋ค. - ํจํท์ Routing Adjusment ๋จ๊ณ์์ ๋ ์ด๋ธ์ ํด๋นํ๋ ํ ์ด๋ธ์ ๋ค์ด๊ฐ ํจํท์ ๋ณด๋ผ ์๋ก์ด ๊ฒฝ๋ก๋ฅผ ๋ฐ์ต๋๋ค.
- ๊ทธ๋ฌ๋ ํจํค์ง์๋ ์ฌ์ ํ Src๊ฐ ์์ต๋๋ค. ๋จ๊ณ์์ ether1์ ์ฃผ์
[Nat|Srcnat]
์ฃผ์๋ ์ธํฐํ์ด์ค์ ๋ฐ๋ผ ๋์ฒด๋ฉ๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋ ๋ผ์ฐํฐ์์ ๋ค์ ์ฐ๊ฒฐ ํ
์ด๋ธ์ ๋ณผ ์ ์์ต๋๋ค.
์ฐ๊ฒฐ ์ถ์ ๊ธฐ๊ฐ ๋ ์ผ์ฐ ์๋ํฉ๋๋ค. [Mangle]
ะธ [Srcnat]
, ๊ทธ๋์ ๋ชจ๋ ์ฐ๊ฒฐ์ ๋์ผํ ์ฃผ์์์ ๋์ต๋๋ค. ์์ธํ ๋ณด๋ฉด Replay Dst. Address
NAT ๋ค์์ ์ฃผ์๊ฐ ์์ต๋๋ค.
VPN ์๋ฒ(ํ
์คํธ ๋ฒค์น์ ํ๋ ์์)์์ ๋ชจ๋ ์ฐ๊ฒฐ์ด ์ฌ๋ฐ๋ฅธ ์ฃผ์์์ ์ค๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ธธ์ ์ก์
๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ฐ ์ฃผ์์ ๋ํด ํน์ ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ฐ๋จํ ์ง์ ํ ์ ์์ต๋๋ค.
/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1
๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ฒฝ๋ก๋ ๋๊ฐ๋ ํธ๋ํฝ๋ฟ๋ง ์๋๋ผ ํต๊ณผํ๋ ํธ๋ํฝ์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ํ ๋ถ์ ์ ํ ํต์ ์ฑ๋์ ํต๊ณผํ๊ธฐ ์ํด VPN ์๋ฒ์ ๋ํ ํธ๋ํฝ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ 6๊ฐ์ ๊ท์น์ ๋ ์ถ๊ฐํด์ผ ํฉ๋๋ค. [IP]->[Routes]
ั type=blackhole
. ์ด์ ๋ฒ์ ์์ - 3๊ฐ์ ๊ท์น [IP]->[Route]->[Rules]
.
ํต์ ์ฑ๋๋ณ ์ฌ์ฉ์ ์ฐ๊ฒฐ ๋ถํฌ
๋จ์ํ๊ณ ์ผ์์ ์ธ ์์ . ๋ค์ ๋งํ์ง๋ง ์ถ๊ฐ ๋ผ์ฐํ ํ ์ด๋ธ์ด ํ์ํฉ๋๋ค.
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
์ฌ์ฉ [IP]->[Route]->[Rules]
/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2
์ฌ์ฉํ๋ ๊ฒฝ์ฐ action=lookup
๊ทธ๋ฐ ๋ค์ ์ฑ๋ ์ค ํ๋๊ฐ ๋นํ์ฑํ๋๋ฉด ํธ๋ํฝ์ด ๊ธฐ๋ณธ ํ
์ด๋ธ๋ก ์ด๋ํ๊ณ ์์
์ฑ๋์ ํต๊ณผํฉ๋๋ค. ์ด๊ฒ์ด ํ์ํ์ง ์ฌ๋ถ๋ ์์
์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
์ ํ์ ์ฌ์ฉ [IP]->[Firewall]->[Mangle]
IP ์ฃผ์ ๋ชฉ๋ก์ด ์๋ ๊ฐ๋จํ ์์
๋๋ค. ์์น์ ์ผ๋ก ๊ฑฐ์ ๋ชจ๋ ์กฐ๊ฑด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. layer7์ ์ ์ผํ ์ฃผ์ ์ฌํญ์ ์ฐ๊ฒฐ ๋ ์ด๋ธ๊ณผ ์์ ์ด๋ฃจ๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง ์ผ๋ถ ํธ๋ํฝ์ ์ฌ์ ํ โโ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํฉ๋๋ค.
/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2
๋ค์์ ํตํด ํ๋์ ๋ผ์ฐํ
ํ
์ด๋ธ์์ ์ฌ์ฉ์๋ฅผ "์ ๊ธ" ์ ์์ต๋๋ค. [IP]->[Route]->[Rules]
:
/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2
ํตํด [IP]->[Firewall]->[Filter]
:
/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject
๋ฆฌํธ๋ฆฌํธ ํ๋ก dst-address-type=!local
์ถ๊ฐ ์กฐ๊ฑด dst-address-type=!local
์ฌ์ฉ์์ ํธ๋ํฝ์ด ๋ผ์ฐํฐ์ ๋ก์ปฌ ํ๋ก์ธ์ค(dns, winbox, ssh, ...)์ ๋๋ฌํด์ผ ํฉ๋๋ค. ์ฌ๋ฌ ๋ก์ปฌ ์๋ธ๋ท์ด ๋ผ์ฐํฐ์ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์๋ฅผ ๋ค์ด ๋ค์์ ์ฌ์ฉํ์ฌ ์๋ธ๋ท ๊ฐ์ ํธ๋ํฝ์ด ์ธํฐ๋ท์ผ๋ก ์ด๋ํ์ง ์๋๋ก ํด์ผ ํฉ๋๋ค. dst-address-table
.
์ฌ์ฉ ์์์ [IP]->[Route]->[Rules]
์ด๋ฌํ ์์ธ๋ ์์ง๋ง ํธ๋ํฝ์ ๋ก์ปฌ ํ๋ก์ธ์ค์ ๋๋ฌํฉ๋๋ค. ์ฌ์ค์ ํ์๋ FIB ํจํค์ง์ ๋ค์ด๊ฐ๋ ๊ฒ์
๋๋ค. [PREROUTING|Mangle]
๊ฒฝ๋ก ๋ ์ด๋ธ์ด ์๊ณ ๋ก์ปฌ ์ธํฐํ์ด์ค๊ฐ ์๋ ๊ธฐ๋ณธ ์ด์ธ์ ๋ผ์ฐํ
ํ
์ด๋ธ๋ก ์ด๋ํฉ๋๋ค. ๋ผ์ฐํ
๊ท์น์ ๊ฒฝ์ฐ ๋จผ์ ํจํท์ด ๋ก์ปฌ ํ๋ก์ธ์ค์ฉ์ธ์ง ํ์ธํ๊ณ ์ฌ์ฉ์ PBR ๋จ๊ณ์์๋ง ์ง์ ๋ ๋ผ์ฐํ
ํ
์ด๋ธ๋ก ์ด๋ํฉ๋๋ค.
์ฌ์ฉ [IP]->[Firewall]->[Mangle action=route]
์ด ์์
์ [Prerouting|Mangle]
๊ฒ์ดํธ์จ์ด ์ฃผ์๋ฅผ ์ง์ ์ง์ ํ์ฌ ์ถ๊ฐ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ๋ ๊ฒ์ดํธ์จ์ด๋ก ํธ๋ํฝ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1
ะะตะนััะฒะธะต route
๋ผ์ฐํ
๊ท์น๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ์ต๋๋ค([IP]->[Route]->[Rules]
). ๊ฒฝ๋ก ํ์์ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฒ์ ๊ท์น์ ์์น์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. action=route
์ด์์ ๊ฐ์น action=mark-route
, ๊ทธ๋ฌ๋ฉด ์ฌ์ฉ๋ฉ๋๋ค(ํ๋๊ทธ์ ๊ด๊ณ์์ด passtrough
), ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค.
์ํค์๋ ์ด ์์
์ ๋ํ ์ ๋ณด๊ฐ ๊ฑฐ์ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒฐ๋ก ์ ์คํ์ ์ผ๋ก ์ป์ ๊ฒ์
๋๋ค. ์ด์จ๋ ์ด ์ต์
์ ์ฌ์ฉํ ๋ ๋ค๋ฅธ ์ต์
๋ณด๋ค ์ด์ ์ ์ ๊ณตํ๋ ์ต์
์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
PPC ๊ธฐ๋ฐ ๋์ ๋ฐธ๋ฐ์ฑ
Per Connection Classifier - ๋ณด๋ค ์ ์ฐํ ECMP ์๋ ๋ก๊ทธ์ ๋๋ค. ECMP์ ๋ฌ๋ฆฌ ํธ๋ํฝ์ ์ฐ๊ฒฐ๋ณ๋ก ๋ ์๊ฒฉํ๊ฒ ๋๋๋๋ค(ECMP๋ ์ฐ๊ฒฐ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด์ง๋ง ๋ผ์ฐํ ์บ์์ ์์ ์ด๋ฃจ๋ฉด ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ์ป์).
PCC๋ ์ง์ ๋ ํ๋ ip ํค๋์์ 32๋นํธ ๊ฐ์ผ๋ก ๋ณํํ๊ณ ๋ค์์ผ๋ก ๋๋๋๋ค. ๋ถ๋ชจ. ๋๋์
์ ๋๋จธ์ง ๋ถ๋ถ์ ์ง์ ๋ ๊ฐ๊ณผ ๋น๊ต๋ฉ๋๋ค. ๋๋จธ์ง ์ผ์นํ๋ฉด ์ง์ ๋ ์กฐ์น๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์ฃผ์๊ฐ XNUMX๊ฐ์ธ ์:
192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1
XNUMX๊ฐ ์ฑ๋ ๊ฐ src.address์ ์ํ ๋์ ํธ๋ํฝ ๋ถ๋ฐฐ์ ์:
#ะขะฐะฑะปะธัะฐ ะผะฐัััััะธะทะฐัะธะธ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3
#ะะฐัะบะธัะพะฒะบะฐ ัะพะตะดะธะฝะตะฝะธะน ะธ ะผะฐัััััะพะฒ
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3
๊ฒฝ๋ก๋ฅผ ํ์ํ ๋ ์ถ๊ฐ ์กฐ๊ฑด์ด ์์ต๋๋ค. in-interface=br-lan
, ๊ทธ๊ฒ ์์ด action=mark-routing
์ธํฐ๋ท์ ์๋ต ํธ๋ํฝ์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ๋ฐ๋ผ ๊ณต๊ธ์์๊ฒ ๋ค์ ๋์๊ฐ๋๋ค.
ํต์ ์ฑ๋ ์ ํ
Check ping์ ์ข์ ๋๊ตฌ์ด์ง๋ง ๊ฐ์ฅ ๊ฐ๊น์ด IP ํผ์ด์์ ์ฐ๊ฒฐ๋ง ํ์ธํ๊ณ ๊ณต๊ธ์ ๋คํธ์ํฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ ์์ ๋ผ์ฐํฐ๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ฐ์ฅ ๊ฐ๊น์ด ํผ์ด ์ธ๋ถ์์ ์ฐ๊ฒฐ ๋๊น์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ping์ ํ์ธํ๋ฉด ๊ธ๋ก๋ฒ ๋คํธ์ํฌ์ ๋ํ ์ก์ธ์ค์ ๋ํ ์ต์ ์ ๋ณด๊ฐ ํญ์ ํ์๋์ง ์์ต๋๋ค.
๊ณต๊ธ์์ ๋๊ธฐ์
์ BGP ๋์ ๋ผ์ฐํ
ํ๋กํ ์ฝ์ด ์๋ ๊ฒฝ์ฐ ๊ฐ์ ๋ฐ ์ฌ๋ฌด์ค ์ฌ์ฉ์๋ ํน์ ํต์ ์ฑ๋์ ํตํด ์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋
๋ฆฝ์ ์ผ๋ก ํ์
ํด์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํน์ ํต์ ์ฑ๋์ ํตํด ์ธํฐ๋ท์์ IP ์ฃผ์์ ๊ฐ์ฉ์ฑ์ ํ์ธํ๊ณ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ ์ ํํ๋ ์คํฌ๋ฆฝํธ(์: google dns: 8.8.8.8)๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. 8.8.4.4. ๊ทธ๋ฌ๋ Mikrotik ์ปค๋ฎค๋ํฐ์์๋ ์ด๋ฅผ ์ํด ๋ ํฅ๋ฏธ๋ก์ด ๋๊ตฌ๊ฐ ์กฐ์ ๋์์ต๋๋ค.
์ฌ๊ท ๋ผ์ฐํ
์ ๋ํ ๋ช ๋ง๋
๋ค์ค ํ BGP ํผ์ด๋ง์ ๊ตฌ์ถํ ๋ ์ฌ๊ท ๋ผ์ฐํ
์ด ํ์ํ๋ฉฐ ์ถ๊ฐ ์คํฌ๋ฆฝํธ ์์ด ํต์ ์ฑ๋์ ์ ํํ๊ธฐ ์ํด ์ฒดํฌ ๊ฒ์ดํธ์จ์ด์ ์์ ์ด๋ฃจ๋ ์ฌ๊ท ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ธ ๊ตํํ MikroTik ์ฌ์ฉ์๋ก ์ธํด ์ ์ ๋ผ์ฐํ
์ ๊ธฐ๋ณธ ์ฌํญ์ ๋ํ ๊ธฐ์ฌ์ ๋ค์ด๊ฐ์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ฉ์ด๋ก ๋ฒ์/๋์ ๋ฒ์ ์ต์
๊ณผ ๊ฒฝ๋ก๊ฐ ์ธํฐํ์ด์ค์ ๋ฐ์ธ๋ฉ๋๋ ๋ฐฉ๋ฒ์ ์ดํดํ ๋์
๋๋ค.
- ๊ฒฝ๋ก๋ ํด๋น ๋ฒ์ ๊ฐ ๋ฐ ๋์ ๋ฒ์ ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ธฐ๋ณธ ํ ์ด๋ธ์ ๋ชจ๋ ํญ๋ชฉ์ ๊ธฐ๋ฐ์ผ๋ก ํจํท์ ๋ณด๋ผ ์ธํฐํ์ด์ค๋ฅผ ์กฐํํฉ๋๋ค.
- ์ฐพ์ ์ธํฐํ์ด์ค์์ ์ง์ ๋ ๊ฒ์ดํธ์จ์ด๋ก ํจํท์ ๋ณด๋ผ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ํํฉ๋๋ค.
- ์ฐพ์ ์ฐ๊ฒฐ ํญ๋ชฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ํํ์ฌ ํจํท์ ๊ฒ์ดํธ์จ์ด๋ก ๋ณด๋ ๋๋ค.
์ฌ๊ท ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋์ผํ์ง๋ง ๋ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค.
- 1-3 ์ง์ ๋ ๊ฒ์ดํธ์จ์ด์ ๋๋ฌํ ์ ์๋ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก์ ํ๋ ์ด์์ ๊ฒฝ๋ก๊ฐ ์ถ๊ฐ๋ฉ๋๋ค.
- 4-6 "์ค๊ฐ" ๊ฒ์ดํธ์จ์ด์ ๋ํ ๊ฒฝ๋ก ์ฐ๊ฒฐ ๊ฒฝ๋ก ์ฐพ๊ธฐ
์ฌ๊ท ๊ฒ์์ ๋ชจ๋ ์กฐ์์ RIB์์ ๋ฐ์ํ๋ฉฐ ์ต์ข
๊ฒฐ๊ณผ๋ง FIB๋ก ์ ์ก๋ฉ๋๋ค. 0.0.0.0/0 via 10.10.10.1 on ether1
.
์ฌ๊ท ๋ผ์ฐํ
์ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ์
๊ตฌ์ฑ :
/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2
ํจํท์ด 10.10.10.1๋ก ์ ์ก๋๋์ง ํ์ธํ ์ ์์ต๋๋ค.
Check gateway๋ ์ฌ๊ท์ ๋ผ์ฐํ ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๊ณ ๋จ์ํ ping์ 8.8.8.8๋ก ๋ณด๋ ๋๋ค. (๊ธฐ๋ณธ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก) ๊ฒ์ดํธ์จ์ด 10.10.10.1์ ํตํด ์ก์ธ์คํ ์ ์์ต๋๋ค.
10.10.10.1๊ณผ 8.8.8.8 ์ฌ์ด์ ํต์ ์ด ๋์ด์ง๋ฉด ๊ฒฝ๋ก ์ฐ๊ฒฐ์ด ๋์ด์ง์ง๋ง 8.8.8.8์ ๋ํ ํจํท(ํ
์คํธ ํ ํฌํจ)์ ๊ณ์ํด์ 10.10.10.1์ ํต๊ณผํฉ๋๋ค.
ether1์ ๋ํ ๋งํฌ๊ฐ ๋์ด์ง๋ฉด 8.8.8.8 ์ด์ ์ ํจํท์ด ๋ ๋ฒ์งธ ๊ณต๊ธ์๋ฅผ ํต๊ณผํ ๋ ๋ถ์พํ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ 8.8.8.8์ ์ฌ์ฉํ ์ ์์ ๋ NetWatch๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ๋งํฌ๊ฐ ๋์ด์ง๋ฉด NetWatch๋ ๋จ์ํ ๋ฐฑ์ ํต์ ์ฑ๋์ ํตํด ์์ ํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ ์์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ์ถ๊ฐ ํํฐ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ์ฌ ํด๊ฒฐ:
/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole
ํ๋ธ๋ ์ ์๋ค
๊ทธ๋ฆฌ๊ณ ์, ๊ทธ๋ฌํ ์์ฝ์ ์ฌ์ฉํ ๋ ์ฃผ์ 8.8.8.8์ ๊ณต๊ธ์ ์ค ํ๋์ ํ๋ ์ฝ๋ฉ๋๋ฏ๋ก DNS ์์ค๋ก ์ ํํ๋ ๊ฒ์ ์ข์ ์๊ฐ์ด ์๋๋๋ค.
VRF(Virtual Routing and Forwarding)์ ๋ํ ๋ช ๋ง๋
VRF ๊ธฐ์ ์ ํ๋์ ๋ฌผ๋ฆฌ์ ๋ผ์ฐํฐ ๋ด์ ์ฌ๋ฌ ๊ฐ์ ๋ผ์ฐํฐ๋ฅผ ์์ฑํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ด ๊ธฐ์ ์ ํต์ ์ฌ์
์(์ผ๋ฐ์ ์ผ๋ก MPLS์ ํจ๊ป)์์ ์๋ธ๋ท ์ฃผ์๊ฐ ๊ฒน์น๋ ํด๋ผ์ด์ธํธ์ L3VPN ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ Mikrotik์ VRF๋ ๋ผ์ฐํ
ํ
์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ฌ๋ฌ ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ผ์ฐํฐ์ ๋ก์ปฌ IP ์ฃผ์๋ ๋ชจ๋ VRF์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค.
vrf ๊ตฌ์ฑ ์:
/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2
/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0
ether2์ ์ฐ๊ฒฐ๋ ์ฅ์น์์ ping์ด ๋ค๋ฅธ vrf์์ ๋ผ์ฐํฐ ์ฃผ์๋ก ์ด๋ํ๋ ๋ฐ๋ฉด(์ด๋ ๋ฌธ์ ์) ping์ด ์ธํฐ๋ท์ผ๋ก ์ด๋ํ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ธํฐ๋ท์ ์ก์ธ์คํ๋ ค๋ฉด ๊ธฐ๋ณธ ํ
์ด๋ธ์ ์ก์ธ์คํ๋ ์ถ๊ฐ ๊ฒฝ๋ก๋ฅผ ๋ฑ๋กํด์ผ ํฉ๋๋ค(vrf ์ฉ์ด๋ก ์ด๋ฅผ ๊ฒฝ๋ก ๋์ถ์ด๋ผ๊ณ ํจ).
/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2
๋ค์์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ๊ฒฝ๋ก ๋์ ๋ฐฉ๋ฒ์
๋๋ค. 172.17.0.1@main
์ธํฐํ์ด์ค ์ด๋ฆ ์ฌ์ฉ: 172.17.0.1%wlan1
.
๊ทธ๋ฆฌ๊ณ ๋์์ค๋ ํธ๋ํฝ์ ๋ํ ํ์๋ฅผ ์ค์ ํฉ๋๋ค. [PREROUTING|Mangle]
:
/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no
์ฃผ์๊ฐ ๊ฐ์ ์๋ธ๋ท
VRF ๋ฐ ๋ท๋งต์ ์ฌ์ฉํ์ฌ ๋์ผํ ๋ผ์ฐํฐ์์ ๋์ผํ ์ฃผ์ ์ง์ ์ ์ฌ์ฉํ์ฌ ์๋ธ๋ท์ ๋ํ ์ก์ธ์ค ๊ตฌ์ฑ:
๊ธฐ๋ณธ ๊ตฌ์ฑ:
/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2
/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0
๋ฐฉํ๋ฒฝ ๊ท์น:
#ะะฐัะบะธััะตะผ ะฟะฐะบะตัั ะดะปั ะพัะฟัะฐะฒะบะธ ะฒ ะฟัะฐะฒะธะปัะฝัั ัะฐะฑะปะธัั ะผะฐัััััะธะทะฐัะธะธ
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no
#ะกัะตะดััะฒะฐะผะธ netmap ะทะฐะผะตะฝัะตะผ ะฐะดัะตัะฐ "ััะธะผะตัะฝัั
" ะฟะพะดัะตัะตะน ะฝะฐ ัะตะฐะปัะฝัะต ะฟะพะดัะตัะธ
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
๋ฐํ ํธ๋ํฝ์ ๋ํ ๋ผ์ฐํ ๊ท์น:
#ะฃะบะฐะทะฐะฝะธะต ะธะผะตะฝะธ ะธะฝัะตััะตะนัะฐ ัะพะถะต ะผะพะถะตั ััะธัะฐัััั route leaking, ะฝะพ ะฟะพ ัััะธ ััั ัะพะทะดะฐะตััั ะฐะฝะฐะปะพะณ connected ะผะฐัััััะฐ
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2
์ง์ ๋ ๋ผ์ฐํ
ํ
์ด๋ธ์ dhcp๋ฅผ ํตํด ๋ฐ์ ๊ฒฝ๋ก ์ถ๊ฐ
ํน์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ๋์ ๊ฒฝ๋ก(์: dhcp ํด๋ผ์ด์ธํธ์์)๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํด์ผ ํ๋ ๊ฒฝ์ฐ VRF๊ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
vrf์ ์ธํฐํ์ด์ค ์ถ๊ฐ:
/ip route vrf
add interface=ether1 routing-mark=over-isp1
ํ ์ด๋ธ์ ํตํ ํธ๋ํฝ(๋ฐ์ ๋ฐ ํต๊ณผ) ์ ์ก ๊ท์น ISP1 ์ด์:
/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no
์๋ํ ์์๋ฐ์ด๋ ๋ผ์ฐํ ์ ์ํ ์ถ๊ฐ ๊ฐ์ง ๊ฒฝ๋ก:
/interface bridge
add name=bare
/ip route
add dst-address=0.0.0.0/0 gateway=bare
์ด ๊ฒฝ๋ก๋ ๋ก์ปฌ ๋ฐ์ ํจํท์ด ๋ผ์ฐํ
๊ฒฐ์ (2)์ ํต๊ณผํ๊ธฐ ์ ์๋ง ํ์ํฉ๋๋ค. [OUTPUT|Mangle]
๋ผ์ฐํ
๋ ์ด๋ธ์ ์ป์ผ์ญ์์ค. ๊ธฐ๋ณธ ํ
์ด๋ธ์ 0.0.0.0/0 ์ด์ ์ ๋ผ์ฐํฐ์ ๋ค๋ฅธ ํ์ฑ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ํ์ํ์ง ์์ต๋๋ค.
์ ์ฌ์ฌ connected-in
ะธ dynamic-in
ะฒ [Routing] -> [Filters]
๊ฒฝ๋ก ํํฐ๋ง(์ธ๋ฐ์ด๋ ๋ฐ ์์๋ฐ์ด๋)์ ์ผ๋ฐ์ ์ผ๋ก ๋์ ๋ผ์ฐํ ํ๋กํ ์ฝ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ ๋๊ตฌ์ด๋ฏ๋ก ํจํค์ง๋ฅผ ์ค์นํ ํ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ผ์ฐํ ), ๋ค์ด์ค๋ ํํฐ์๋ ๋ ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ฒด์ธ์ด ์์ต๋๋ค.
- connected-in โ ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก ํํฐ๋ง
- dynamic-in - PPP ๋ฐ DCHP์์ ์์ ํ ๋์ ๊ฒฝ๋ก ํํฐ๋ง
ํํฐ๋ง์ ์ฌ์ฉํ๋ฉด ๊ฒฝ๋ก๋ฅผ ์ญ์ ํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ฑฐ๋ฆฌ, ๋ผ์ฐํ ํ์, ์ค๋ช , ๋ฒ์, ๋์ ๋ฒ์ ๋ฑ ์ฌ๋ฌ ์ต์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ์ ํํ ๋๊ตฌ์ด๋ฉฐ ๋ผ์ฐํ ํํฐ ์์ด(์คํฌ๋ฆฝํธ๋ ์ ์ธ) ์์ ์ ์ํํ ์ ์๋ ๊ฒฝ์ฐ ๋ผ์ฐํ ํํฐ๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ ์์ ๊ณผ ๋์ค์ ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์ฑํ ์ฌ๋๋ค์ ํผ๋ํ์ง ๋ง์ญ์์ค. ๋์ ๋ผ์ฐํ ์ ๋งฅ๋ฝ์์ ๋ผ์ฐํ ํํฐ๋ ํจ์ฌ ๋ ์์ฃผ ๊ทธ๋ฆฌ๊ณ ๋ ์์ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๋์ ๊ฒฝ๋ก์ ๋ํ ๊ฒฝ๋ก ํ์ ์ค์
ํ ๋ผ์ฐํฐ์ ์. ๋ ๊ฐ์ VPN ์ฐ๊ฒฐ์ด ๊ตฌ์ฑ๋์ด ์๊ณ ๊ทธ ์์ ํธ๋ํฝ์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ๋ฐ๋ผ ๋ํ๋์ด์ผ ํฉ๋๋ค. ๋์์ ์ธํฐํ์ด์ค๊ฐ ํ์ฑํ๋ ๋ ๊ฒฝ๋ก๊ฐ ์๋์ผ๋ก ์์ฑ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค.
#ะัะธ ัะพะทะดะฐะฝะธะธ vpn ะฟะพะดะบะปััะตะฝะธะน ัะบะฐะทัะฒะฐะตะผ ัะพะทะดะฐะฝะธะต default route ะธ ะทะฐะดะฐะตะผ ะดะธััะฐะฝัะธั
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y add-default-route=yes default-route-distance=100 ...
#ะคะธะปัััะฐะผะธ ะพัะฟัะฐะฒะปัะตะผ ะผะฐัััััั ะฒ ะพะฟัะตะดะตะปะตะฝะฝัะต ัะฐะฑะปะธัั ะผะฐัััััะธะทะฐัะธะธ ะฝะฐ ะพัะฝะพะฒะต ะฟะพะดัะตัะธ ะฝะฐะทะฝะฐัะตะฝะธั ะธ ะดะธััะฐะฝัะธะธ
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2
์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์๋ง๋ ๋ฒ๊ทธ์ผ ๊ฒ์ ๋๋ค. ํ์ง๋ง ppp ์ธํฐํ์ด์ค์ ๋ํ vrf๋ฅผ ์์ฑํ๋ฉด 0.0.0.0/0์ ๋ํ ๊ฒฝ๋ก๊ฐ ์ฌ์ ํ ๊ธฐ๋ณธ ํ ์ด๋ธ์ ๋ค์ด๊ฐ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์ธ ๊ฒ์ ๋๋ค.
์ฐ๊ฒฐ๋ ๊ฒฝ๋ก ๋นํ์ฑํ
๋๋ก๋ ๋ค์์ด ํ์ํฉ๋๋ค.
/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject
๋๋ฒ๊น ๋๊ตฌ
RouterOS๋ ๋ผ์ฐํ ๋๋ฒ๊น ์ ์ํ ์ฌ๋ฌ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
[Tool]->[Tourch]
- ์ธํฐํ์ด์ค์์ ํจํท์ ๋ณผ ์ ์์ต๋๋ค./ip route check
- ํจํท์ด ์ ์ก๋ ๊ฒ์ดํธ์จ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ผ์ฐํ ํ ์ด๋ธ์์๋ ์๋ํ์ง ์์ต๋๋ค./ping routing-table=<name>
ะธ/tool traceroute routing-table=<name>
- ์ง์ ๋ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ping ๋ฐ ์ถ์ action=log
ะฒ[IP]->[Firewall]
- ํจํท ํ๋ฆ์ ๋ฐ๋ผ ํจํท์ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ ์ ์๋ ํ์ํ ๋๊ตฌ์ ๋๋ค. ์ด ์์ ์ ๋ชจ๋ ์ฒด์ธ๊ณผ ํ ์ด๋ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com