Contenu connexe Similaire à Network as a Service - Data plane evolution and abstraction by NSM (20) Network as a Service - Data plane evolution and abstraction by NSM1. Mar. 2021 # Cloud Native Days
Miya Kohno, Distinguished Systems Engineer, Cisco Systems (#mkohno,
mkohno@cisco.com)
ー NSMによる抽象化とデータプレーンの進化
NaaS (Network as a Service)
2. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2
• ソフトウェア開発者 ネットワーク システムズ アーキテクト
• Distinguished Architect @ Cisco Systems
自己紹介
• システム理論
https://qiita.com/mkohno/items/ba8e207c22548
4814aff
• 宣言的ネットワーキング
https://www.janog.gr.jp/meeting/janog45/application/
files/4115/7965/2822/024_declarative_kohno.pdf
• ネットワークアーキテクチャ考
https://gblogs.cisco.com/jp/author/miyakohno/
• ♬ Cellist
Team SRv6 !!
3. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3
ENOG67資料より
NSM (Network Service Mesh) + SRv6 の話はこちらで
https://event.cloudnativedays.jp/cndo2021/timetables
4. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4
• ネットワークインフラは、NaaS として SaaS に組み込まれる
Cloud Native 時代のネットワークシステム
Source : Cisco
Source : Packet Fabric
Source : Volterra
5. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
大手 ISP (Tier 1) を中
心としたネットワーク
インターネットの構造変遷
Source : medium.com
Source : arcitura.com
Source : medium.com
CDN参入 ー Akamai 108か国、2,790地域 [*1]
Cloud台頭 ー AWS 77 availability zones,
24 regions, 202 PoPs [*2]
Source : NSM
Edge Computing 時代
ー ?
[*1] https://blogs.akamai.com/jp/2015/07/bestpractice-web-perfromance01.html
[*2] https://aws.amazon.com/about-aws/global-infrastructure/
6. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6
Problem Statement
• ネットワークは、高度に抽象化され、柔軟かつオンデマンド的に、
クラウドサービスに組み込まれる必要がある
• 分散アプリケーション、エッジコンピューティングと連携し、支える
基盤にもなる必要がある
単なるコネクティヴィティ以上の価値を提供できるか
どう抽象化するか
Cloud Native 時代の ネットワーク システム
The Network
Source : Bruce McDougal
7. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7
SRv6 (Segment Routing IPv6)
単なるコネクティヴィティ以上の価値を提供できるか
ネットワークシステムのシンプル化と高度化の両立を実現するデータプレーンの進化
こちらも併せてご覧ください!
「SRv6 Network Programming – ネットワークシステムの分離と再統合」
https://www.slideshare.net/mkohno/srv6-network-programmability-disaggregation-and-reaggregation-of-network-systems
https://www.segment-routing.net/
8. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8
SRv6 概要
SRH
IPv6 Hdr SA = A::, DA = C::
( D::, C::, B:: ) SL=1
Payload
Version Traffic Class
Next = 43 Hop Limit
Payload Length
Source Address = A::
Destination Address = C::
Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
Next Header Len= 6 Type = 4 SL = 1
Last = 2 Flags TAG
IPv6
Hdr Segment List [ 2 ] = B::
SRH
Payload
Flow Label
Flow Label
D
A B C
SRH
IPv6 Hdr SA = A::, DA = B::
( D::, C::, B:: ) SL=2
Payload
Version Traffic Class
Next = 43 Hop Limit
Payload Length
Source Address = A::
Destination Address = B::
Segment List [ 0 ] = D::
Segment List [ 1 ] = C::
Next Header Len= 6 Type = 4 SL = 2
Last = 2 Flags TAG
IPv6
Hdr
Segment List [ 2 ] = B::
SRH
Payload
Flow Label
Flow Label
• Native IP
- Segment ID (SID) List は、IPv6ヘッダ
にエンコードされる
- 非SRv6ノードは通常のIPv6転送
- “Encap Reduced”、Micro SID[*] により
SID List 圧縮可能
[*] draft-filsfils-spring-net-pgm-extension-srv6-usid-09
9. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9
Metadata TLV
Segments Left
Locator 1 Function/Arg 1
Locator 2 Function/Arg 2
Locator 3 Function/Arg 3
TAG
SRv6 Network Programming
Active
Segment
• 任意のFunction定義可能
Declarative SDN
In-Network Computing
SID List
10. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10
SRv6によるシンプル化と機能高度化の両立
Traffic Engineering Network Programming Fast Protection
Massive
Scalability
NFV
VPN
Multi Tenancy Automation
• シンプルなIPv6 - アドレス階層化と集約
• Overlay/Underlay連携
• アプリケーション連携
11. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11
NSM (Network Service Mesh)
どう抽象化するか
https://www.networkservicemesh.io/
• Network Service Mesh (NSM)は、既存のKubernetesネットワークモデル
では対応が難しい複雑なL2/L3ユースケースを、Kubernetesで解決する
新たなアプローチである
• Istioに触発されたNetwork Service Meshは、サービスメッシュの概念を
L2/L3ペイロードにマッピングする
https://github.com/networkservicemesh/networkservicemesh
12. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12
どう抽象化するか - Istio
https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2019/pdf/DEVNET-2022.pdf
Micro Service間通信のための機能を抽象化する
13. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13
どう抽象化するか - Istio
https://istio.io/latest/docs/concepts/what-is-istio/
• Traffic Management
• Security
• Observability
• Inter Cluster
14. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 14
https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview
ネットワークをどう抽象化するか
Kubernetes Basic Network Model
15. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15
Network Service Mesh による抽象化
https://github.com/networkservicemesh/networkservicemesh
App
Pod
App
Pod
App
Pod
App
Pod
K8s
Cluster
K8s
Networking
(via CNI)
App
Pod
App
Pod
App
Pod
App
Pod
K8s
Cluster
K8s
Networking
(via CNI)
App
Pod
App
Pod
App
Pod
App
Pod
K8s
Cluster
K8s
Networking
(via CNI)
App
Pod
App
Pod
App
Pod
App
Pod
K8s
Cluster
K8s
Networking
(via CNI)
DB
Replication
Istio
vWireにより、workloadと
ネットワークサービスを
接続
Network1
Node1
10g
HW
NIC
Node2 Node3
App
Pod
100g
HW
NIC
QOS
,ACL
Workloadの粒度を保ったまま
ドメインを超えた接続
全てはネットワークサービス
- Top of Rack (TOR) Ports
- NICs/SRIOV
16. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16
例:QoE サービス
1. NSC が QoE
サービスを
要求する
2. NSMd は QoE
NSEを作成・選択
し、NSCとクロス
コネクトする
5. NSEはSID Listをエンコードする
Ubuntu Node
Destination
Traffic Engineered Network:
SR/SRv6
NIC
NSE
(TE
svc)
xconnect
Labeled
Packets
NSC
(client)
k8s
k8s
NSMd
SDN
Controller
IP Packets
3. NSEは、Conrollerに QoE を要求する
4. Controller が SR SID Listを返す
NSC: Network Service Client
NSE: Network Service Endpoint
17. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 17
例:QoE サービス YAML
spec:
selector:
matchLabels:
networkservicemesh.io/app: "jalapeno-nsc"
replicas: 1
template:
metadata:
labels:
networkservicemesh.io/app: "jalapeno-nsc"
spec:
containers:
- name: jalapeno-nsc
image: networkservicemesh/qoe-jalapeno-nsc:latest
imagePullPolicy: IfNotPresent
command: ["/bin/jalapeno-nsc"]
securityContext:
capabilities:
add:
- NET_ADMIN
env:
- name: DESTINATION
value: "72.72.4.1"
metadata:
name: jalapeno-nsc
namespace: nsm-system
annotations:
ns.networkservicemesh.io: quality-of-experience
containers:
- name: jalapeno-nse
image: networkservicemesh/qoe-jalapeno-nse:latest
command: ["/bin/jalapeno-nse"]
securityContext:
capabilities:
add:
- NET_ADMIN
privileged: true
imagePullPolicy: IfNotPresent
env:
- name: ADVERTISE_NSE_NAME
value: "quality-of-experience"
- name: ADVERTISE_NSE_LABELS
value: "app=jalapeno"
- name: TRACER_ENABLED
value: "true"
- name: IP_ADDRESS
value: "10.50.1.0/24"
- name: DESTINATION
value: "72.72.4.0"
- name: jalapeno_REQUEST
value: "lowest-latency"
resources:
limits:
networkservicemesh.io/socket: 1
metadata:
name: jalapeno-nse
namespace: nsm-system
qoe_nsc.yaml
qoe_nse.yaml
* Jalapeno : SDN Controller
18. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18
SRv6
Network
PE
PE
Tenant Yellow
Tenant Green
Tenant Yellow
Tenant Green
UPF Pods
Edge Computing
Pods
Edge DC
Edge DC
例:Edge Computing Platform
CNF
Pods
• Container Podを任意のTenant/Sliceに属させる
• Container Pod/Applictationと連携する
• Container Podへのトラフィックを制御する
• …
19. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19
例:Edge Computing Platform - YAML
Edge DC
ToR
apiVersion: apps/v1
kind: Deployment
spec:
replicas: 1
selector:
matchLabels:
app: l3vpn-client
<snip>
spec:
containers:
- image: 192.168.80.240:4000/tools/centos-tool-box:latest
command:
- /bin/bash
metadata:
name: l3vpnnse-client
namespace: default
annotations:
network_service_registry.io:
l3vpn/tenant_id=red
l3vpn/tenant_id=green
l3vpn/tenant_id=yellow
Network
Service
Registry
Client App
20. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20
まとめ
Cloud Native 時代のネットワークシステム
• ネットワークは、高度に抽象化され、柔軟かつオンデマンド的に、
クラウドサービスに組み込まれる必要がある
• 分散アプリケーション、エッジコンピューティングと連携し、支える
基盤にもなる必要がある
• SRv6は、ネットワークシステムのシンプル化と高度化の両立を実
現する
• Network Service Meshは、クラウド・ネイティブ・アプリケーションが
高度なネットワーク機能へアクセスするための、シンプルで使い
やすいツールを提供する
21. © 2021 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 21
References
• “NSM Customer Success! QoE, L3VPN, and NAT64 oh my!”, Zia
Syed and Bruce McDougall, NSMCon Europe 2020
https://networkservicemesh.io/events/nsmconeu2020/
• ” Service Programming using SRv6 and NSM”, Daniel Bernier,
NSMCon 2019
https://networkservicemesh.io/events/nsmcon2019/