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/

Shintaro Kojima

November 29, 2016
Tweet

More Decks by Shintaro Kojima

Other Decks in Technology

Transcript

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

    w جຊతʹ͸উखʹܾΊͯ0, w /0@&91035ɺ/0@"%7&35*4&ͳͲͷ
 ఆٛࡁΈ$PNNVOJUZͱॏෳ͠ͳ͍͔͗Γ 2914 : 2518
  2. ...4バイトAS のひといますか? w όΠτόΠτɺόΠτόΠτ w ߹ܭόΠτ͔͠࢖͑ͳ͍ w Կʹ͔ͭ͑Δ͔͸3'$Λ w લ൒όΠτ

    ޙ൒όΠτ࢖͍͔ͨͬͨΒΞ΢τ w ΋ͪΖΜແཧ΍Γ࢖͑ΔΑʁ w ޙ൒όΠτˠόΠτʹϚοϐϯά͢Δͱ͔Ͷʁ
 όουϊ΢ϋ΢ष w #(1-BSHF$PNNVOJUZʹظ଴
 IUUQMBSHFCHQDPNNVOJUJFTOFU
  3. トランジット、ピア、顧客 の区別 トランジット 顧客 ピア XXX:200 + XXX:400 + XXX:100

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

    ҰൃͰܾΊͳ͍͍ͯ͘Αʂ
 ϕετͳઃܭʹࢸΔʹ͸͕࣌ؒඞཁɹ   ͦΕ͸ސ٬ʹͱͬͯ΋ศརͳͷͰ͸ʁ w ࣗ෼͕ศརʹ࢖͍ͬͯΔ΋ͷΛެ։͍ͯ͘͠ w ͜͜͸৻ॏʹ BGP Community
  5. 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Λఆٛ͢ΔલʹɺͲͷΑ͏ʹϚονͰ͖Δ͔ ஌͓ͬͯ͘ඞཁ͕͋ΔɻϚονͮ͠Β͍άϧʔϓ෼͚͸ආ͚ͳ͍ ͱ͍͚ͳ͍ɻ͍͍ͩͨਖ਼نදݱ͕࢖͑ΔɻൣғࢦఆͰ͖Δ΋ͷ΋ɻ 正規表現がないと かなりつらい
  6. BGP Communnity の意味を考える ͲΜͳ$PNNVOJUZʹͲΜͳҙຯΛ࣋ͨͤΔ͔ w ·ͣ୯ͳΔϥϕϧͱͯ͠ w ܦ࿏ͷछผ w ଞࣾͷܦ࿏τϥϯδοτPSϐΞPSސ٬

    w ࣗ෼ͷܦ࿏αʔϏεผ w ϩέʔγϣϯ w ࠃ಺PSւ֎ɺؔ੢PSؔ౦ w ࣄۀن໛ʹΑཻͬͯ౓͕͕ͪ͏
  7. 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 全部に効く / 一部に 効くなど、粒度パターン が必要かも
  8. w μϝͳྫ❌ w ؔ੢ͷτϥϯδοτ ˠ999 w ؔ౦ͷτϥϯδοτ ˠ999 w ؔ੢ͷϐΞ

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

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

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

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

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

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

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

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

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

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

    XXX: 250〜 299 ... XXX:1000〜1099 XXX:1100〜1199 XXX:1200〜1299 XXX:1300〜1399 ... ˡڱ͍ͷͰ࢖Θͳ͍ɻྫ͑͹ͱ͸
 ҧ͏छผʹݟ͑Δ
 ˡࣅͨػೳ͸έλ਺ͱ಄dέλΛἧ͑Δ
 ༧໿  ༧໿  ˡύλʔϯ͕ଟ͍ػೳ΄Ͳ޿͘࢖͏ ༧໿ 隣をあけておくと、見直しで リナンバーしやすい まとまり感
  19. 使っているBGP Community、
 顧客に公開するべき? w ސ٬ͷ໰୊Λղܾͦ͠͏ͳΒެ։͢Δ΂͖ w ࣗ෼͕ͨͪศརࣗ෼ͨͪͷ໰୊Λղܾͨ͠ w Ͱ͋Ε͹ɺ͍ͭͰʹސ٬ͷ໰୊ΛղܾͰ͖Δ͔΋ w

    Πϯλʔωοτ͔ͩΒɻύέοτ͸ࣅͨͱ͜ΖΛ௨Δ w ੍ޚݖΛҰ෦౉͢͜ͱͰɺސ٬ͷεϐʔυ্͕͕ͬͨΓɺ ࣗ෼ͨͪͷ01&9͕Լ͕Γͦ͏ͳΒެ։͢Δ΂͖ w ʮϝʔϧͰΦʔμʔ͍ͩ͘͞ʯ͸஗͍ w #(1$PNNVOJUZ"1*
  20. 繰り返しだけど、
 BGP Community = API w ωοτϫʔΫػೳΛ֎͔Βൃಈ͢Δ w ࣗ෼͕ͨͪ͏Ε͍͠΋ͷ͸ɺސ٬ʹͱͬͯ΋͏Ε͍͠ w

    ଞࣾͷ"1*ΛϚογϡΞοϓͯࣗࣾ͠αʔϏεʹ
 ͭͳ͛Δ͜ͱ΋Ͱ͖Δ w #(1$PNNVOJUZ͸5SBOTJUJWFͳͷͰɺ
 ຊ࣭తʹ࿈ܞ͠΍͍͢ w Ͳ͔͔͜Β఻ΘΕ͹ൃಈ͢Δ