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

LINEのネットワークオーケストレーション / network-orchestration

LINEのネットワークオーケストレーション / network-orchestration

LINEのネットワークオーケストレーション
土屋俊貴(LINE株式会社 ITSC Verda室 ネットワーク開発チーム・ソフトウェアエンジニア)
LINEのデータセンタネットワークでは、これまでAnsibleを利用した構成管理と設定自動化を進めてきていました。これらの構成管理や設定自動化はネットワーク構築や運用を目的としていたため、他のサービスとの連携はあまり考えられていませんでした。しかしネットワーク機能などの開発が進むにつれて、プライベートクラウドやその他のサービスと連携して、ネットワーク自体の設定も柔軟に変更できることが求められるようになってきました。このセッションでは、こうした課題を解決するために現在取り組んでいるネットワークオーケストレーションについて紹介します。

LINE Developers

August 19, 2020
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. • Verda  %  (2019-10 ~ )  

     "% • $! •      (2017-04 ~ 2019-10)    "#&  &% 
  2. LINE L3 Server ToR Leaf Spine External l Full-L3 BGP

    CLOS  l Whitebox Switch(Mellanox) + Linux base NOS(Cumulus Linux)
  3.    Switch ZTP Server Ansible Server l :

    Zero Touch Provisioning (ZTP) l : Ansible
  4. Switch ZTP Server Ansible Server l  : Zero Touch

    Provisioning (ZTP) l  : Ansible ZTP &  (OS  ,  )   
  5. Switch ZTP Server Ansible Server l : Zero Touch Provisioning

    (ZTP) l   : Ansible Ansible (Interface, Routing, …  )   
  6. Switch ZTP Server Ansible Server l : Zero Touch Provisioning

    (ZTP) l : Ansible     
  7.    l  $# l  $# "

    l ToR $ ! l  $ ToR Server A Server B 10.1.1.1/32 10.1.1.1/32
  8.    l +  %*& ,. A ::

    .C A3 0 :A 2: . A :: X P O - SL P O T AI 0I I I / : 1A1 !"  ( #$' { “Switch-A”:[“serverX”,…] } A , ) !"  “serverX” → “Switch-A”
  9.   1. Private Cloud7  H,+@ A6 l *E;

    %'F1C/9<5: l )B H,+@ ?:  ( $0>/3) l 7  H,2 l -I $ 0>/3: 3(G: VMBGP -I.D) 8( l QoS4:: "#&!= H,QoS0>4:
  10.   2. 8,(*4Ansible&#%-% l 3,(2000,02 (2020/08%1) l 7"+',( (%

    l )/7"-% … l $!:. l )/569  (1. ; )
  11.   3. !'&/OS "4# l )1Mellanox + Cumulus Linux1.9

    l -6$753+ 4/ 2( l  " 4#  … l -6$*0 "%,*8  
  12.    1. Private CloudC R0/JMB → API1O /.@IN3

    54? 2. &PE>A) LAnsible;5:-H:-( → @IN35Agent (Sync Agent)+ KF 3. $/./OS!# %D' → NAPALM<Q2*   "#9P OS-7G=( Sync Agent ;8 @IOS 6 N,
  13.  :    Region A Region B ZTP

    Server API Server Switch etcd Sync Agent Switch etcd Sync Agent
  14.    : ZTP Region A Region B ZTP

    Server API Server Switch etcd Sync Agent Switch etcd Sync Agent OS Install Deploy Agent
  15.    : ZTP ZTP Server Switch Sync Agent

    DHCP Server  ZTP ScriptURL  ZTP Script  ZTP Script      Ansible - Sync Agent  -  
  16.    : ZTP ZTP Server Switch Sync Agent

    DHCP Server ) ZTP ScriptURL " * ZTP Script " + ZTP Script ,    - Ansible - Sync Agent -  Ansible  (% 1. ZTP Script$( # 2.   Ansible '& ((!) • Agentupdate • …
  17.    :  Region A Region B ZTP

    Server API Server Switch etcd Switch etcd Sync Agent  watch switch data Service Sync Agent  watch switch status
  18.    :  Region A Region B ZTP

    Server API Server Switch etcd Switch etcd Sync Agent Service  Request Update switch data Configure switch Sync Agent API Fetch switch data Covert switch data NAPALM base data model
  19.    :  Region A Region B ZTP

    Server API Server Switch etcd Switch etcd Sync Agent Service  Request  Update switch data  Configure switch Sync Agent API   Fetch switch data  Covert switch data Cumulus Ansible Data model Ansible Inventory 
  20.    API Server Switch1 etcd Sync Agent ServerA

    Switch2 Sync Agent Server Controller API Request 10.0.0.1/32 { “hostname”: “ServerA”, “address”: “10.0.0.1/32”, “ip_version”: 4, } if1
  21.    API Server Switch1 etcd Sync Agent ServerA

    Switch2 Sync Agent Server Controller 10.0.0.1/32 Key: “/servers/config/ServerA” { “hostname”: “ServerA”, “prefixes”: [“10.0.0.1/32”], } if1
  22.    API Server Switch1 etcd Sync Agent ServerA

    Switch2 Sync Agent Server Controller 10.0.0.1/32 LLDP Watch LLDP database if1
  23.    API Server Switch1 etcd Sync Agent ServerA

    Switch2 Sync Agent Server Controller 10.0.0.1/32 LLDP Fetch Server information Key: “/servers/config/ServerA” Key: “/servers/config/ServerA” { “hostname”: “ServerA”, “prefixes”: [“10.0.0.1/32”], } if1
  24.    API Server Switch1 etcd Sync Agent ServerA

    Switch2 Sync Agent Server Controller 10.0.0.1/32 if1 Update prefix filter (Ansible) ip prefix-list filter-if1-in permit 10.0.0.1/32
  25.    1. Private CloudC R0/JMB → API1O /.@IN3

    54? 2. &PE>A) LAnsible;5:-H:-( → @IN35Agent (Sync Agent)+ KF 3. $/./OS!# %D' → NAPALM<Q2*   "#9P OS-7G=( Sync Agent ;8 @IOS 6 N,
  26.  l LINE "!')@3;*  6, l  47 l

    ZTPAnsible3;* l 3;*.+9 l 0247 l "!'!&%( l ? "!'# A/  "!'385<>1  $-=: