キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
840
閲覧回数
0
いいね!
0
コメント
Akira Iwamoto
Cisco Employee
Cisco Employee

はじめに

Crosswork Network Controller (CNC) は、ネットワーク機器が構成するトポロジー情報を受信し、それらを元にユーザに必要なアクションを取ることができるアプリケーションです。例えばトポロジーの可視化として、ルータやリンクを画面に表示することもその一つです。

 

cnc-flow.png

 

 

ネットワーク情報

ネットワークは通常何らかのIGPを使用して構成されます。ベクター型ルーティングプロトコルである、OSPF や ISIS を使用して構成する場合、ルータ間のリンク情報を認識することが出来ますので、CNCではその情報を使用します。従って、IGPには OSPF か ISIS が使用されている必要があります。

  

すべてのノードがネットワークの経路情報を持っている

ネットワークデザインによりますが、例えば OSPF の場合は一つのArea内の前ルータは、そのArea のネットワークトポロジー情報を保持しています。

 

以下の例では、ルータ R1 上で保持している router LSA について表示しています。この OSPF Area 0 には、6台のルータが存在することがわかり、またそれぞれのルータがどの様なリンクを持っているかについても情報として保持しています。

 

RP/0/RP0/CPU0:R1#show ospf database router
            OSPF Router with ID (1.1.1.1) (Process ID 100)

                Router Link States (Area 0)

  LS age: 782
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 1.1.1.1
  Advertising Router: 1.1.1.1
  LS Seq Number: 80003bec
  Checksum: 0x35eb
  Length: 108
  AS Boundary Router
   Number of Links: 7

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 1.1.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: another Router (point-to-point)
     (Link ID) Neighboring Router ID: 2.2.2.2
     (Link Data) Router Interface address: 10.1.2.1
      Number of TOS metrics: 0

// snip //

RP/0/RP0/CPU0:eR1#show ospf database router | i "Link State ID"
Link State ID: 1.1.1.1
Link State ID: 2.2.2.2
Link State ID: 3.3.3.3
Link State ID: 4.4.4.4
Link State ID: 5.5.5.5
Link State ID: 6.6.6.6
RP/0/RP0/CPU0:eR1# RP/0/RP0/CPU0:R1#show ospf database router | i "Link connected to|Link ID|Link Data" Thu Apr 28 06:26:12.693 UTC Link connected to: a Stub Network (Link ID) Network/subnet number: 1.1.1.1 (Link Data) Network Mask: 255.255.255.255 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 2.2.2.2 (Link Data) Router Interface address: 10.1.2.1 Link connected to: a Stub Network (Link ID) Network/subnet number: 10.1.2.0 (Link Data) Network Mask: 255.255.255.0 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 3.3.3.3
RP/0/RP0/CPU0:R1#

BGP-LS プロトコル

ルータ上のトポロジー情報をCNCへ取り込む必要がありますが、まずは SR-PCE へBGPを使用して送信します。全ノードが同じ情報を持っていますので、一つのルータから全てを取得できます。

BGP自体は Port 179 を使用したTCP通信であり、そのプロトコル上には MP-BGP として種々のデータを載せることができます。それらは Address Family identifier (AFI) と Subsequent Address Family Identifiers (SAFI) で区別されています。

 

リンクステート情報を送信するときの AFI/SAFI は、link-state / link-state です。SR-PCEはこのプロトコルを使用して、トポロジー情報を受信します。

SR-PCE

PCE (Path Computation Element) は、PCC (Path Computation Client) へ保持しているトポロジー情報から適切な経路情報を LSP (Label Switching Path) として通知し使用させるものです。

PCE(各ルータ)からは BGP-LS を使用してトポロジー情報を取得します。

また、Cisco IOS-XR では、PCEは TCP Port 8080 でREST サーバを起動しています。このインターフェースを使用して、PCE が持つトポロジー情報へアクセスすることができます。

 

RP/0/RP0/CPU0:pce1#show run pce
pce
 address ipv4 41.41.41.41
 api
  user cisco
  !
 !
RP/0/RP0/CPU0:pce1#

CNCは SR-PCE のトポロジー情報をSubscribe

CNCはSR-PCEからトポロジー情報を取得します。この際には、上で紹介した REST が使用されます。SR-PCEが持つ情報は、ネットワークの状況によって刻々と変化しますので、CNCはその度に更新を受信します。

 

PCEはそのPayloadとして text か gpb (Google Protocol Buffer) を返すことができ、CNCは gpb を使用しています。手動でのテストでは、以下の様に text で取得すると便利です。

 

$ curl -s  http://<PCE IP Address>:8080/topo/subscribe/txt -u cisco:cisco
{
"node_id": "xtc",
"subscription_id": "kv_gpb",
"encoding_path": "Cisco-IOS-XR-infra-xtc-oper:pce/topology-nodes/topology-node",

    {
      "name": "node-protocol-identifier",
      "fields": [
      {
        "name": "node-name",
        "string_value": "R1"
      },

      {
        "name": "ipv4te-router-id",
        "string_value": "1.1.1.1"
      },

 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします