Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

大規模サービスを支えるネットワークインフラの全貌

33 709 vues

Publié le

9月27日に開催されたLINE Developer meetup #45 in Kyoto での登壇資料です

Publié dans : Technologie
  • Soyez le premier à commenter

大規模サービスを支えるネットワークインフラの全貌

  1. 1. Masayuki Kobayashi LINE Corporation masayuki.kobayashi at linecorp.com NETWORK FOR : ⼤規模サービスを⽀えるネットワークインフラの全貌 LINE Developer Meetup #45 in Kyoto - 2018/09/27
  2. 2. Introduction • ⼩林 正幸 / Masayuki Kobayashi • LINE株式会社 – IT Service Center – Network dept - Service Network Team • Network Engineer – LINEのプロダクションネットワーク全般の設計・構築 – Peering coordinator@AS38631
  3. 3. Agenda • Data Center Network Architecture – L2-Less, BGP Only Design • Data Center Interconnect – Segment Routing Backbone • Next Challenge
  4. 4. LINEのネットワーク Data CenterBackbone / DCIPeering EdgeInternetUser ⾃前で設計・構築・運⽤
  5. 5. ネットワークを設計する上で必要なこと 1. 膨⼤なトラフィックを処理できるか – Tbps級のサーバ間通信トラフィック – 地理的に分散した複数のDCを⼀つに⾒せる 2. 簡単かつ迅速にスケールアウトできるか – シンプルで、繰り返し可能なアーキテクチャ – Cloud Native時代の展開スピード 3. 安定した運⽤ができるか – Failure domain ≒ L2 domainの最⼩化 – 機器が壊れることを前提としたN+1の設計
  6. 6. What’s Next? 2018~ JANOG39 LINEのインフラを運⽤して⾒えてきた課題(Japanese) [Blog] https://engineering.linecorp.com/ja/blog/detail/135 [PDF] https://www.janog.gr.jp/meeting/janog39/application/files/9714/8609/7135/JANOG39_LINE.pdf ネットワークの変遷 性能・拡張性・運⽤の限界 新しいアーキテクチャが必要
  7. 7. 何が問題だったのか 1. 性能:⾼いオーバーサブスクリプションレート – 現在のトラフィック量に対してネットワークがボトルネックに – 同⼀PoD内にHadoopサーバーを配置する要件 2. 拡張性:スケールアップが必要な2N構成 – ⽚⽅の機器障害で、キャパシティが半減 – 簡単にスケールアウトできるネットワークが必要 3. 運⽤:L2ネットワークの運⽤はもう嫌だった – L2はその仕様上、⼤きくなるほど運⽤負荷が⾼くなる Ø BUM Traffic, VLAN管理 Ø Large L2 domain ≒ Large failure domain
  8. 8. L2-LESS BGP ONLY DATA CENTER
  9. 9. S3 S2 S1 Server A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ 10G 100G 100G E1 Data Center Network Overview cluster BB PE InternetGlobal Network FW NAT 100G Data Center 基本構成
  10. 10. S3 S2 S1 Server A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ 10G 100G 100G E1 Data Center Network Overview cluster BB PE InternetGlobal Network FW NAT 100G Data Center Tbps級のサーバ間通信 East-West Traffic 数百Gbps DCI Traffic & Internet Traffic トラフィックパターン User
  11. 11. Tbpsを捌くLINEのネットワークアーキテクチャ CLOS-style, Similar to RFC7938 S3 S2 S1 =ToR A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ S = Stratum E1 cluster E = External Switches Servers
  12. 12. PoD S1: Top of Rack Switches S3: Top of Spine Switches
  13. 13. S3 ServerS2 S1S2S1Server 5-stage CLOS network (Unfolded) AB rack AB rack AB rack ・・・・・ AB rack ・・・・・ ・・・・・ ・・・・・ 最も離れたラックのサーバ間通信も最大5ノード経由すれば到達できる
  14. 14. サーバ間通信にボトルネックが発⽣しない設計 S3 S2 S1 SV A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ E1 cluster Top of Rack(ToR): サーバ48台を接続、1ラックにつき2台で冗⻑ Uplinkは100G x 4port, 2台で最⼤800G ToRを収容, 上下帯域はノンブロッキング: クラスタ内のノード数は4で固定(S1のUplink数) クラスタ数はS1の数(ラック数)で決定 最も離れたラック間の通信を処理: クラスタの数は4で固定 クラスタ内のノード数は、S2のクラスタ数で決定 外部との通信を処理: インターネット、他のDC宛の通信など PoD内で完結する通信はここに到達しない 便宜上”クラスタ”と呼んでいるが、 クラスタ(同じ階層)の機器同⼠は接続しない。 10G 100G 100G 100G 100G
  15. 15. すべての階層でスケールアウト可能なN+1構成 S3 S2 S1 Server A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ E1 cluster cluster cluster A B rack A B rack ノード追加 クラスタ追加 ラック追加 リンク追加 単⼀故障時の縮退率が⼩さくなる
  16. 16. ↑ スイッチ専⽤のラック列(すべて100G) 32port x 100Gのホワイトボックススイッチを採⽤ 電源投⼊後はほぼ⾃動でネットワークに復帰(ZTP + Ansible)
  17. 17. S3 S2 S1 SV A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ E1 cluster Goodbye, L2 Extension! サーバからインターネットまでBGP⼀つ ü すべての機器をEBGP接続 サービストラフィックを扱う機器すべて 10G 100G 100G 100G 100G EBGP Underlay ü サーバに直接BGPを喋らせる ToRの切替時にトラフィックロスがゼロ ü DC内からL2ドメインを排除 LAG無し、L2オーバーレイ無し、L3のみ ü 4-byte Private ASNを利⽤ Loopback IPから⼀意に算出、管理不要 ü P2Pリンクにアドレスを付けない RFC5549 BGP Unnumbered
  18. 18. なぜBGPを採⽤したのか 1. ⼤規模環境で利⽤しやすい – 標準化され使い慣れているプロトコル – IGP(IS-IS, OSPF)はフラッディングメカニズムがスケールの障壁に 2. 経路制御がしやすい – ECMPやAnycastに加えて、迂回や経路フィルタが簡単 – IBGPはその仕様上の制約が多いためEBGPを選択 3. BGPは任意の情報を広報できる – 将来的なAFI(SAFI)/NLRI拡張技術への対応可能性 • 例: Advertising Segment Routing Policies in BGP
  19. 19. BGPによるトラフィック制御 S3 S2 S1 =ToR Server A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ E1cluster BB PE Internet Global Network FW NAT 10G 100G 100G 100G ECMP Load-Balancing NAT & FW: VRF-Redirect 特定の送信元/宛先IPの通信を 専⽤機器宛に捻じ曲げる DC内トラフィックはすべてロードバランシング BGPパス属性が等コスト(Multipath-Relax)
  20. 20. BGP Onlyにしたことによるメリット S3 S2 S1 =ToR Server A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ ・・・・・ E1cluster BB PE Internet Global Network FW NAT 10G 100G 100G 100G 4. BUM Trafficの範囲を極⼩化: • Failure domainの最⼩化 • VLAN管理からの解放 1. メンテナンス性の向上: • ベンダ依存のプロトコルの排除 • 特定の機器のIsolateが簡単(AS-PATH Prepend) • BFDが不要(Interface down = BGP down) 3. モビリティの向上: VMをどこにでも移動できる 2. 設定の⾃動化: • 個別のパラメータが少ない • BGPの設定を共通化
  21. 21. 運⽤ ⾃動化しやすいBGP設定フォーマットを採⽤ router bgp 4215270229 bgp bestpath as-path multipath-relax bgp router-id 10.233.1.85 bgp max-med on-startup 60 neighbor 10.1.1.1 remote-as 4212364501 neighbor 10.2.2.2 remote-as 4210184442 ... neighbor 10.20.20.20 remote-as 4210966516 router bgp 4215270229 bgp bestpath as-path multipath-relax bgp router-id 10.233.1.85 bgp max-med on-startup 60 neighbor swp1 remote-as external neighbor swp2 remote-as external ... neighbor swp32 remote-as external ⼀般的なBGP設定 機器ごとにユニークなパラメータ Unique Unique ü I/FでBGPを有効化 → NeighborのAS番号とIPの指定が不要 ü BGP OPEN MessageのAS番号チェックを緩和(RFC4271違反) ü 個別のパラメータを最⼩限にすることで、設定をテンプレート化 ü サーバとネットワーク機器で共通のオペレーションが可能 LINEで採⽤しているBGP設定(FRR) すべての機器で共通 ASNはrouter-idから⾃動算出
  22. 22. 運⽤ S3から⾒たBGP Neighbor • BGPでhostnameを渡す • オペレーターに優しい • LLDPと合わせてトポロジ作成 S1で⾒た経路情報(左:BGPデーモン, 右:Linux Kernel) • /32はサーバのIP • IPv4経路のNext-hopはIPv6 LLA(左) • ダミーIP(169.254.0.1)を経由してカーネルにインストール(右) • 対向のLLAからMACアドレスを割り出しネイバーエントリ作成 実際の経路情報
  23. 23. 経路フィルタの⾃動制御 • Web UI上でサーバにIPをリクエストした時点で、割り当てと広報が開始 – 設定ミス等で意図しないトラフィックの誘引(ハイジャック)が起きる可能性 • ToRに経路フィルタを設定、許可されたIPのみ⾃動でフィルタ開放 – Controllerが隣接関係情報から対象のToRを特定し、定期的にAnsible実⾏ BareMetal Server hostname: line ToR Switch A BareMetal Controller Network Controller Topology Controller Ansible RabbitMQ Server User 1. Request IP (Web UI) 2. Call filter API 2’. Assign IP: 203.0.113.100 3. Query peer info {hostname:line} 4. Response switch info {hostname:switch A} 5. Update filter data {hostname:switch A, filter-in:203.0.113.100} 6. Add Ansible task {hostname:switch A} 8. Update filter 7. Slack notify
  24. 24. 国内拠点事例1 S3 S2 S1 Server A B rack cluster A B rack cluster cluster cluster cluster cluster cluster A B rack cluster A B rack ・・・・・ ・・・・・ ・・・・・ E1 cluster 6,720台 280台 56台 20台 4台 100G x 2 links x 5 switches x 4 clusters 4,000 G (6%) 67,200 G (100%) 10G x 48 servers x 140 racks Server Uplink 56,000 G (83.3%) 100G x 4 links x 140 racks S1 Uplink 56,000 G (83.3%) 100G x 10 links x 4 switches x 14 clusters S2 Uplink 140 Racks 14 clusters 4 clusters DR-Site, 同⼀PoD内にHadoopサーバを配置する要件
  25. 25. 国内拠点事例2 プロダクションネットワーク, ホワイトボックススイッチ948台
  26. 26. DATA CENTER INTERCONNECT
  27. 27. SEGMENT ROUTING MPLS 複数のDCを⼀つに⾒せるネットワーク Data Center Site 2 Data Center Site 1Data Center Interconnect EBGP EBGP Underlay BGP Underlay BGPMP-BGP w/ SR 各DCの内部構成を隠蔽する低遅延な共有転送基盤 L3 Reachability DC間を異経路冗⻑の回線で接続
  28. 28. セグメントルーティングの導⼊ 障害のサービス影響を最⼩限にするトランスポート Data Center Interconnect Payload Payload PayloadPayloadPayload VPN Label SR Label VPN Label SR Label VPN Label サーバ間通信 ユーザ向け通信 Traffic Engineering SR Label 障害発⽣ 迂回経路⽤ Adj-SID Label 宛先ノード⽤ Prefix-SID Label 通信識別⽤ Label 迂回経路 TI-LFA SID:16103 SID:16104 SID:16101 SID:16102 Data Center Site 2 Data Center Site 1 ユーザ向けと内部向けで通信を分離各拠点でAS番号を再利⽤可能 重要な通信をクラシファイ
  29. 29. なぜセグメントルーティングを採⽤したのか 1. 使い慣れたMPLSをデータプレーンに利⽤できる – 拠点間のVPN通信にMPLSのラベルスタックが必要 • シンプルなVPNサービストランスポートとしての役割 – Segment-ID(SID)をIGPで広報するだけで動く 2. シグナリングプロトコルを排除できる – 今後の拡張を考えると、Hop-by-Hopのステート設定は排除したい – Binding SIDの有効活⽤に期待 3. TI-LFA FRR & SR-Policyが利⽤できる – ファイバカットなどの障害の影響を最⼩限にする – Prefixごとの回線使⽤⽐率調整など(未導⼊)
  30. 30. まとめ 1. 膨⼤なトラフィックを処理できるか ü サーバ間通信に対してノンブロッキングになるように設計 ü ⾼密度100Gスイッチの採⽤ ü 低遅延・広帯域の回線でDC同⼠を接続 2. 簡単かつ迅速にスケールアウトできるか ü CLOSネットワーク化によりスケールアウトが容易に ü ホワイトボックススイッチの⾃動化で展開スピードが向上 3. 安定した運⽤ができるか ü L2を作らない ü 機器が壊れても影響の少ないN+1冗⻑ ü シンプルな制御のバックボーンネットワーク
  31. 31. 最後に • もっと詳しい話は懇親会で! • 技術的な意⾒交換会なども⼤歓迎です • We are hiring – Tokyo: https://linecorp.com/ja/career/position/229
  32. 32. THANK YOU!
  33. 33. APPENDIX: DESIGN THE FUTURE NETWORK OUR NEXT CHALLENGE
  34. 34. これからのLINEのネットワーク サービス開始 • Single PoD • Vender Lock-in • Hardware LB 急拡⼤期 • Multi PoD • Vender Lock-in • Hardware LB 安定運⽤期 • Fabric network • L2-less underlay • Disaggregation • Software LB Next Level • Programable Data Plane • NFV • Service Chaining ⼀般的なネットワーク機器だけでは実現できない領域へ コモディティ化した機器で構築していたネットワーク 標準化され枯れたプロトコル&頻出のユースケース Phase 1 Phase 2 Phase 3 Phase 4 今ここ LINEが求めるデータプレーンとコントロールプレーン実装 ⼀般的なネットワーク機器と適材適所で組み合わせて運⽤
  35. 35. SRv6 Overlay VPN & Service Chaining Segment Routing IPv6 Data Center Server = SRv6 Strategic Node BGP CLOS Underlay = Packet Transit Node BGP CLOS Edge = SRv6 Endpoint Node Tenant #1 Production Tenant #2 Development Tenant #3 Load Balancer LB VRF Target Network 検証中 END.DX4 VRF VRF ü 転送処理に徹底したDCアンダーレイ ü ルーティングヘッダによるサービスオーバーレイ ü Unified Data Plane IPv6 Underlay Stateless, Pure IP ECMP FW 海外拠点で導⼊検討中のユースケース

×