๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ

ํŠน์ • ์„œ๋ธŒ๋„ท์ด๋‚˜ ์ปค์Šคํ…€ IP ๋ฒ”์œ„๋ฅผ ๋” ์ด์ƒ ๊ณต์ง€ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉด ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Router๋Š” ์ƒˆ ์„œ๋ธŒ๋„ท์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋ธŒ๋„ท์„ ๊ณต์ง€ํ•ฉ๋‹ˆ๋‹ค. BGP ์„ธ์…˜์˜ ๊ฒฝ์šฐ Cloud Router์˜ ๋™์ž‘์„ ์ƒ์†ํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ๋™์ž‘์ž…๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

gcloud

์ด ๊ฐ€์ด๋“œ์˜ ๋ช…๋ น์ค„ ์˜ˆ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

  1. ์ตœ์‹  ๋ฒ„์ „์˜ Google Cloud CLI๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ธฐ๋ณธ ๋ฆฌ์ „ ๋ฐ ์˜์—ญ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

API

์ด ๊ฐ€์ด๋“œ์˜ API ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด API ์•ก์„ธ์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Cloud Router์—์„œ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ

Cloud Router์—์„œ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ Cloud Routers ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    Cloud Router๋กœ ์ด๋™

  2. ์—…๋ฐ์ดํŠธํ•  Cloud Router๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ผ์šฐํ„ฐ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๊ณต์ง€๋œ ๊ฒฝ๋กœ ์„น์…˜์˜ ๊ฒฝ๋กœ์—์„œ Cloud Router์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  ์„œ๋ธŒ๋„ท ๊ณต์ง€(๊ธฐ๋ณธ๊ฐ’)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ์ €์žฅ์„ ํด๋ฆญํ•˜์—ฌ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

gcloud

update ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด --advertisement-mode ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์ง€ ๋ชจ๋“œ๋ฅผ default๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

gcloud compute routers update my-router \
    --advertisement-mode default

API

routers.patch ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ bgp.advertiseMode๋ฅผ DEFAULT๋กœ ์„ค์ •ํ•˜๊ณ  ์ปค์Šคํ…€ ๊ณต์ง€ ๋ชจ๋“œ ๊ตฌ์„ฑ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
{
  "bgp": {
    "advertiseMode": "DEFAULT",
    "advertisedGroups": [],
    "advertisedIpRanges": []
  }
}

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • PROJECT_ID: Cloud Router๋ฅผ ํฌํ•จํ•˜๋Š” ํ”„๋กœ์ ํŠธ
  • REGION: Cloud Router๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ „
  • ROUTER_NAME: Cloud Router์˜ ์ด๋ฆ„

BGP ์„ธ์…˜์—์„œ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ

BGP ์„ธ์…˜์—์„œ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ Cloud Routers ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    Cloud Router๋กœ ์ด๋™

  2. ์—…๋ฐ์ดํŠธํ•  BGP ์„ธ์…˜์ด ์žˆ๋Š” Cloud Router๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ผ์šฐํ„ฐ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์—…๋ฐ์ดํŠธํ•  BGP ์„ธ์…˜์„ ์„ ํƒํ•˜์„ธ์š”.

  4. BGP ์„ธ์…˜ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ๊ฒฝ๋กœ์—์„œ Cloud Router์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  ์„œ๋ธŒ๋„ท ๊ณต์ง€(๊ธฐ๋ณธ๊ฐ’)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์ €์žฅ์„ ํด๋ฆญํ•˜์—ฌ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด update-bgp-peer ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  --advertisement-mode ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์ง€ ๋ชจ๋“œ๋ฅผ default๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

gcloud compute routers update-bgp-peer my-router \
    --peer-name my-bgp-session \
    --advertisement-mode default

API

ํ•˜๋‚˜ ์ด์ƒ์˜ BGP ์„ธ์…˜์—์„œ routers.patch ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ bgpPeers[] ํ•„๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

bgpPeers[] ํ•„๋“œ๋Š” BGP ํ”ผ์–ด์˜ ๋ฐฐ์—ด์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•„๋“œ๋ฅผ PATCHํ•˜๋ฉด ๊ธฐ์กด BGP ํ”ผ์–ด ๋ฐฐ์—ด์„ ์š”์ฒญ์— ํฌํ•จ๋œ ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

  1. GET ์š”์ฒญ์„ ๋ณด๋‚ด ๋ผ์šฐํ„ฐ์˜ ํ˜„์žฌ BGP ํ”ผ์–ด ๋ฐฐ์—ด์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ BGP ์„ธ์…˜ ๊ตฌ์„ฑ ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ์ƒˆ BGP ํ”ผ์–ด ๋ฐฐ์—ด์ด ํฌํ•จ๋œ PATCH ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋Š” ๊ฐ BGP ํ”ผ์–ด์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • advertisedMode๋ฅผ DEFAULT๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • advertisedGroup[] ๋ฐ advertisedIpRanges[]๋ฅผ []๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgpPeers": [
        BGP_PEERS
      ]
    }
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • PROJECT_ID: Cloud Router๋ฅผ ํฌํ•จํ•˜๋Š” ํ”„๋กœ์ ํŠธ
    • REGION: Cloud Router๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ „
    • ROUTER_NAME: Cloud Router์˜ ์ด๋ฆ„
    • BGP_PEERS: BGP ํ”ผ์–ด์˜ ์ƒˆ ๋ฐฐ์—ด ์ฝ˜ํ…์ธ 

    ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” ๋‘ BGP ์„ธ์…˜์„ ๊ธฐ๋ณธ ๊ณต์ง€ ๋ชจ๋“œ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

        {
          "name": "peer-1",
          "interfaceName": "if-peer-1",
          "ipAddress": "169.254.10.1",
          "peerIpAddress": "169.254.10.2",
          "peerAsn": 64512,
          "advertisedRoutePriority": 100,
          "advertiseMode": "DEFAULT",
          "advertisedGroups": [],
          "advertisedIpRanges": []
        },
        {
          "name": "peer-2",
          "interfaceName": "if-peer-2",
          "ipAddress": "169.254.20.1",
          "peerIpAddress": "169.254.20.2",
          "peerAsn": 64513,
          "advertisedRoutePriority": 100,
          "advertiseMode": "DEFAULT",
          "advertisedGroups": [],
          "advertisedIpRanges": []
        }
    

๋‹ค์Œ ๋‹จ๊ณ„

  • Cloud Router ๊ตฌ์„ฑ, BGP ์„ธ์…˜, Cloud Router์—์„œ ๊ณต์ง€ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ณด๋ ค๋ฉด Cloud Router ์„ธ๋ถ€์ •๋ณด ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ์ปค์Šคํ…€ ๊ณต์ง€ ๊ฒฝ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.