Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BGP Communityの 基本設計

BGP Communityの 基本設計

Internet Week 2016「想いが伝わるBGP運用~経路制御とルーティングセキュリティ最前線~」で話しました.BGP Community を設計するときの AS 運営者むけノウハウをまとめます.
https://internetweek.jp/program/t06/

A31d1c25ddaa3692377a488f0b64ef2b?s=128

Shintaro Kojima

November 29, 2016
Tweet

More Decks by Shintaro Kojima

Other Decks in Technology

Transcript

  1. Internet week 2016 想いが伝わるBGP運⽤ BGP Communityの 基本設計

  2. ⼩島 慎太郎 codeout http://about.me/codeout 2004 2009 2014 ϑϦʔϥϯεͷ "4ख఻͍ *9

    +1/"1 *41 OUUOFU
  3. 本⽇話すこと w #(1$PNNVOJUZ͕ͲͷΑ͏ʹ࢖ΘΕͯΔ͔ w ࣗ෼ͨͪͰܾΊΔύλʔϯ w ΄͔Ͱܾ·ͬͨ΋ͷΛ͔ͭ͏ύλʔϯ w ࣗ෼ͨͪͰઃܭͯ͠ΈΑ͏ w

    ͳͥ͜ͷઃܭͳͷ͔ɺࢲͷܦݧ͔Β w ઃܭͨ͠#(1$PNNVOJUZΛ΄͔ʹެ։͢Δ ΂͖͔ߟ͑ͯΈΑ͏
  4. BGP Community

  5. BGP Community w ܦ࿏ʹ͚ͭΔλά w όΠτόΠτ w 0QUJPOBM5SBOTJUJWF
 ͋ͬͯ΋ͳͯ͘΋0,"4·ͨ͗Ͱ఻ൖ͢Δ 

    w جຊతʹ͸উखʹܾΊͯ0, w /0@&91035ɺ/0@"%7&35*4&ͳͲͷ
 ఆٛࡁΈ$PNNVOJUZͱॏෳ͠ͳ͍͔͗Γ 2914 : 2518
  6. BGP Community 2914 : 2518 Global Administrator
 ふつうは自分のASNに固定 自由

  7. 2バイト : 2バイト だけ? w όΠτόΠτɺόΠτόΠτͷ
 ύλʔϯ΋͋Δ w 3'$#(1&YUFOEFE$PNNVOJUZ

  8. 微妙

  9. ...4バイトAS のひといますか? w όΠτόΠτɺόΠτόΠτ w ߹ܭόΠτ͔͠࢖͑ͳ͍ w Կʹ͔ͭ͑Δ͔͸3'$Λ w લ൒όΠτ

    ޙ൒όΠτ࢖͍͔ͨͬͨΒΞ΢τ w ΋ͪΖΜແཧ΍Γ࢖͑ΔΑʁ w ޙ൒όΠτˠόΠτʹϚοϐϯά͢Δͱ͔Ͷʁ
 όουϊ΢ϋ΢ष w #(1-BSHF$PNNVOJUZʹظ଴
 IUUQMBSHFCHQDPNNVOJUJFTOFU
  10. 使われかた

  11. トランジット、ピア、顧客 の区別 トランジット 顧客 ピア XXX:200 + XXX:400 + XXX:100

    + XXX:200 + XXX:300 XXX:100 + XXX:200 +
 XXX:300 + XXX:400 自分 XXX:400
  12. ntt.net https://www.us.ntt.net/support/policy/routing.cfm

  13. ntt.net https://www.us.ntt.net/support/policy/routing.cfm 65500 : 2518
 2518 には広告しない 2914 : 480


    LP をちょっと下げる
  14. EQUINIX ルートサーバー https://ix.equinix.com/ixp/mlpeCommunityInfo

  15. EQUINIX ルートサーバー https://ix.equinix.com/ixp/mlpeCommunityInfo 0:24115 + 24115:2518
 2518 にだけ広告する

  16. BGP Community の使われかた w ଞࣾͷܾΊ͔ͨ͸ΊͪΌͪ͘ΌࢀߟʹͳΔ w ଞࣾͷ#(1$PNNVOJUZ·ͱΊαΠτ
 IUUQTPOFTUFQOFUDPNNVOJUJFT w ֎͔Βݟ͍͑ͯΔ΋ͷ͕͢΂ͯͰ͸ͳ͍

    w ಺෦؅ཧͷͨΊͷ#(1$PNNVOJUZ΋͋Δ
  17. ⾃分たちでも決めてみよう

  18. 基本戦略 େྔͷ΋ͷ͸ѻ͍ʹ͍͘ˠλάΛ͚ͭͯѻ͍΍͘͢
 ѻ͍΍ཻ͍͢౓Ͱɺѻ͍΍͍͢λάΛ͚ͭΔ  #(1$PNNVOJUZͷϚονํ๏Λ஌Δ  ࣗ෼ͨͪʹͱͬͯศརͳΑ͏ʹλάΛܾΊΔ w ͲΜͳཻ౓ɺͲΜͳํ๏Ͱ5&͍ͯ͠Δ͔ w

    ҰൃͰܾΊͳ͍͍ͯ͘Αʂ
 ϕετͳઃܭʹࢸΔʹ͸͕࣌ؒඞཁɹ   ͦΕ͸ސ٬ʹͱͬͯ΋ศརͳͷͰ͸ʁ w ࣗ෼͕ศརʹ࢖͍ͬͯΔ΋ͷΛެ։͍ͯ͘͠ w ͜͜͸৻ॏʹ BGP Community
  19. BGP Community のマッチ⽅法を知る XXX:1..$ XXX:* XXX:1..$ XXX:.* +VOJQFS [XXX:100 XXX:200]

    XXX:100 XXX:200 XXX:1..$ XXX:.* XXX:100 XXX:200 *0493 *04 XXX:[100-120] #(1$PNNVOJUZΛఆٛ͢ΔલʹɺͲͷΑ͏ʹϚονͰ͖Δ͔ ஌͓ͬͯ͘ඞཁ͕͋ΔɻϚονͮ͠Β͍άϧʔϓ෼͚͸ආ͚ͳ͍ ͱ͍͚ͳ͍ɻ͍͍ͩͨਖ਼نදݱ͕࢖͑ΔɻൣғࢦఆͰ͖Δ΋ͷ΋ɻ 正規表現がないと かなりつらい
  20. BGP Communnity の意味を考える ͲΜͳ$PNNVOJUZʹͲΜͳҙຯΛ࣋ͨͤΔ͔ w ·ͣ୯ͳΔϥϕϧͱͯ͠ w ܦ࿏ͷछผ w ଞࣾͷܦ࿏τϥϯδοτPSϐΞPSސ٬

    w ࣗ෼ͷܦ࿏αʔϏεผ w ϩέʔγϣϯ w ࠃ಺PSւ֎ɺؔ੢PSؔ౦ w ࣄۀن໛ʹΑཻͬͯ౓͕͕ͪ͏
  21. BGP Communnity の意味を考える w ܦ࿏ૢ࡞ ύεΞτϦϏϡʔτ  w -PDBM1SFGFSFODF w

    "4@1"5)1SFQFOE w ແ৚݅ʹૢ࡞͢ΔPSಛఆͷ/FJHICPSʹग़͢ͱ͖͚ͩૢ࡞ w ܦ࿏ૢ࡞ ޿ࠂ͢ΔPS͠ͳ͍  w ಛఆͷ/FJHICPS͚ͩʹग़͢ग़͞ͳ͍ w τϥϑΟοΫΞΧ΢ϯςΟϯά w 4$6%$6 +VOJQFS  • http://www.juniper.net/techpubs/en_US/junos15.1/topics/concept/source-class-usage-options- junos-nm.html w #(11PMJDZ"DDPVOUJOH $JTDP  • http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13760-38.html 全部に効く / 一部に 効くなど、粒度パターン が必要かも
  22. えっ、なんかめちゃくちゃ多いんですけど… w ͳͷͰɺجຊ͸ࣗ෼ͨͪʹศརͳΑ͏ʹ w υοάϑʔσΟϯάॏཁ w ʮސ٬ʹͱͬͯศརͩΖ͏͔ʯ͸Ұ୴๨Ε·͠ΐ͏ w ཻ౓Ͱ೰ΜͩΒɺͱΓ͋͑ͣࡉ͔͘ w

    ࠁΈͷ֊ஈΛޙͰࡉ෼Խˠݫ͍͠ w ࠁΈͷ֊ஈΛޙͰ·ͱΊΔˠ0, w ௚ަ͢ΔΑ͏ʹ
  23. w μϝͳྫ❌ w ؔ੢ͷτϥϯδοτ ˠ999 w ؔ౦ͷτϥϯδοτ ˠ999 w ؔ੢ͷϐΞ

       ˠ999 w ؔ౦ͷϐΞ    ˠ999 w ͍͍ྫ⭕ w ؔ੢    ˠ999 w ؔ౦    ˠ999 w τϥϯδοτˠ999 w ϐΞ    ˠ999 ͜Ε͸ͨͿΜΘ͔Γ΍͍͢ 関西のトランジット = XXX:100 XXX:300
  24. w ͡Ό͋ɺ͜Ε͸ʁ w "4/:ʹ޿ࠂ͠ͳ͍     ˠ: w

    ΞδΞͰ͸ɺ"4/:ʹ޿ࠂ͠ͳ͍ ˠ: w ͜͏Ͱ͸ʁ w "4/:ʹ޿ࠂ͠ͳ͍     ˠ: w ΞδΞͰ͸ɺ"4/:ʹ޿ࠂ͠ͳ͍ ˠ: 999 w 999ޮՌΛΞδΞʹݶఆ͢Δ ͦΕ͸ͦ͏ͳΜ͚ͩͲɺ w Θ͔Γ΍͍͢ʁ w ଞͷ$PNNVOJUZͱͷίϯϘ͕ͪΌΜͱಈ͘ʁ わかりやすさ重要。 自分たちに便利なように 直交してない
  25. ケーススタディ: 国内ISPの例 トラン ジット トラン ジット ؔ੢ ؔ౦ 顧客 自社

    サービス 自社 サービス w ؔ౦ɺؔ੢ʹ෼͔ΕͯΔ w ࣗࣾαʔϏεͷܦ࿏͸
 ؔ੢ؔ౦ʹด͡Δ w Πϯλʔωοτͷܦ࿏͸
 ΞδΞ64&6͘Β͍ͷ
 ཻ౓ͰݟͯΔ w ʮσϑΥϧτ ϞόΠϧ
 ͬΆ͍"4ͷܦ࿏͚ͩཉ͍͠ʯ ͱ͍͏ސ٬͕ෳ਺͍Δ 顧客
  26. w ड৴ w τϥϯδοτɺސ٬ɺ ࣗࣾܦ࿏ΛϚʔΫ w -1Ληοτ w ૹ৴ w

    ϑΟϧλʔ ケーススタディ: 国内ISPの例 (1) 基本 トラン ジット トラン ジット ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 XXX:120 XXX:130 XXX:110 XXX:110、 120、130 XXX:110、120
  27. ケーススタディ: 国内ISPの例 (2) ⾃社サービスの経路は関⻄ / 関東に閉じる トラン ジット トラン ジット

    ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 XXX:205 = リージョン に閉じるフラグ
 XXX:2010 = 関西 XXX:2020
 = 関東 受信時
 XXX:205 が付いていて、 XXX:2020 が付いてない
 経路を捨てる
  28. ケーススタディ: 国内ISPの例 (2) ⾃社サービスの経路は関⻄ / 関東に閉じる トラン ジット トラン ジット

    ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 XXX:205 = リージョン に閉じるフラグ
 XXX:2010 = 関西 XXX:2020
 = 関東 受信時
 XXX:205 が付いていて、 XXX:2020 が付いてない
 経路を捨てる ؔ੢ͷܦ࿏Λ֎ʹग़͞ͳ͍ Neighbor ͝ͱʹؔ੢/ؔ౦ͷ۠ผ͕ඞཁ ❌ ؔ౦Ҏ֎ͷܦ࿏Λड͚औΒͳ͍ Neighbor ʹΑΔ෼ذ͕ෆཁ ⭕
  29. ケーススタディ: 国内ISPの例 (3) インターネットの経路はアジア / US / EU くらいの粒度で⾒てる トラン

    ジット トラン ジット ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 2914:3000 → XXX:1200 3257:50002 → XXX:1200  ఆٛͷ64  ఆٛͷ64 ˠ 999 ࣗ෼ͨͪఆٛͷ64 ʹ෇͚͔͑Δ
  30. ケーススタディ: 国内ISPの例 (3) インターネットの経路はアジア / US / EU くらいの粒度で⾒てる トラン

    ジット トラン ジット ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 2914:3000 → XXX:1200 3257:50002 → XXX:1200  ఆٛͷ64  ఆٛͷ64 ˠ 999 ࣗ෼ͨͪఆٛͷ64 ʹ෇͚͔͑Δ τϥϯδοτࣄۀऀ͕ҟͳͬͯ΋ɺ ࣗ෼ͨͪͷϩέʔγϣϯఆٛʹ
 ෇͚͔͑Δ ౷Ұతͳ੍ޚ͕Մೳ
 (ϐΞ͕͋ΔͷͰ100%ΧόϨοδ͸ݫ͍͠)
  31. ケーススタディ: 国内ISPの例
 (4) 「デフォルト + モバイルっぽいASの経路 だけ欲しい」という顧客が複数いる トラン ジット トラン

    ジット ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 XXX:4001 デフォルト +
 XXX:4001 w ड͚औΔͱ͖ʹϞόΠϧ
 ͬΆ͍"4Λ୳ͯ͠ϚʔΫ w ಛఆސ٬΁ͷܦ࿏޿ࠂ࣌ʹ ϑΟϧλʔ w ͦΜͳސ٬͕ͨ͘͞Μ
 ͍Δ
  32. ケーススタディ: 国内ISPの例
 (4) 「デフォルト + モバイルっぽいASのだけ 欲しい」という顧客が複数いる トラン ジット トラン

    ジット ؔ੢ ؔ౦ 顧客 自社 サービス 自社 サービス 顧客 XXX:4001 デフォルト +
 XXX:4001 w ड͚औΔͱ͖ʹϞόΠϧͬ Ά͍"4Λ୳ͯ͠ϚʔΫ w ಛఆސ٬΁ͷܦ࿏޿ࠂ࣌ʹ ϑΟϧλʔ w ͦΜͳސ٬͕ෳ਺ɺ
 ͱ͍͏ͷ͕ϙΠϯτ ෳࡶͳ൑ఆϩδοΫΛෳ਺Օॴʹ ॻ͔ͳ͍޻෉ มߋ͠๨ΕͳͲʹΑΔ
 τϥϒϧ๷ࢭ
 + มߋ࣌ͷ࡞ۀՕॴΛݮΒ͢
  33. TIPS ʮࣗ༝ʹͳΔόΠτͷ෦෼ɺ޿͗ͯ͢खʹ͋·Δ ʯ XXX: 0〜 99
 ... XXX: 200〜 249

    XXX: 250〜 299 ... XXX:1000〜1099 XXX:1100〜1199 XXX:1200〜1299 XXX:1300〜1399 ... ˡڱ͍ͷͰ࢖Θͳ͍ɻྫ͑͹ͱ͸
 ҧ͏छผʹݟ͑Δ
 ˡࣅͨػೳ͸έλ਺ͱ಄dέλΛἧ͑Δ
 ༧໿  ༧໿  ˡύλʔϯ͕ଟ͍ػೳ΄Ͳ޿͘࢖͏ ༧໿ 隣をあけておくと、見直しで リナンバーしやすい まとまり感
  34. すべてにハマる設計はない w ղܾ͍ͨ͠໰୊ن໛ʹΑͬͯɺϕετͳ
 #(1$PNNVOJUZઃܭ͸ҧ͏ w ·ͣ͸খ͘͞΍ͬͯΈ·͠ΐ͏ w ΍ͬͯΈͳ͍ͱ෼͔Βͳ͍ w ʮࣅͨύλʔϯͰ͜Ε΋ཉ͍͠ʯͬͯ


    ͲΜͲΜग़ͯ͘Δ w ͨ·ʹʮ͜Εސ٬͕تͿΜͰ͸ʯͱ͍͏ͷ͕
 ݟ͔ͭΔ
  35. 使っているBGP Community、
 顧客に公開するべき? w ސ٬ͷ໰୊Λղܾͦ͠͏ͳΒެ։͢Δ΂͖ w ࣗ෼͕ͨͪศརࣗ෼ͨͪͷ໰୊Λղܾͨ͠ w Ͱ͋Ε͹ɺ͍ͭͰʹސ٬ͷ໰୊ΛղܾͰ͖Δ͔΋ w

    Πϯλʔωοτ͔ͩΒɻύέοτ͸ࣅͨͱ͜ΖΛ௨Δ w ੍ޚݖΛҰ෦౉͢͜ͱͰɺސ٬ͷεϐʔυ্͕͕ͬͨΓɺ ࣗ෼ͨͪͷ01&9͕Լ͕Γͦ͏ͳΒެ։͢Δ΂͖ w ʮϝʔϧͰΦʔμʔ͍ͩ͘͞ʯ͸஗͍ w #(1$PNNVOJUZ"1*
  36. 10年前の、この状況に似てる http://www.slideshare.net/horiyasu/20140703-geechs

  37. 10年前の、この状況に似てる http://www.slideshare.net/horiyasu/20140703-geechs ࣗ෼ͨͪͰ͸ղܾͮ͠Β͍͕ɺ
 τϥϯδοτࣄۀऀͳΒͳΜͱ͔
 Ͱ͖ͦ͏ͳ໰୊͕͋Δ ʮ͓ئ͍͢Ε͹΍ͬͯ͘ΕΔɻ஗͍͚Ͳʯ ΑΓɺʮAPI Λ࢖ͬͯࣗ෼ͨͪͰ ͬ͞ͱղܾͰ͖Δʯ΄͏͕͍͍Ͱ͠ΐ͏ʁ

  38. 対する懸念 w ͍ͪͲ#(1$PNNVOJUZΛެ։ͨ͠Βɺ
 ม͑ΒΕͳ͍ͷͰ͸ʁ w ͍·ͷઃܭ͕ࣦഊͩͬͨΒʁ

  39. そこで Large BGP Community ですよ http://largebgpcommunities.net/

  40. 何を⾔ってるのか w ͍ۙকདྷɺ-BSHF#(1$PNNVOJUZͳΔ΋ͷ ͕དྷΔ w όΠτόΠτˠόΠτόΠτόΠτ w Ϧφϯόʔͷνϟϯεʂ ސ٬΁ͷݴ͍༁తʹ 

    w ͦΕ·Ͱʹ஌ݟΛͨΊͯɺઃܭΛݟ௚͢͜ͱ͕ Ͱ͖Δ
  41. 繰り返しだけど、
 BGP Community = API w ωοτϫʔΫػೳΛ֎͔Βൃಈ͢Δ w ࣗ෼͕ͨͪ͏Ε͍͠΋ͷ͸ɺސ٬ʹͱͬͯ΋͏Ε͍͠ w

    ଞࣾͷ"1*ΛϚογϡΞοϓͯࣗࣾ͠αʔϏεʹ
 ͭͳ͛Δ͜ͱ΋Ͱ͖Δ w #(1$PNNVOJUZ͸5SBOTJUJWFͳͷͰɺ
 ຊ࣭తʹ࿈ܞ͠΍͍͢ w Ͳ͔͔͜Β఻ΘΕ͹ൃಈ͢Δ
  42. お隣さんは、
 API 連携で発展している…⚡⚡⚡ https://aws.amazon.com/jp/blogs/aws/building-bridges-for-better-cancer-treatment- with-the-fred-hutchinson-cancer-research-center/

  43. BGP Community を消さないことも価値 顧客 2914 2914:666 2914:666 w ͨͱ͑͹ͷ35#)ɺ
 ސ٬͕࢖͑Δͱͨ͠ΒͲ͏ʁ

    w "61తͳ໰୊͸͋Δ͔΋ʜ  w ܦ࿏ϑΟϧλʔ͸։͍ͯΔʁ
  44. まとめ w #(1$PNNVOJUZͷઃܭํ๏ w ·ͣ͸ࣗ෼͕ͨͪศརʹ࢖͑Δ͜ͱ͕ॏཁ w ސ٬ʹެ։͢Δ͜ͱͰɺ
 ސ٬ͷ໰୊Λղܾ͢Δ͜ͱΛߟ͑Α͏ w #(1$PNNVOJUZ͸"1*

    w ݺΜͩΓݺ͹ΕͨΓ͠Α͏ w #(1$PNNVOJUZΛফ͞ͳ͍બ୒ࢶ΋͝ݕ౼Λ
  45. Questions ?