ํค์ด ํ๋ธ๋ฅด!
์ด ๊ธฐ์ฌ์์๋ ๋คํธ์ํฌ ์ธํ๋ผ ์๋ํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ์์ง๋ง ๋งค์ฐ ์๋์ค๋ฌ์ด ํ๋์ ํ์ฌ์์ ์ด์๋๋ ๋คํธ์ํฌ์ ์์
๋ค์ด์ด๊ทธ๋จ์ด ์ ์๋ฉ๋๋ค. ์ค์ ๋คํธ์ํฌ ์ฅ๋น์์ ๋ชจ๋ ๊ฒฝ๊ธฐ๋ ๋ฌด์์์
๋๋ค. ์ด ๋คํธ์ํฌ์์ ๋ฐ์ํ ์ฌ๊ฑด์ผ๋ก ์ธํด ์ฅ๊ธฐ๊ฐ ์ฌ์
์ด ์ค๋จ๋๊ณ ์ฌ๊ฐํ ๊ธ์ ์ ์์ค์ด ๋ฐ์ํ ์ ์์๋ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ์ฌ๋ก์ ๋ํ ์๋ฃจ์
์ "๋คํธ์ํฌ ์ธํ๋ผ ์๋ํ"๋ผ๋ ๊ฐ๋
์ ๋งค์ฐ ์ ํฉํฉ๋๋ค. ์๋ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ์งง์ ์๊ฐ์ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๊ณ , ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ฝ์์ ํตํด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ ์ด ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ ์ด์ ๋ฅผ ์ฑ์ฐฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ฑ
์ ๋ถ์ธ
์๋ํ๋ฅผ ์ํ ์ฃผ์ ๋๊ตฌ๋ Ansible(์๋ํ ๋๊ตฌ)๊ณผ Git(Ansible ํ๋ ์ด๋ถ ์ ์ฅ์)์ ๋๋ค. ์ด ๊ธ์ Ansible์ด๋ Git์ ๋ก์ง์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ๊ธฐ๋ณธ์ ์ธ ์ฌํญ(์: Ansible์ roletaski ๋ชจ๋, ์ธ๋ฒคํ ๋ฆฌ ํ์ผ, ๋ณ์๊ฐ ๋ฌด์์ธ์ง, ์คํ ์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ๋ฑ)์ ์ค๋ช ํ๋ ์๊ฐ ๊ธ์ด ์๋๋ผ๋ ์ ์ ์ฆ๊ฐ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. git push ๋๋ git commit ๋ช ๋ น์ ์ ๋ ฅํฉ๋๋ค.) ์ด ์ด์ผ๊ธฐ๋ Ansible์ ์ฐ์ตํ๊ณ ์ฅ๋น์์ NTP ๋๋ SMTP๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๋คํธ์ํฌ ๋ฌธ์ ๋ฅผ ์ค๋ฅ ์์ด ๋น ๋ฅด๊ณ ๋ฐ๋์งํ๊ฒ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ์ด์ผ๊ธฐ์ ๋๋ค. ๋ํ ๋คํธ์ํฌ ์๋ ๋ฐฉ์, ํนํ TCP/IP, OSPF, BGP ํ๋กํ ์ฝ ์คํ์ด ๋ฌด์์ธ์ง ์ ์ดํดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ๋ฐฉ์ ์์์ Ansible๊ณผ Git์ ์ ํํ์ง ์์ ๊ฒ์ ๋๋ค. ์ฌ์ ํ ํน์ ์๋ฃจ์ ์ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ "๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅ์ฑ ๋ฐ ์๋ํ" ์ฑ ์ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ์ฐจ์ธ๋ ๋คํธ์ํฌ ์์ง๋์ด๋ฅผ ์ํ ๊ธฐ์ '(Jason Edelman, Scott S. Lowe ๋ฐ Matt Oswalt ์ )
์ด์ ์์ .
๋ฌธ์ ์ฑ๋ช
์ํฉ์ ์์ํด ๋ด ์๋ค. ์๋ฒฝ 3์์ ๋น์ ์ ์ ๋ค์ด ๊ฟ์ ๊พธ๊ณ ์์ต๋๋ค. ์ ํ. ๊ธฐ์ ์ด์ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ ํํฉ๋๋ค.
- ๋ค?
โ ###, ####, #####, ๋ฐฉํ๋ฒฝ ํด๋ฌ์คํฐ๊ฐ ๋ฌด๋์ง๊ณ ์์นํ์ง ์์ต๋๋ค!!!
๋น์ ์ ๋์ ๋น๋น๋ฉฐ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๋ ค๊ณ ๋
ธ๋ ฅํ๊ณ ์ด๋ป๊ฒ ์ด๋ฐ ์ผ์ด ์ผ์ด๋ ์ ์๋์ง ์์ํฉ๋๋ค. ์ ํ์์ ๊ตญ์ฅ์ ๋จธ๋ฆฌํธ์ด ๋ฏ๊ธฐ๋ ์๋ฆฌ๊ฐ ๋ค๋ฆฌ๋๋ฐ, ์ฅ๊ตฐ์ด XNUMX์ ์ผ๋ก ์์ ์๊ฒ ์ ํํ๊ณ ์์ผ๋ ๋ค์ ์ ํํด ๋ฌ๋ผ๊ณ ํ๋ค.
XNUMX๋ถ ํ, ๊ทผ๋ฌด ๊ต๋์์ ์ฒซ ๋ฒ์งธ ์๊ฐ ๋ฉ๋ชจ๋ฅผ ์์งํ๊ณ ๊นจ์ด๋ ์ ์๋ ๋ชจ๋ ์ฌ๋์ ๊นจ์ ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธฐ์ ์ฑ ์์๋ ๊ฑฐ์ง๋ง์ ํ์ง ์์๊ณ ๋ชจ๋ ๊ฒ์ด ๊ทธ๋๋ก์์ผ๋ฉฐ ๋ฐฉํ๋ฒฝ์ ์ฃผ์ ํด๋ฌ์คํฐ๊ฐ ๋ฌด๋์ก์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ธ ์ ์ฒด ์์ง์๋ ๊ทธ๋ฅผ ๊ฐ๊ฐ์ ์ด๋ฅด๊ฒ ํ์ง ๋ชปํ์ต๋๋ค. ํ์ฌ๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ์๋น์ค๊ฐ ์๋ํ์ง ์์ต๋๋ค.
์์ ์ ์ทจํฅ์ ๋ง๋ ๋ฌธ์ ๋ฅผ ์ ํํ๋ฉด ๋ชจ๋๊ฐ ๋ค๋ฅธ ๊ฒ์ ๊ธฐ์ตํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ถํ๊ฐ ์๋ ์ํ์์ ๋ฐค์ ์ ๋ฐ์ดํธํ ํ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๊ณ ๋ชจ๋๊ฐ ํ๋ณตํ๊ฒ ์ ์๋ฆฌ์ ๋ค์์ต๋๋ค. ๋คํธ์ํฌ ์นด๋ ๋๋ผ์ด๋ฒ์ ๋ฒ๊ทธ๋ก ์ธํด ํธ๋ํฝ์ด ํ๋ฅด๊ธฐ ์์ํ๊ณ ์ธํฐํ์ด์ค ๋ฒํผ๊ฐ ์ค๋ฒํ๋ก๋๊ธฐ ์์ํ์ต๋๋ค.
Jackie Chan์ ์ํฉ์ ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
๊ณ ๋ง์์, ์ฌํค.
๋ณ๋ก ๊ธฐ๋ถ ์ข์ ์ํฉ์ ์๋์ฃ ?
์ฌํ ์๊ฐ์ผ๋ก ์ฐ๋ฆฌ ๋ธ๋ก๋ฅผ ์ ์ ๋ ๋๋ณด์.
์ด๋ฒคํธ๊ฐ ์ด๋ป๊ฒ ๋ ๋ฐ์ ํ ์ง ๋ ผ์ํด ๋ด ์๋ค.
๋ค์๊ณผ ๊ฐ์ ์๋ฃ ๋ฐํ ์์๋ฅผ ์ ์ํฉ๋๋ค.
- ๋คํธ์ํฌ ๋ค์ด์ด๊ทธ๋จ์ ๋ณด๊ณ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- Ansible์ ์ฌ์ฉํ์ฌ ํ ๋ผ์ฐํฐ์์ ๋ค๋ฅธ ๋ผ์ฐํฐ๋ก ์ค์ ์ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
- IT ์ธํ๋ผ ์ ๋ฐ์ ์๋ํ์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
๋คํธ์ํฌ ๋ค์ด์ด๊ทธ๋จ ๋ฐ ์ค๋ช
๊ณํ
์ฐ๋ฆฌ ์กฐ์ง์ ๋
ผ๋ฆฌ์ ๋ค์ด์ด๊ทธ๋จ์ ๊ณ ๋ คํด ๋ด
์๋ค. ํน์ ์ฅ๋น ์ ์กฐ์
์ฒด์ ์ด๋ฆ์ ์ง์ ํ์ง๋ ์์ง๋ง ์ด ๊ธฐ์ฌ์ ๋ชฉ์ ์ ์ค์ํ์ง ์์ต๋๋ค. (์ฃผ์ ๊น์ ๋
์๋ ์ด๋ค ์ข
๋ฅ์ ์ฅ๋น๊ฐ ์ฌ์ฉ๋๋์ง ์ถ์ธกํ ๊ฒ์
๋๋ค). ์ด๋ Ansible์ ์ฌ์ฉํ์ฌ ์์
ํ ๋์ ์ข์ ์ฅ์ ์ค ํ๋์ผ ๋ฟ์ด๋ฉฐ, ์ค์ ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ค ์ฅ๋น์ธ์ง๋ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์ด ์ฅ๋น๋ Cisco, Juniper, Check Point, Fortinet, Palo Alto ๋ฑ ์ ์๋ ค์ง ๊ณต๊ธ์
์ฒด์ ์ฅ๋น์
๋๋ค. ์ํ๋ ์ต์
์ผ๋ก ๋์ฒดํ ์ ์์ต๋๋ค.
ํธ๋ํฝ ์ด๋์๋ ๋ ๊ฐ์ง ์ฃผ์ ์์ ์ด ์์ต๋๋ค.
- ํ์ฌ์ ์ฌ์ ์ธ ๋น์ฌ ์๋น์ค์ ๊ณต๊ฐ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
- ์ง์ , ์๊ฒฉ ๋ฐ์ดํฐ ์ผํฐ ๋ฐ ์ XNUMX์ ์กฐ์ง(ํํธ๋ ๋ฐ ํด๋ผ์ด์ธํธ)๊ณผ์ ํต์ ์ ๋ฌผ๋ก ์ค์ ์ฌ๋ฌด์ค์ ํตํ ์ง์ ์ ์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ธฐ๋ณธ ์์๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
- 01๊ฐ์ ๊ฒฝ๊ณ ๋ผ์ฐํฐ(BRD-02, BRD-XNUMX);
- ๋ฐฉํ๋ฒฝ ํด๋ฌ์คํฐ(FW-CLUSTER);
- ์ฝ์ด ์ค์์น(L3-CORE);
- ์๋ช ์ ์ด ๋ ๋ผ์ฐํฐ(๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด์ ๋คํธ์ํฌ ์ค์ ์ FW-CLUSTER์์ EMERGENCY๋ก ์ ์กํฉ๋๋ค)(EMERGENCY);
- ๋คํธ์ํฌ ์ธํ๋ผ ๊ด๋ฆฌ์ฉ ์ค์์น(L2-MGMT)
- Git ๋ฐ Ansible์ ๊ฐ์ถ ๊ฐ์ ๋จธ์ (VM-AUTOMATION)
- Ansible(๋ ธํธ๋ถ ์๋ํ)์ฉ ํ๋ ์ด๋ถ ํ ์คํธ ๋ฐ ๊ฐ๋ฐ์ด ์ํ๋๋ ๋ ธํธ๋ถ์ ๋๋ค.
๋คํธ์ํฌ๋ ๋ค์ ์์ญ์ ํฌํจํ๋ ๋์ OSPF ๋ผ์ฐํ ํ๋กํ ์ฝ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์์ญ 0 โ EXCHANGE ์์ญ์์ ํธ๋ํฝ ์ด๋์ ๋ด๋นํ๋ ๋ผ์ฐํฐ๊ฐ ํฌํจ๋ ์์ญ์ ๋๋ค.
- ์์ญ 1 โ ํ์ฌ ์๋น์ค ์ด์์ ๋ด๋นํ๋ ๋ผ์ฐํฐ๊ฐ ํฌํจ๋ ์์ญ์ ๋๋ค.
- ์์ญ 2 - ๋ผ์ฐํ ๊ด๋ฆฌ ํธ๋ํฝ์ ๋ด๋นํ๋ ๋ผ์ฐํฐ๊ฐ ํฌํจ๋ ์์ญ์ ๋๋ค.
- ์์ญ N โ ์ง์ ๋คํธ์ํฌ ์์ญ.
๊ฒฝ๊ณ ๋ผ์ฐํฐ์์๋ ๊ฐ์ ๋ผ์ฐํฐ(VRF-INTERNET)๊ฐ ์์ฑ๋๋ฉฐ, ์ฌ๊ธฐ์ ํด๋น ํ ๋น AS์ ํจ๊ป eBGP ์ ์ฒด ๋ณด๊ธฐ๊ฐ ์ค์น๋ฉ๋๋ค. iBGP๋ VRF ๊ฐ์ ๊ตฌ์ฑ๋ฉ๋๋ค. ํ์ฌ๋ ์ด๋ฌํ VRF-INTERNET์ ๊ฒ์๋ ํ์ดํธ ์ฃผ์ ํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ์ดํธ ์ฃผ์ ์ค ์ผ๋ถ๋ FW-CLUSTER(ํ์ฌ ์๋น์ค๊ฐ ์ด์๋๋ ์ฃผ์)๋ก ์ง์ ๋ผ์ฐํ ๋๊ณ , ์ผ๋ถ๋ EXCHANGE ์์ญ(์ธ๋ถ IP ์ฃผ์๊ฐ ํ์ํ ํ์ฌ ๋ด๋ถ ์๋น์ค, ์ฌ๋ฌด์ค์ฉ ์ธ๋ถ NAT ์ฃผ์)์ ํตํด ๋ผ์ฐํ ๋ฉ๋๋ค. ๋ค์์ผ๋ก ํธ๋ํฝ์ ํฐ์ ๋ฐ ํ์ ์ฃผ์(๋ณด์ ์์ญ)๋ฅผ ์ฌ์ฉํ์ฌ L3-CORE์ ์์ฑ๋ ๊ฐ์ ๋ผ์ฐํฐ๋ก ์ด๋ํฉ๋๋ค.
๊ด๋ฆฌ ๋คํธ์ํฌ๋ ์ ์ฉ ์ค์์น๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ฉ ๋คํธ์ํฌ๋ฅผ ๋ํ๋
๋๋ค. ๊ด๋ฆฌ ๋คํธ์ํฌ๋ ๋ณด์ ์์ญ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
EMERGENCY ๋ผ์ฐํฐ๋ FW-CLUSTER๋ฅผ ๋ฌผ๋ฆฌ์ , ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ณต์ ํฉ๋๋ค. ๊ด๋ฆฌ ๋คํธ์ํฌ๋ฅผ ์กฐ์ฌํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ์ธํฐํ์ด์ค๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค.
์๋ํ ๋ฐ ์ค๋ช
์ฐ๋ฆฌ๋ ๋คํธ์ํฌ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์์๋์ต๋๋ค. ์ด์ FW-CLUSTER์์ EMERGENCY๋ก ํธ๋ํฝ์ ์ ์กํ๊ธฐ ์ํด ์ํํ ์์ ์ ๋จ๊ณ๋ณ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- FW-CLUSTER์ ์ฐ๊ฒฐํ๋ ์ฝ์ด ์ค์์น(L3-CORE)์ ์ธํฐํ์ด์ค๋ฅผ ๋นํ์ฑํํฉ๋๋ค.
- FW-CLUSTER์ ์ฐ๊ฒฐํ๋ L2-MGMT ์ปค๋ ์ค์์น์ ์ธํฐํ์ด์ค๋ฅผ ๋นํ์ฑํํฉ๋๋ค.
- EMERGENCY ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก L2-MGMT์ ๊ด๋ จ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ์ธํฐํ์ด์ค๊ฐ ๋นํ์ฑํ๋์ด ์์).
- EMERGENCY์์๋ ์ธํฐํ์ด์ค๋ฅผ ํ์ฑํํฉ๋๋ค.
- FW-Cluster์ ์๋ ์ธ๋ถ IP ์ฃผ์(NAT์ฉ)๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- L3-CORE arp ํ ์ด๋ธ์ poppy ์ฃผ์๊ฐ FW-Cluster์์ EMERGENCY๋ก ๋ณ๊ฒฝ๋๋๋ก gARP ์์ฒญ์ ์์ฑํฉ๋๋ค.
- ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ BRD-01, BRD-02์ ์ ์ ์ผ๋ก ๋ฑ๋กํฉ๋๋ค.
- NAT ๊ท์น์ ์์ฑํฉ๋๋ค.
- ๊ธด๊ธ OSPF ์์ญ 1๋ก ์น๊ฒฉํฉ๋๋ค.
- ๊ธด๊ธ OSPF ์์ญ 2๋ก ์น๊ฒฉํฉ๋๋ค.
- Area 1์ ๊ฒฝ๋ก ๋น์ฉ์ 10์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- Area 1์ ๊ธฐ๋ณธ ๊ฒฝ๋ก ๋น์ฉ์ 10์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- L2-MGMT์ ์ฐ๊ด๋ IP ์ฃผ์๋ฅผ FW-CLUSTER์ ์๋ IP ์ฃผ์๋ก ๋ณ๊ฒฝํฉ๋๋ค.
- L2-MGMT arp ํ ์ด๋ธ์ poppy ์ฃผ์๊ฐ FW-CLUSTER์์ EMERGENCY๋ก ๋ณ๊ฒฝ๋๋๋ก gARP ์์ฒญ์ ์์ฑํฉ๋๋ค.
๋ค์, ์ฐ๋ฆฌ๋ ๋ฌธ์ ์ ์๋ ๊ณต์์ผ๋ก ๋์๊ฐ๋๋ค. ์ค์ XNUMX์, ์์ฒญ๋ ์คํธ๋ ์ค, ์ด๋ ๋จ๊ณ์์๋ ์ค์๊ฐ ๋ฐ์ํ๋ฉด ์๋ก์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. CLI๋ฅผ ํตํด ๋ช
๋ น์ ์
๋ ฅํ ์ค๋น๊ฐ ๋์
จ๋์? ์? ์ข์, ์ต์ํ ์ธ์๋ฅผ ํ๊ณ ์ปคํผ๋ฅผ ๋ง์๊ณ ์์ง๋ ฅ์ ๋ชจ์ผ์ญ์์ค.
๋ธ๋ฃจ์ค, ์ฌ๋๋ค์ ๋์์ฃผ์ธ์.
๊ธ์์, ์ฐ๋ฆฌ๋ ๊ณ์ํด์ ์๋ํ๋ฅผ ๊ฐ์ ํ๊ณ ์์ต๋๋ค.
๋ค์์ Ansible ์ฉ์ด๋ก ํ๋ ์ด๋ถ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ณด์ฌ์ฃผ๋ ๋ค์ด์ด๊ทธ๋จ์
๋๋ค. ์ด ์ฒด๊ณ๋ ์์์ ์ค๋ช
ํ ๋ด์ฉ์ ๋ฐ์ํ๋ฉฐ Ansible์ ํน์ ๊ตฌํ์ผ ๋ฟ์
๋๋ค.
์ด ๋จ๊ณ์์ ์ฐ๋ฆฌ๋ ๋ฌด์์ ํด์ผ ํ ์ง ๊นจ๋ซ๊ณ ํ๋ ์ด๋ถ์ ๊ฐ๋ฐํ๊ณ ํ
์คํธ๋ฅผ ์ค์ํ์ผ๋ฉฐ ์ด์ ์ถ์ ์ค๋น๊ฐ ๋์์ต๋๋ค.
๋ ๋ค๋ฅธ ์์ ์์ ์ ์ฌ๋ด. ์ด์ผ๊ธฐ์ ์ฉ์ด์ฑ์ด ๋น์ ์ ์คํดํด์๋ ์๋ฉ๋๋ค. ํ๋ ์ด๋ถ์ ์์ฑํ๋ ๊ณผ์ ์ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๊ณ ๋น ๋ฅด์ง ์์์ต๋๋ค. ํ ์คํธ์๋ ๊ฝค ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ๊ณ ๊ฐ์ ์คํ ๋๊ฐ ๋ง๋ค์ด์ก์ผ๋ฉฐ ์๋ฃจ์ ์ ์ฌ๋ฌ ๋ฒ ํ ์คํธ๋์์ผ๋ฉฐ ์ฝ 100๋ฒ์ ํ ์คํธ๊ฐ ์ํ๋์์ต๋๋ค.
์์ํ์... ๋ชจ๋ ์ผ์ด ๋งค์ฐ ๋๋ฆฌ๊ฒ ์งํ๋๊ณ ์ด๋๊ฐ์ ์ค๋ฅ๊ฐ ์์ผ๋ฉฐ ๊ฒฐ๊ตญ์๋ ๋ญ๊ฐ ์๋ํ์ง ์์ ๊ฒ ๊ฐ์ ๋๋์ด ๋ญ๋๋ค. ๋ํ์ฐ์ ํ๊ณ ์ ํํ๋ ๋๋์ด ๋ค์ง๋ง, ๋ํ์ฐ์ด ๋ฐ๋ก ํผ์ณ์ง์ง ์๋ ๊ฒ... ์ด๋ ์ ์์ ๋๋ค.
๋ค์์ผ๋ก, Ansible ํ๋ ์ด๋ถ์์ ์ํ๋ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์์ต๋๋ค(IP ์ฃผ์๋ ๋ณด์์ ์ํด ๋์ฒด๋์์ต๋๋ค).
[xxx@emergency ansible]$ ansible-playbook -i /etc/ansible/inventories/prod_inventory.ini /etc/ansible/playbooks/emergency_on.yml
PLAY [------->Emergency on VCF] ********************************************************
TASK [vcf_junos_emergency_on : Disable PROD interfaces to FW-CLUSTER] *********************
changed: [vcf]
PLAY [------->Emergency on MGMT-CORE] ************************************************
TASK [mgmt_junos_emergency_on : Disable MGMT interfaces to FW-CLUSTER] ******************
changed: [m9-03-sw-03-mgmt-core]
PLAY [------->Emergency on] ****************************************************
TASK [mk_routeros_emergency_on : Enable EXT-INTERNET interface] **************************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Generate gARP for EXT-INTERNET interface] ****************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Enable static default route to EXT-INTERNET] ****************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Change NAT rule to EXT-INTERNET interface] ****************
changed: [m9-04-r-04] => (item=12)
changed: [m9-04-r-04] => (item=14)
changed: [m9-04-r-04] => (item=15)
changed: [m9-04-r-04] => (item=16)
changed: [m9-04-r-04] => (item=17)
TASK [mk_routeros_emergency_on : Enable OSPF Area 1 PROD] ******************************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Enable OSPF Area 2 MGMT] *****************************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Change OSPF Area 1 interfaces costs to 10] *****************
changed: [m9-04-r-04] => (item=VLAN-1001)
changed: [m9-04-r-04] => (item=VLAN-1002)
changed: [m9-04-r-04] => (item=VLAN-1003)
changed: [m9-04-r-04] => (item=VLAN-1004)
changed: [m9-04-r-04] => (item=VLAN-1005)
changed: [m9-04-r-04] => (item=VLAN-1006)
changed: [m9-04-r-04] => (item=VLAN-1007)
changed: [m9-04-r-04] => (item=VLAN-1008)
changed: [m9-04-r-04] => (item=VLAN-1009)
changed: [m9-04-r-04] => (item=VLAN-1010)
changed: [m9-04-r-04] => (item=VLAN-1011)
changed: [m9-04-r-04] => (item=VLAN-1012)
changed: [m9-04-r-04] => (item=VLAN-1013)
changed: [m9-04-r-04] => (item=VLAN-1100)
TASK [mk_routeros_emergency_on : Change OSPF area1 default cost for to 10] ******************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Change MGMT interfaces ip addresses] ********************
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n.254', u'name': u'VLAN-803'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+1.254', u'name': u'VLAN-805'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+2.254', u'name': u'VLAN-807'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+3.254', u'name': u'VLAN-809'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+4.254', u'name': u'VLAN-820'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+5.254', u'name': u'VLAN-822'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+6.254', u'name': u'VLAN-823'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+7.254', u'name': u'VLAN-824'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+8.254', u'name': u'VLAN-850'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+9.254', u'name': u'VLAN-851'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+10.254', u'name': u'VLAN-852'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+11.254', u'name': u'VLAN-853'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+12.254', u'name': u'VLAN-870'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+13.254', u'name': u'VLAN-898'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+14.254', u'name': u'VLAN-899'})
TASK [mk_routeros_emergency_on : Generate gARPs for MGMT interfaces] *********************
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n.254', u'name': u'VLAN-803'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+1.254', u'name': u'VLAN-805'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+2.254', u'name': u'VLAN-807'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+3.254', u'name': u'VLAN-809'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+4.254', u'name': u'VLAN-820'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+5.254', u'name': u'VLAN-822'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+6.254', u'name': u'VLAN-823'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+7.254', u'name': u'VLAN-824'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+8.254', u'name': u'VLAN-850'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+9.254', u'name': u'VLAN-851'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+10.254', u'name': u'VLAN-852'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+11.254', u'name': u'VLAN-853'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+12.254', u'name': u'VLAN-870'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+13.254', u'name': u'VLAN-898'})
changed: [m9-04-r-04] => (item={u'ip': u'ั
.ั
.n+14.254', u'name': u'VLAN-899'})
PLAY RECAP ************************************************************************
์๋ฃ!
์ค์ ๋ก ์์ง ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ๋์ ๋ผ์ฐํ ํ๋กํ ์ฝ์ ํตํฉ๊ณผ FIB์ ๋ง์ ๊ฒฝ๋ก๋ฅผ ๋ก๋ํ๋ ๊ฒ์ ์์ง ๋ง์ธ์. ์ฐ๋ฆฌ๋ ์ด๋ค ์์ผ๋ก๋ ์ด์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ฑ๊ณตํ์ต๋๋ค. ์ด์ ์ค๋น๊ฐ ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ ์ค์ ์ ์๋ํํ๊ณ ์ถ์ง ์์ Vilabajo ๋ง์์์๋ ๊ณ์ํด์ ์ค๊ฑฐ์ง๋ฅผ ํฉ๋๋ค. Bruce(๋ฌผ๋ก ์ด๋ฏธ ๋ค๋ฅด์ง๋ง ๊ทธ๋ค์ง ๋ฉ์ง์ง๋ ์์)๋ ์ฅ๋น์ ์๋ ์ฌ๊ตฌ์ฑ์ด ์ผ๋ง๋ ๋ ๋ง์ด ๋ฐ์ํ๋์ง ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
๋๋ ๋ํ ํ ๊ฐ์ง ์ค์ํ ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ์ด๋ป๊ฒ ๋ชจ๋ ๊ฒ์ ๋๋๋ฆด ์ ์๋์? ์๊ฐ์ด ์ง๋๋ฉด FW-CLUSTER๊ฐ ๋ค์ ํ์ฑํ๋ฉ๋๋ค. ์ด๋ ๋ฐฑ์
์ด ์๋ ์ฃผ์ ์ฅ๋น์ด๋ฏ๋ก ๋คํธ์ํฌ๊ฐ ์ฌ๊ธฐ์์ ์คํ๋์ด์ผ ํฉ๋๋ค.
๋คํธ์ํฌ ๋ด๋น์๋ค์ด ์ด๋ป๊ฒ ์ง์น๊ธฐ ์์ํ๋์ง ๋๋ผ์๋์? ๊ธฐ์ ์ฑ ์์๋ ์ ์ด๊ฒ์ด ์ํ๋์ด์๋ ์ ๋๋์ง, ์ ์ด๊ฒ์ด ๋์ค์ ์ํ๋ ์ ์๋์ง์ ๋ํ ์์ฒ ๊ฐ์ง ์ฃผ์ฅ์ ๋ฃ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ถํํ๊ฒ๋ ์ด๊ฒ์ ๋คํธ์ํฌ๊ฐ ์ด์ ์ฌ์นํ์ ํจ์น, ์กฐ๊ฐ ๋ฐ ์์ฌ๋ก ์๋ํ๋ ๋ฐฉ์์ ๋๋ค. ํจ์น์ํฌ ํผํธ๋ก ๋ฐํ์ก์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ํน์ ์ํฉ์ด ์๋๋ผ ์ผ๋ฐ์ ์ผ๋ก IT ์ ๋ฌธ๊ฐ๋ก์ ์ฐ๋ฆฌ์ ์๋ฌด๋ ๋คํธ์ํฌ ์์ ์ ์๋ฆ๋ค์ด ์์ด ๋จ์ด "์ผ๊ด์ฑ"์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋งค์ฐ ๋ค๊ฐ์ ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ญ๋ ์ ์์ต๋๋ค. , ์ผ๊ด์ฑ, ๋ ผ๋ฆฌ, ์ผ๊ด์ฑ, ์ฒด๊ณ์ฑ, ๋น๊ต ๊ฐ๋ฅ์ฑ, ์ผ๊ด์ฑ. ๊ทธ ์ฌ๋์ ๊ดํ ๋ชจ๋ ๊ฒ์ ๋๋ค. ์ด ์ํ์์๋ง ๋คํธ์ํฌ๋ฅผ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ๋ฌด์์ด ์๋ํ๊ณ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ช ํํ๊ฒ ์ดํดํ๊ณ , ๋ฌด์์ ๋ณ๊ฒฝํด์ผ ํ๋์ง ๋ช ํํ๊ฒ ์ดํดํ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ด๋๋ฅผ ์ดํด๋ด์ผ ํ๋์ง ๋ช ํํ๊ฒ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฌํ ๋คํธ์ํฌ์์๋ง ์ฐ๋ฆฌ๊ฐ ๋ฐฉ๊ธ ์ค๋ช ํ ๊ฒ๊ณผ ๊ฐ์ ํธ๋ฆญ์ ์ํํ ์ ์์ต๋๋ค.
์ค์ ๋ก ์ค์ ์ ์๋ ์ํ๋ก ๋๋๋ฆฐ ๋ ๋ค๋ฅธ ํ๋ ์ด๋ถ์ด ์ค๋น๋๋ค. ์๋ ๋ ผ๋ฆฌ๋ ๋์ผํฉ๋๋ค(์์ ์์๊ฐ ๋งค์ฐ ์ค์ํ๋ค๋ ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํจ). ์ด๋ฏธ ๊ธด ๊ธฐ์ฌ๊ฐ ๊ธธ์ด์ง์ง ์๋๋ก ํ๋ ์ด๋ถ ์คํ ๋ชฉ๋ก์ ๊ฒ์ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฌํ ์ด๋์ ์ํํ๋ฉด ๋ฏธ๋์ ๋ํด ํจ์ฌ ๋ ์ฐจ๋ถํ๊ณ ์์ ๊ฐ์ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ฉฐ ๊ฑฐ๊ธฐ์ ์์ธ ๋ชฉ๋ฐ์ด ์ฆ์ ๋๋ฌ๋ ๊ฒ์ ๋๋ค.
๋๊ตฌ๋ ์ฐ๋ฆฌ์๊ฒ ๊ธ์ ์ฐ๊ณ ๋ชจ๋ ํ์ด๋ถ๊ณผ ํจ๊ป ์์ฑ๋ ๋ชจ๋ ์ฝ๋์ ์์ค๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. ํ๋กํ์ ์ฐ๋ฝ์ฒ.
์กฐ์ฌ ๊ฒฐ๊ณผ
์ฐ๋ฆฌ์ ์๊ฒฌ์ผ๋ก๋ ์๋ํํ ์ ์๋ ํ๋ก์ธ์ค๊ฐ ์์ง ๊ฒฐ์ ํ๋์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ํ ๋ด์ฉ๊ณผ ์์ ๋๋ฃ๋ค์ด ๋ ผ์ํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ํ์ฌ๊น์ง ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๊ฐ ํ์๋ฉ๋๋ค.
- ์ฅ์น ํ๋ก๋น์ ๋
- ๋ฐ์ดํฐ ์์ง;
- ๋ณด๊ณ ;
- ๋ฌธ์ ํด๊ฒฐ;
- ๊ท์ ์ค์.
๊ด์ฌ์ด ์๋ค๋ฉด ์ฃผ์ด์ง ์ฃผ์ ์ค ํ๋์ ๊ดํด ํ ๋ก ์ ๊ณ์ํ ์ ์์ต๋๋ค.
์๋ํ์ ๋ํด์๋ ์กฐ๊ธ ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ดํดํด์ผ ํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์คํ ์ ์ฌ๋ ์์ด๋ ์ด์์ผ ํ๊ณ , ์ฌ๋์ ์ํด ๊ฐ์ ๋์ด์ผ ํ๋ค. ์์คํ ์ ์ธ๊ฐ์๊ฒ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
- ์์ ์ ์ ๋ฌธ๊ฐ์ฌ์ผ ํฉ๋๋ค. ์ผ์์ ์ธ ์์ ์ ์ํํ๋ ์ ๋ฌธ๊ฐ ํด๋์ค๋ ์์ต๋๋ค. ์ ์ฒด ๋ฃจํด์ ์๋ํํ๊ณ ๋ณต์กํ ๋ฌธ์ ๋ง ํด๊ฒฐํ๋ ์ ๋ฌธ๊ฐ๊ฐ ์์ต๋๋ค.
- ์ผ์์ ์ธ ํ์ค ์์ ์ "๋ฒํผ ํ๋๋ง ๋๋ฅด๋ฉด" ์๋์ผ๋ก ์ํ๋๋ฏ๋ก ๋ฆฌ์์ค๊ฐ ๋ญ๋น๋์ง ์์ต๋๋ค. ์ด๋ฌํ ์์ ์ ๊ฒฐ๊ณผ๋ ํญ์ ์์ธก ๊ฐ๋ฅํ๊ณ ์ดํดํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ์ด์ด์ ธ์ผ ํฉ๋๋ค.
- IT ์ธํ๋ผ์ ํฌ๋ช ์ฑ(์ด์, ํ๋ํ, ๊ตฌํ์ ์ํ ๊ฐ์. ์ฐ๊ฐ ๊ฐ๋ ์ค์ง ์๊ฐ ๊ฐ์)
- IT ์์ ๊ณํ ๊ธฐ๋ฅ(์ฉ๋ ๊ณํ ์์คํ - ์๋น๋์ ํ์ธํ ์ ์์ผ๋ฉฐ, ํธ์ง ๋ฐ ์ต๊ณ ๋ถ์ ๋ฐฉ๋ฌธ์ด ์๋ ๋จ์ผ ์์คํ ์ ํ์ํ ๋ฆฌ์์ค ์๋ฅผ ํ์ธํ ์ ์์)
- IT ์ง์ ์๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
๊ธฐ์ฌ ์์ฑ์: Alexander Chelovekov(CCIE RS, CCIE SP) ๋ฐ Pavel Kirillov. ์ฐ๋ฆฌ๋ IT ์ธํ๋ผ ์๋ํ๋ฅผ ์ฃผ์ ๋ก ์๋ฃจ์
์ ๋
ผ์ํ๊ณ ์ ์ํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
์ถ์ฒ : habr.com