๐ BGP (Border Gateway Protocol)๋? ์ธํฐ๋ท์ ์์ง์ด๋ ๋ณด์ด์ง ์๋ ์! ๐✨
์ธํฐ๋ท์ด ์ด๋ ๊ฒ ๊ฑฐ๋ํ ๊ท๋ชจ๋ก ์ด์๋ ์ ์๋ ์ด์ ์ค ํ๋๋ "Border Gateway Protocol (BGP)" ๋๋ถ์ ๋๋ค. ์ด ํ๋กํ ์ฝ์ ์ธํฐ๋ท์์ ๋ค์ํ ๋คํธ์ํฌ(์์จ ์์คํ , AS)๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ก ๋์์ค๋๋ค. ์ค๋์ BGP๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์๋ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๋ณด์ ๋ฌธ์ ์ ์ค์ ์ฌ๋ก๊น์ง ๊น์ด ์๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๐ ๋ชฉ์ฐจ
BGP๋ ๋ฌด์์ธ๊ฐ?
BGP์ ์ฃผ์ ํน์ง
BGP์ ๋์ ๋ฐฉ์
BGP Neighboring ๊ณผ์
BGP์ ์ฅ์ ๊ณผ ํ๊ณ์
BGP ๋ณด์ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์
BGP ์ฃผ์ ์์ฑ
์ค์ BGP ๋ณด์ ์ฌ๊ณ ์ฌ๋ก
์์ฝ ๋ฐ ์๊ฒฌ
1. BGP๋ ๋ฌด์์ธ๊ฐ?
BGP(Border Gateway Protocol)๋ "์ธํฐ๋ท์ ์ฐ์ฒด๋ถ" ์ญํ ์ ํ๋ ๋ผ์ฐํ ํ๋กํ ์ฝ์ ๋๋ค. ์ฆ, ์ธํฐ๋ท์ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ ๋คํธ์ํฌ ๊ฐ์ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ณ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.
BGP์ ๊ฐ์ฅ ํฐ ํน์ง์ ํจํท์ ์ ๋ฌํ๋ ๊ฒ์ด ์๋๋ผ, ๋ผ์ฐํ ์ ๋ณด๋ฅผ ๊ตํํ๋ ํ๋กํ ์ฝ์ด๋ผ๋ ์ ์ ๋๋ค. ์ฆ, BGP๋ ์ธํฐ๋ท์์ ์์จ ์์คํ (Autonomous System, AS)๋ค ๊ฐ์ ์ด๋ค ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ง๋ฅผ ๊ฒฐ์ ํ๋ ํต์ฌ ์ญํ ์ ํฉ๋๋ค.
✔ "AS(์์จ ์์คํ
)"์ด๋?
์์จ ์์คํ
(AS)์ ํ๋์ ์ธํฐ๋ท ์๋น์ค ์ ๊ณต์
์ฒด(ISP)๋ ๋๊ธฐ์
, ์ ๋ถ๊ธฐ๊ด ๋ฑ์ ๋
๋ฆฝ์ ์ธ ๋คํธ์ํฌ ๊ทธ๋ฃน์ ์๋ฏธํฉ๋๋ค. ๊ฐ AS๋ ๊ณ ์ ํ AS ๋ฒํธ(ASN, Autonomous System Number)๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, BGP๋ฅผ ํตํด ๋ค๋ฅธ AS์ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ๊ณต์ ํฉ๋๋ค.
2. BGP์ ์ฃผ์ ํน์ง
✅ Path Vector Protocol
BGP๋ ๊ฒฝ๋ก๋ฅผ ๋ฒกํฐ(ASN ๋ชฉ๋ก)๋ก ๊ด๋ฆฌํ๋ Path Vector Protocol์
๋๋ค. ์ฆ, ์ด๋ค ๋ชฉ์ ์ง๊น์ง ๊ฐ๊ธฐ ์ํด ๊ฑฐ์ณ์ผ ํ๋ AS์ ๋ฆฌ์คํธ๋ฅผ ์ ์งํ๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ ํํฉ๋๋ค.
✅ Exterior Gateway Protocol (EGP)
BGP๋ ์ธ๋ถ ๋คํธ์ํฌ(๋ค๋ฅธ AS ๊ฐ)์์ ๋์ํ๋ **Exterior Gateway Protocol (EGP)**์ด๋ฉฐ, ๋ด๋ถ ๋ผ์ฐํ
์ ๋ด๋นํ๋ OSPF, RIP, EIGRP ๊ฐ์ **Interior Gateway Protocol (IGP)**๊ณผ ๊ตฌ๋ถ๋ฉ๋๋ค.
✅ TCP ๊ธฐ๋ฐ ํ๋กํ ์ฝ
BGP๋ ์ ๋ขฐ์ฑ์ด ๋์ TCP (ํฌํธ 179๋ฒ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ฐํ
์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค. ๋๋ถ์ ์์ค ์์ด ์์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์์ต๋๋ค.
✅ Path Selection (๊ฒฝ๋ก ์ ํ ์๊ณ ๋ฆฌ์ฆ)
BGP๋ ๋จ์ํ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ๊ฒ์ด ์๋๋ผ, ๋ค์ํ ๊ธฐ์ค์ ์กฐํฉํ์ฌ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ ์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ๋ก ์ ํ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1️⃣ "๊ฐ์ฅ ๋์ ์ฐ์ ์์"๋ฅผ ๊ฐ์ง ๊ฒฝ๋ก
2️⃣ "AS ๊ฒฝ๋ก๊ฐ ์งง์" ๊ฒฝ๋ก
3️⃣ "๊ฐ์ฅ ๋ฎ์ ORIGIN ๊ฐ"์ ๊ฐ์ง ๊ฒฝ๋ก
4️⃣ "๊ฐ์ฅ ๋ฎ์ MED ๊ฐ"์ ๊ฐ์ง ๊ฒฝ๋ก
5️⃣ "๊ฐ์ฅ ๊ฐ๊น์ด IGP ๊ฑฐ๋ฆฌ"๋ฅผ ๊ฐ์ง ๊ฒฝ๋ก
✅ ๋ ๊ฐ์ง ๋ชจ๋
eBGP(External BGP) ๐️: ์๋ก ๋ค๋ฅธ AS ๊ฐ ๋ผ์ฐํ ์ ๋ณด๋ฅผ ๊ตํ
iBGP(Internal BGP) ๐ : ๊ฐ์ AS ๋ด์์ BGP ๊ฒฝ๋ก๋ฅผ ๊ณต์
3. BGP์ ๋์ ๋ฐฉ์
BGP๋ ๊ธฐ๋ณธ์ ์ผ๋ก Peering(ํผ์ด๋ง)์ ํตํด ์ ๋ณด๋ฅผ ๊ตํํฉ๋๋ค.
๐ BGP ํผ์ด๋ง ๊ณผ์
1️⃣ TCP ์ธ์ ์ค์ (Port 179)
BGP ๋ผ์ฐํฐ ๊ฐ์ ์ฐ๊ฒฐ์ ๋งบ์ 2️⃣ OPEN ๋ฉ์์ง ์ ์ก (BGP Open Message)
๋ฒ์ , ASN, ํ๋ํ์, BGP ์๋ณ์ ๊ตํ 3️⃣ Keepalive ๋ฉ์์ง ์ ์ก (BGP Keepalive Message)
์ธ์ ์ ์ง 4️⃣ Update ๋ฉ์์ง ์ ์ก (BGP Update Message)
๊ฒฝ๋ก ์ ๋ณด ๊ณต์ 5️⃣ Withdraw ๋ฉ์์ง ์ ์ก (BGP Withdraw Message)
๋ ์ด์ ์ ํจํ์ง ์์ ๊ฒฝ๋ก ์ ๊ฑฐ
BGP ๋ผ์ฐํฐ๋ Update ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ง์์ ์ผ๋ก ๋คํธ์ํฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํฉ๋๋ค.
4. BGP Neighboring ๊ณผ์
๐ BGP Neighbor ๊ด๊ณ ์๋ฆฝ ๊ณผ์
BGP ํผ์ด๋ง์ด ํ์ฑ๋๋ ๊ณผ์ ์ ์ด 6๋จ๊ณ๋ก ๋๋ฉ๋๋ค.
1️⃣ Idle ์ํ
- BGP ํ๋ก์ธ์ค๊ฐ ํ์ฑํ๋์์ง๋ง, ์์ง ํผ์ด๋ง์ ์์ํ์ง ์์ ์ํ์ ๋๋ค.
- ๊ด๋ฆฌ์๊ฐ BGP ํ๋ก์ธ์ค๋ฅผ ์๋์ผ๋ก ํ์ฑํํ๊ฑฐ๋, ๋คํธ์ํฌ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์ ๋จ๊ณ๋ก ์ด๋ํฉ๋๋ค.
2️⃣ Connect ์ํ
- BGP๊ฐ TCP 3-way handshake๋ฅผ ์ฌ์ฉํ์ฌ TCP ํฌํธ 179๋ฅผ ํตํด ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค.
- ์ฐ๊ฒฐ์ด ์ฑ๊ณตํ๋ฉด Open ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ OpenSent ์ํ๋ก ์ด๋ํฉ๋๋ค.
- ์คํจํ๋ฉด Active ์ํ๋ก ์ด๋ํ์ฌ ๋ค์ ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค.
3️⃣ Active ์ํ
- TCP ์ฐ๊ฒฐ์ ๋ค์ ์๋ํ๋ ๋จ๊ณ๋ก, ์ผ์ ์๊ฐ ๋ด ์ฐ๊ฒฐ์ด ์ฑ๋ฆฝ๋์ง ์์ผ๋ฉด Idle ์ํ๋ก ๋์๊ฐ๋๋ค.
- ์ฐ๊ฒฐ์ด ์ฑ๊ณตํ๋ฉด OpenSent ์ํ๋ก ์ด๋ํฉ๋๋ค.
4️⃣ OpenSent ์ํ
- BGP๊ฐ Open ๋ฉ์์ง๋ฅผ ์์ ํ๊ณ ๊ฒ์ฆํ๋ ๋จ๊ณ์ ๋๋ค.
- Open ๋ฉ์์ง์๋ BGP ๋ฒ์ , AS ๋ฒํธ, ํ๋ ํ์, BGP Identifier ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
- ๊ฒ์ฆ์ด ์ฑ๊ณตํ๋ฉด OpenConfirm ์ํ๋ก ์ด๋ํฉ๋๋ค.
5️⃣ OpenConfirm ์ํ
- Keepalive ๋ฉ์์ง๋ฅผ ๊ตํํ์ฌ BGP ์ธ์ ์ด ์ ์์ ์ผ๋ก ์ ์ง๋๋์ง ํ์ธํฉ๋๋ค.
- ๊ฒ์ฆ์ด ์๋ฃ๋๋ฉด Established ์ํ๋ก ์ด๋ํฉ๋๋ค.
6️⃣ Established ์ํ
- BGP ํผ์ด๋ง์ด ์๋ฃ๋์์ผ๋ฉฐ, ์ด์ ๋ผ์ฐํ ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋จ๊ณ์ ๋๋ค.
- Update ๋ฉ์์ง๋ฅผ ๊ตํํ๋ฉฐ BGP์ ์ต์ ๊ฒฝ๋ก ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์ด ๊ณผ์ ์ ํตํด ์์ ์ ์ธ BGP Neighbor ๊ด๊ณ๊ฐ ์๋ฆฝ๋ฉ๋๋ค.
5. BGP์ ์ฅ์ ๊ณผ ํ๊ณ์
✅ ์ฅ์
ํ์ฅ์ฑ์ด ๋ฐ์ด๋จ: ์ธํฐ๋ท์ฒ๋ผ ๊ฑฐ๋ํ ๋คํธ์ํฌ์์๋ ์์ ์ ์ผ๋ก ๋์ํ ์ ์์ต๋๋ค.
์ ์ฑ ๊ธฐ๋ฐ ๋ผ์ฐํ ๊ฐ๋ฅ: ํน์ ๊ฒฝ๋ก๋ฅผ ์ ํธํ๊ฑฐ๋ ์ ํํ ์ ์์ด ๋คํธ์ํฌ ๊ด๋ฆฌ๊ฐ ์ ์ฐํฉ๋๋ค.
๋คํธ์ํฌ ์์ ์ฑ ์ ๊ณต: AS ๊ฐ ๊ฒฝ๋ก ๋ณ๊ฒฝ์ด ๋ฐ์ํด๋ ๋น ๋ฅด๊ฒ ์ ์ํ์ฌ ์๋น์ค ์ง์์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
❌ ํ๊ณ์
์๋ ด ์๊ฐ์ด ๊ธธ๋ค: "Convergence Time(์๋ ด ์๊ฐ)"์ด ๊ธธ์ด ๋ผ์ฐํ ๋ณํ๊ฐ ๋ฐ์๋๊ธฐ๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
๋ณด์ ์ทจ์ฝ์ ์กด์ฌ: BGP ํ์ด์ฌํน(๊ฒฝ๋ก ๊ฐ๋ก์ฑ๊ธฐ)๊ณผ ๊ฐ์ ๋ณด์ ์ํ์ด ์กด์ฌํฉ๋๋ค.
์ด์ ๋ถ๋ด์ด ํผ: ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์ค์ ํด์ผ ํ๋ฏ๋ก ๋คํธ์ํฌ ๊ด๋ฆฌ์์ ๋ถ๋ด์ด ์ฆ๊ฐํฉ๋๋ค.
6. BGP ๋ณด์ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์
๐จ BGP ๋ณด์ ์ํ
1️⃣ BGP ํ์ด์ฌํน – ์
์์ ์ธ AS๊ฐ ์๋ชป๋ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ๋ฐฐํฌํ์ฌ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ๋ ๊ณต๊ฒฉ
2️⃣ BGP ๋ฃจํธ ๋ฆฌํ๋ ํฐ ๊ณต๊ฒฉ – iBGP์์ ํน์ ๋
ธ๋๋ฅผ ๊ฒฝ์ ํ๋๋ก ์์ฌ์ ํธ๋ํฝ์ ์กฐ์
3️⃣ BGP ํผ์ด๋ง ํดํน – ํผ์ด๋ง ์ธ์
์ ๊ฐ๋ก์ฑ์ ๋คํธ์ํฌ ๋ง๋น
๐ก BGP ๋ณด์ ๊ฐํ ๋ฐฉ๋ฒ
RPKI (Resource Public Key Infrastructure) ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๋ฅธ ๊ฒฝ๋ก๋ง ์ธ์ฆ
Prefix Filtering์ ์ ์ฉํ์ฌ ์์์น ๋ชปํ ๊ฒฝ๋ก ๋ณ๊ฒฝ ์ฐจ๋จ
BGP TTL Security, MD5 ์ธ์ฆ ์ ์ฉํ์ฌ ํผ์ด๋ง ๋ณด์ ๊ฐํ
7. BGP ์ฃผ์ ์์ฑ
BGP๋ ๊ฒฝ๋ก๋ฅผ ์ ํํ ๋ Path Attribute(๊ฒฝ๋ก ์์ฑ)์ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ์ ์ ํ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์ด ๋ฌธ์์์๋ BGP์ ์ฃผ์ Path Attribute์ ๋ํด ์์ธํ ์ค๋ช
ํ๊ณ , ๊ฐ ์์ฑ์ ์ธ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋ฉด ์ข์์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
BGP ์์ฑ์ ํฌ๊ฒ 4๊ฐ์ง ํ์ ์ผ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
๐นWell-Known Mandatory : ๋ชจ๋ BGP ๋ฉ์์ง์ ํฌํจ๋์ด์ผ ํ๋ฉฐ, ๋ชจ๋ BGP ๋ผ์ฐํฐ๊ฐ ์ดํดํด์ผ ํ๋ ์์ฑ (์. Origin, AS-path, Next-Hop)
๐นWell-Known Discretionary : ๋ชจ๋ BGP ๋ผ์ฐํฐ๊ฐ ์ดํดํด์ผ ํ์ง๋ง, ํ์์ ์ผ๋ก ํฌํจ๋ ํ์๋ ์์ (์. Local Preference, Atomic Aggregate)
๐นOptional Transitive : ์ ํ์ ์ด๋ฉฐ, BGP ๋ค์ด๋ฒ์๊ฒ ์ ๋ฌ ๊ฐ๋ฅ (์. BGP community, Aggregator)
๐นOptional Non-Transitive : ์ ํ์ ์ด๋ฉฐ, ๋ค์ด๋ฒ์๊ฒ ์ ๋ฌ๋์ง ์์ (์. MED (Multi-Exit Discriminator), Originator ID, Cluster ID)
๐ BGP ๊ฒฝ๋ก ์ ํ ์ ์ฐ์ ์์
BGP๋ ์ฌ๋ฌ ๊ฒฝ๋ก๊ฐ ์์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ ๊ธฐ์ค์ผ๋ก ๊ฒฝ๋ก๋ฅผ ์ ํํฉ๋๋ค.
1. Weight (Cisco ์ ์ฉ)2. Local Preference3. AS Path4. Origin5. MED (Multi-Exit Discriminator)6. eBGP > iBGP7. IGP Cost to Next-Hop8. Router ID9. Oldest Path
1️⃣ Weight (Cisco ์ ์ฉ)
- ์ ์: Cisco ์ ์ฉ ์์ฑ์ผ๋ก, ๋ก์ปฌ ๋ผ์ฐํฐ์์๋ง ํน์ ๊ฒฝ๋ก๋ฅผ ์ ํธํ๋๋ก ์ค์
- ์ ์ฉ ๋ฐฉํฅ : Outbound ํธ๋ํฝ
- ์ด์(Neighbor) ๋ผ์ฐํฐ์๋ ์ ๋ฌ๋์ง ์์ (๋ก์ปฌ ์ ์ฉ ์์ฑ)
- ๊ฐ ๋ฒ์ :
0 ~ 65535
(๊ธฐ๋ณธ๊ฐ:0
, ์ง์ ํ์ตํ ๊ฒฝ๋ก๋32768
)
- ๋์์๋ก ์ฐ์ ์์๊ฐ ๋์
ํ์ฉ ์์ : ํน์ ISP (BGP Peer)๊ฒฝ๋ก์ Weight ๊ฐ์ ๋๊ฒ ์ค์ ํ์ฌ ๋ก์ปฌ ๋ผ์ฐํฐ์์ ํด๋น ๊ฒฝ๋ก๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ์ ๋
์ค์ ๋ฐฉ๋ฒ : Inbound ๊ฒฝ๋ก ๋งต(route map)์ ํตํด ์์ ํ ๊ฒฝ๋ก์ weight ๊ฐ์ ์ค์ ํ์ฌ ๋ก์ปฌ ๋ผ์ฐํฐ์ Outbound ๊ฒฝ๋ก ์ ํ์ ์ํฅ์ ์ค
- Weight ์ค์ ์์
// route-map์ ํตํด ์ธ๋ถ๊ฒฝ๋ก์๋ง ์ ์ฉ
ip prefix-list PREFERRED-ROUTES permit 192.0.2.0/24
route-map SET_WEIGHT permit 10
match ip address prefix-list PREFERRED-ROUTES
set weight 400
!
router bgp 65001
neighbor 192.168.1.1 route-map SET_WEIGHT in
2️⃣ Local Preference
- ์ ์: AS ๋ด๋ถ(iBGP)์์ ๊ฒฝ๋ก ์ฐ์ ์์๋ฅผ ๊ฒฐ์ . Local Preference ๊ฐ์ AS ๋ด๋ถ(iBGP) ํผ์ด๊ฐ์๋ง ์ ํ๋๋ฉฐ, AS ์ธ๋ถ๋ก๋ ์ ์ก๋์ง์์. ์์๋ฐ์ด๋ ํธ๋ํฝ ๊ฒฝ๋ก ์ ํ์ ์ํฅ์ ๋ฏธ์นจ.
- ์ ์ฉ ๋ฐฉํฅ : Outbound ํธ๋ํฝ
- ๊ฐ ๋ฒ์:
0 ~ 4294967295
(๊ธฐ๋ณธ๊ฐ:100
)
- ๋์์๋ก ์ฐ์ ์์๊ฐ ๋์
- ํ์ฉ ์์: ๋ฉํฐํ๋(ISP1, ISP2...) ํ๊ฒฝ์์ ํน์ ISP๋ก ํธ๋ํฝ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด๋ด๊ณ ์ถ์ ๋ (๋ชจ๋ iBGP ๋ผ์ฐํฐ๋ค๋ ํน์ ISP๋ก best path ์ ๋ฐ์ดํธ ๋จ. Weight์์๋ ๋ถ๊ฐ๋ฅํจ. ๋ค๋ฅธ iBGP๋ก ์ ํ๋์ง์๊ธฐ๋๋ฌธ.)
- Local Preference ์ค์ ์์
route-map SET_LOCAL_PREF permit 10
3️⃣ AS Path
- BGP ๊ฒฝ๋ก ์ ๋ฐ์ดํธ ๋ฉ์์ง์ ํฌํจ๋๋ ์์ฑ. ํน์ ๋คํธ์ํฌ (Prefix)๊ฐ ์ด๋ค AS(Autonomous System)๋ฅผ ๊ฑฐ์ณ์๋์ง ๋ํ๋.
- ์ ์ฉ ๋ฐฉํฅ : Inbound / Outbound ํธ๋ํฝ ๋ชจ๋ ์ ์ฉ ๊ฐ๋ฅ
- Inbound (์์ ๋ ๊ฒฝ๋ก์ ์ ์ฉ): ํน์ AS์์ ์จ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์ ํธ๋ ์กฐ์
- Outbound (๋ด๋ณด๋ด๋ ๊ฒฝ๋ก์ ์ ์ฉ): AS-Path Prepend๋ฅผ ํตํด ํน์ ๊ฒฝ๋ก๋ฅผ ๋ ์ ํธํ๊ฒ ์กฐ์
- ์งง์์๋ก ์ฐ์ ์์๊ฐ ๋์ → BGP๋ ๊ธฐ๋ณธ์ ์ผ๋ก AS-Path๊ฐ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ ํธ
- "192.168.1.0/24 AS-Path: 65005 65003 65001"๋ผ๋ฉด, 192.168.1.0/24 ๊ฒฝ๋ก๋ AS 65001 → 65003 → 65005๋ฅผ ๊ฑฐ์ณ ์ ๋ฌ๋จ
- ํ์ฉ์์ : AS 65005์์ ์จ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จ (Inbound), ISP2๋ฅผ ๋ฐฑ์ ๊ฒฝ๋ก๋ก ์ค์ (Outbound)
- AS Path ์ค์ ์์
// AS-Path ํํฐ๋ง (Inbound)
ip as-path access-list 10 deny _65005_
ip as-path access-list 10 permit .* # ๋๋จธ์ง ๋ชจ๋ ๊ฒฝ๋ก ํ์ฉ
route-map FILTER-AS-PATH deny 10
match as-path 10
router bgp 65000
neighbor 10.1.1.1 route-map FILTER-AS-PATH in
// AS-Path Prepend (Outbound)
route-map PREPEND-ISP2 permit 10
match ip address prefix-list BACKUP-ROUTES
set as-path prepend 65000 65000 65000 # ๋ด AS๋ฒํธ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ถ๊ฐ
router bgp 65000
neighbor 10.2.2.2 route-map PREPEND-ISP2 out
4️⃣ MED (Multi-Exit Discriminator)
- ํน์ AS(Autonomous System)๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ ์ดํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, ํนํ, ํ๋์ AS์ ์ฌ๋ฌ๊ฐ์ ๊ฒฝ๋ก๊ฐ ์์ ๋, ์ธ๋ถ AS๊ฐ ํน์ ๊ฒฝ๋ก๋ฅผ ์ ํธํ๋๋ก ์ ๋ํ ๋ ํ์ฉ๋จ
- ์ ์ฉ ๋ฐฉํฅ : Inbound / Outbound ํธ๋ํฝ
- Inbound (์์ ๋ ๊ฒฝ๋ก์ ์ ์ฉ): ํน์ AS๋ก๋ถํฐ ๋ค์ด์ค๋ ๊ฒฝ๋ก์ ๋ํด MED ๊ฐ์ ์กฐ์ ํ์ฌ ์ฐ์ ์์๋ฅผ ์ค์
- Outbound (๋ด๋ณด๋ด๋ ๊ฒฝ๋ก์ ์ ์ฉ): ๋ด๊ฐ ํน์ ๊ฒฝ๋ก์ MED ๊ฐ์ ๋ณ๊ฒฝํ์ฌ, ์๋ AS๊ฐ ํน์ ๊ฒฝ๋ก๋ฅผ ์ ํธํ๋๋ก ์ ๋
- MED ๊ฐ์ AS ๊ฐ ๋น๊ต๊ฐ ๋ถ๊ฐ๋ฅ. (์ฆ, AS 100๊ณผ AS 200์์ ๋ค์ด์ค๋ ๊ฒฝ๋ก ๊ฐ์๋ MED ๋น๊ต๊ฐ ๋์ง ์์. ๋์ผํ AS์์ ๋ค์ด์ค๋ ์ฌ๋ฌ ๊ฒฝ๋ก์ ๋ํด์๋ง ๋น๊ต ๊ฐ๋ฅ!
- ํ์ฉ์์ : ํน์ ISP์์ ๋ค์ด์ค๋ ํธ๋ํฝ ๊ฒฝ๋ก ์กฐ์ (Inbound), ๋ฉํฐํ(์ด์ค ISP) ํ๊ฒฝ์์ ํธ๋ํฝ ๋ฐธ๋ฐ์ฑ (Outbound)
- MED ์ค์ ์์
// ์ด์ค ISP ํ๊ฒฝ์์ ISP1์ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ก ์ฌ์ฉํ๊ณ , ISP2๋ฅผ ๋ฐฑ์ ๊ฒฝ๋ก๋ก ์ฌ์ฉ (Outbound ์ ์ฉ. ์๋๋ฐฉ(์ธ๋ถ AS)์ด ๋ด๊ฐ ์ค์ ํ MED ๊ฐ์ ๋ณด๊ณ ํด๋น ๊ฒฝ๋ก๋ฅผ ๋ ์ ํธํ๋๋ก ์ ๋ํ๊ธฐ ๋๋ฌธ)
route-map SET_MED_ISP1 permit 10
match ip address prefix-list OUR_NETWORKS
set metric 50 # ๋ฎ์ ๊ฐ์ด ์ฐ์ ์์ ๋์
route-map SET_MED_ISP2 permit 10
match ip address prefix-list OUR_NETWORKS
set metric 200 # ๋์ ๊ฐ → ๋ ์ ํธ๋จ
router bgp 65000
neighbor 192.168.1.1 route-map SET_MED_ISP1 out # ISP1์ผ๋ก ๋ณด๋ด๋ ๊ฒฝ๋ก
neighbor 192.168.2.1 route-map SET_MED_ISP2 out # ISP2๋ก ๋ณด๋ด๋ ๊ฒฝ๋ก
5️⃣ BGP Communities
- BGP ์ ๋ฐ์ดํธ ๋ฉ์์ง๋ฅผ ํตํด ์ฌ๋ฌ AS์ ์ ๋ฌ๋ ์ ์์. ํ๋์ ๊ฒฝ๋ก์ ์ฌ๋ฌ ๊ฐ์ Community ๊ฐ์ ๋ถ์ฌ ๊ฐ๋ฅ.
- AA:NN ํํ๋ก ์ฌ์ฉ (์: 65000:100 → AS 65000์์ ์ ์ํ Community ๊ฐ 100)
- Outbound (๋ด๋ณด๋ด๋ ๊ฒฝ๋ก์ ์ ์ฉ) : ๋ด๊ฐ ํน์ ๊ฒฝ๋ก์ Community ๊ฐ์ ์ถ๊ฐํ์ฌ ๋ค๋ฅธ AS๊ฐ ํด๋น ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฑ ์ ์ ์ฉํ ์ ์๋๋ก ํจ
- Inbound (์์ ๋ ๊ฒฝ๋ก์ ์ ์ฉ) : ๋ฐ์ ๊ฒฝ๋ก์ Community ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํน์ ์ ์ฑ ์ ์ ์ฉ (ํํฐ๋ง, ์ฐ์ ์์ ๋ณ๊ฒฝ ๋ฑ)
- BGP ์ ๋ฐ์ดํธ ๋ฉ์์ง๋ฅผ ํตํด ์ฌ๋ฌ AS์ ์ ๋ฌ๋ ์ ์์. ํ๋์ ๊ฒฝ๋ก์ ์ฌ๋ฌ ๊ฐ์ Community ๊ฐ์ ๋ถ์ฌ ๊ฐ๋ฅ.
- AA:NN ํํ๋ก ์ฌ์ฉ (์: 65000:100 → AS 65000์์ ์ ์ํ Community ๊ฐ 100)
- ํ์ฉ์์ : Outbound (ํธ๋ํฝ ์์ง๋์ด๋ง, ํน์ ๊ฒฝ๋ก ์ฐ์ ์์ ์ค์ ), Inbound (๊ฒฝ๋ก ํํฐ๋ง, ํน์ ๊ฒฝ๋ก ์ ํธ)
- Community ์ค์ ์์
// AS 65000์์ ๋ณด๋ธ ๊ฒฝ๋ก ์ค Community ๊ฐ์ด 65000:100
์ธ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จ
ip community-list 10 deny 65000:100 # AS 65000์์ ๋ณด๋ธ Community 100 ์ฐจ๋จ
ip community-list 10 permit any # ๋๋จธ์ง๋ ํ์ฉ
route-map FILTER_COMMUNITY deny 10
match community 10
router bgp 65000
neighbor 192.168.1.1 route-map FILTER_COMMUNITY in
8. ์ค์ BGP ๋ณด์ ์ฌ๊ณ ์ฌ๋ก
1️⃣ 2018๋ 4์: Amazon Route 53 BGP ํ์ด์ฌํน ์ฌ๊ฑด
- ์ํฅ์ ๋ฐ์ ๊ธฐ์ : MyEtherWallet (์ํธํํ ์ง๊ฐ ์๋น์ค)
- ๋ฐ์ ์๊ฐ: 2018๋ 4์ 24์ผ
- ์ง์ ์๊ฐ: ์ฝ 2์๊ฐ
- ๊ธฐ์ ์ ์์ธ: BGP ํ์ด์ฌํน
์ด ์ฌ๊ฑด์์ ๊ณต๊ฒฉ์๋ BGP ํ์ด์ฌํน์ ํตํด Amazon์ DNS ์๋น์ค์ธ Route 53์ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ์ต๋๋ค. ์ด๋ฅผ ํตํด MyEtherWallet ์ฌ์ฉ์๋ฅผ ํผ์ฑ ์ฌ์ดํธ๋ก ์ ๋ํ์ฌ ์ํธํํ๋ฅผ ํ์ทจํ์ต๋๋ค. ๊ณต๊ฒฉ์๋ ํฉ๋ฒ์ ์ธ IP ์ฃผ์ ๋ฒ์๋ฅผ ๊ฐ์ฅํ์ฌ ์๋ชป๋ BGP ๊ฒฝ๋ก๋ฅผ ๊ด๊ณ ํจ์ผ๋ก์จ ํธ๋ํฝ์ ์์ ๋ค์ด ์ ์ดํ๋ ์๋ฒ๋ก ๋ฆฌ๋๋ ์ ํ์ต๋๋ค.
2️⃣ 2019๋ 6์: ์ ๋ฝ ์ธํฐ๋ท ํธ๋ํฝ ์ฐํ ์ฌ๊ณ
- ์ํฅ์ ๋ฐ์ ๊ธฐ์ : Cloudflare, Amazon, Linode ๋ฑ
- ๋ฐ์ ์๊ฐ: 2019๋ 6์ 6์ผ
- ์ง์ ์๊ฐ: ์ฝ 2์๊ฐ
- ๊ธฐ์ ์ ์์ธ: ์๋ชป๋ BGP ๊ฒฝ๋ก ๊ด๊ณ
์ค์์ค์ ๋ฐ์ดํฐ ์ผํฐ ์ ์ฒด์ธ Safe Host๊ฐ ์๋ชป๋ BGP ๊ฒฝ๋ก๋ฅผ ๊ด๊ณ ํ์ฌ ์ ๋ฝ์ ์ธํฐ๋ท ํธ๋ํฝ์ด ์ค๊ตญ์ China Telecom์ ๊ฒฝ์ ํ๋๋ก ๋ง๋ค์์ต๋๋ค. ์ด๋ก ์ธํด Cloudflare, Amazon, Linode ๋ฑ์ ์๋น์ค์ ์ง์ฐ๊ณผ ์ฅ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ์ด๋ BGP ํผ์ด ๊ฐ์ ํํฐ๋ง์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์ ๋ฐ์ํ ๋ฌธ์ ๋ก, ์๋ชป๋ ๊ฒฝ๋ก ์ ๋ณด๊ฐ ์ ํ๋์ด ํธ๋ํฝ์ด ์๋์น ์์ ๊ฒฝ๋ก๋ก ์ฐํ๋์์ต๋๋ค.
3️⃣ 2024๋ 6์: Cloudflare 1.1.1.1 ์๋น์ค ์ฅ์ ์ฌ๊ฑด
- ์ํฅ์ ๋ฐ์ ๊ธฐ์ : Cloudflare
- ๋ฐ์ ์๊ฐ: 2024๋ 6์ 27์ผ
- ์ง์ ์๊ฐ: ์ฝ 1์๊ฐ
- ๊ธฐ์ ์ ์์ธ: BGP ํ์ด์ฌํน ๋ฐ ๋ผ์ฐํ ์ ์ถ
์ด ์ฌ๊ฑด์์๋ ๋ธ๋ผ์ง์ ๋คํธ์ํฌ ์ ๊ณต์ ์ฒด์ธ ELETRONET SA(AS267613)๊ฐ 1.1.1.1/32 ๊ฒฝ๋ก๋ฅผ ์๋ชป ๊ด๊ณ ํ์ฌ, ์ผ๋ถ ๋คํธ์ํฌ์์ Cloudflare์ DNS ๋ฆฌ์กธ๋ฒ ์๋น์ค์ธ 1.1.1.1์ ๋ํ ์ ์์ด ๋ถ๊ฐ๋ฅํด์ก์ต๋๋ค. ์ด๋ก ์ธํด ์ฝ 70๊ฐ๊ตญ์ 300์ฌ ๊ฐ ๋คํธ์ํฌ์์ ์ฌ์ฉ์๋ค์ด ์ํฅ์ ๋ฐ์์ผ๋ฉฐ, ์ด๋ BGP ํ์ด์ฌํน๊ณผ ๋ผ์ฐํ ์ ์ถ์ด ํผํฉ๋์ด ๋ฐ์ํ ๋ฌธ์ ์์ต๋๋ค.
9. ์์ฝ ๋ฐ ์๊ฒฌ
๋คํธ์ํฌ ์์ง๋์ด๋ก์ BGP๋ฅผ ๋ค๋ฃจ๋ฉฐ ๋๋ ์ ์, ์ธํฐ๋ท์ ๊ทผ๊ฐ์ ์ด๋ฃจ๋ ๊ธฐ์ ์ด์ง๋ง ๋ณด์ ์ธก๋ฉด์์๋ ์ฌ์ ํ ์ทจ์ฝ์ ์ด ๋ง๋ค๋ ๊ฒ์ ๋๋ค. ํนํ, BGP ํ์ด์ฌํน ๊ฐ์ ๊ณต๊ฒฉ์ด ๊ณ์ํด์ ๋ฐ์ํ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋คํธ์ํฌ๋ฅผ ๋์ฑ ๊ฐ๋ ฅํ๊ฒ ๋ณดํธํด์ผ ํจ์ ์์ฌํฉ๋๋ค. RPKI ๊ฐ์ ์ธ์ฆ ๊ธฐ์ ์ด ํ์ฐ๋๊ณ ์์ง๋ง, ์ฌ์ ํ ๋ง์ ๊ธฐ์ ๊ณผ ISP๊ฐ ์ด๋ฅผ ์ ์ฉํ์ง ์๊ณ ์์ต๋๋ค. ๋ํ, BGP๋ ์๋์ ์ธ ์ด์์ด ๋ง์ ๊ด๋ฆฌ์์ ์๋ จ๋๊ฐ ๋งค์ฐ ์ค์ํ๋ฉฐ, ์ค์ ํ๋๊ฐ ๋๊ท๋ชจ ๋คํธ์ํฌ ์ฅ์ ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์์ผ๋ก๋ ์๋ํ๋ ๋ณด์ ์๋ฃจ์ ๊ณผ ์ ์ฑ ๊ธฐ๋ฐ ๋ผ์ฐํ ์ด ๋ ์ค์ํด์ง ๊ฒ์ด๋ฉฐ, ์ด์ ๋๋นํ ์ง์์ ์ธ ์ฐ๊ตฌ์ ๊ต์ก์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.