IP : IP ルーティング

容易なバーチャルネットワーク 設定例

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントでは、キャンパス ネットワークで簡単に設定できる使いやすい仮想化メカニズムを提供するために設計された Easy Virtual Network(EVN)機能について説明します。 この機能では、Virtual Routing and Forwarding-Lite(VRF-Lite)、dot1q カプセル化などの最新のテクノロジーが活用されています。また、新しいプロトコルは導入するされません。

著者:Cisco TAC エンジニア、Fabrice Ducomble

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントの情報は、次のハードウェアとソフトウェアのバージョンに基づくものです。

  • ソフトウェア バージョン 15.0(1)SY1 が稼働する Cisco Catalyst 6000(Cat6k)シリーズ スイッチ

  • ソフトウェア バージョン 3.2s が稼働する Cisco 1000 シリーズ アグリゲーション サービス ルータ(ASR1000)

  • Cisco IOS® バージョン 15.3(2)T 以降が稼働する Cisco 3925 および 3945 シリーズ サービス統合型ルータ

  • ソフトウェア バージョン 15.1(1)SG が稼働する Cisco Catalyst 4500(Cat4500)および 4900(Cat4900)シリーズ スイッチ

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

背景説明

次の図は EVN 機能の概要を示しています。

  • EVN 機能は、VRF-Lite を使用して複数(最大 32)のルーティング コンテキストを作成します。

  • レイヤ 3 デバイス間の Virtual Routing and Forwarding(VRF)内の接続は、仮想ネットワーク(VNET)トランクによって確保されます。

  • VNET トランクは、標準 dot1q トランクです。

  • VNET トランク経由で転送される必要のある各 VRF は、VNET タグを使用して設定される必要があります。

  • 各 VNET タグは、dot1q タグと同じです。

  • dot1q サブインターフェイスは自動的に作成されます(非表示)。

  • メイン インターフェイスの設定は、すべてのサブインターフェイス(非表示)に継承されます

  • プレフィクスの到達可能性をアドバタイズするために、ルーティング プロトコルの個別のインスタンスが、VNET トランク上の各 VRF で使用される必要があります。

  • VRF の間のダイナミック ルートのリーク(スタティック ルートの反対)は、Border Gateway Protocol(BGP)の使用なしに許可されます。

  • この機能は、IPv4 および IPv6 でサポートされています。

設定

EVN 機能を設定するには、この項に記載されている情報を使用します。

: このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool登録ユーザ専用)を使用してください。

ネットワーク図

このネットワーク設定は、EVN の設定を説明し、コマンドを示すために使用されます。

この設定に関する重要な注意点は次のとおりです。

  • VNET トランク経由でネットワークの中心から実行される 2 つの VRF が定義されています(CUST-A および CUST-B)。

  • 到達可能性をアドバタイズするために VRF で Open Shortest Path First(OSPF)が使用されます。

  • VRF COM は、VRF CUST-A と CUST-B の両方から到達可能である必要があるコモン サーバ(100.1.1.100)をホストします。

  • 使用されるイメージは、i86bi_linux-adventerprisek9-ms.153-1.S です。

ヒント: 使用される Cisco IOS on Linux(IOL)設定は、ここから入手できます。

EVN の設定

EVN 機能を設定するには、次の手順を実行します。

  1. VRF 定義を設定します。
    vrf definition [name]
    vnet tag [2-4094]
    !
    address-family ipv4|ipv6
    exit-address-family
    !
    この設定についての重要な項目を次に示します:

    • 2 ~ 1,000 の範囲のタグを使用することを推奨します。 予約済み VLAN 1,001 ~ 1,005 は使用しないでください。 拡張 VLAN 1,006 ~ 4,094 は必要に応じて使用できます。

    • VNET タグは現在の VLAN タグで使用できません。

    • どの VRF についても、VNET タグがすべてのデバイスで同じである必要があります。

    • 関連 AF で VRF をアクティブ化するために address-famility ipv4|ipv6 を設定する必要があります。

    • EVN は BGP を使用しないため、ルート方向(RD)を定義する必要はありません。

    この設定により、VRF をすべての 4x コア ルータで定義する必要があります。 たとえば、CORE-1 で次のように定義します。
    vrf definition CUST-A
     vnet tag 100
     !
     address-family ipv4
     exit-address-family
    vrf definition CUST-B
     vnet tag 200
     !
     address-family ipv4
     exit-address-family
    3 つの VRF について、すべてのルータで同じ VNET タグを使用します。 CORE-4 では、VRF COM には VNET タグは不要です。 目標は、CUST-A および CUST-B からコモン サーバへのアクセスを提供するために、VRF を CORE-4 でローカルに保持し、リークと再配布を設定することです。

    さまざまな VNET カウンタを確認するために、次のコマンドを入力します。
    CORE-1#show vnet counters
    Maximum number of VNETs supported: 32
    Current number of VNETs configured: 2
    Current number of VNET trunk interfaces: 2
    Current number of VNET subinterfaces: 4
    Current number of VNET forwarding interfaces: 6
    CORE-1#
  2. VNET トランクを設定します。
    interface GigabitEthernetx/x
     vnet trunk
     ip address x.x.x.x y.y.y.y
     ...
    この設定についての重要な項目を次に示します:

    • vnet trunk コマンドにより、VNET タグによって定義されている VRF と同じ数の dot1q サブインターフェイスが作成されます。

    • vnet trunk コマンドは、同じ物理インターフェイス上に手動で設定される一部のサブインターフェイスと併用できません。

    • この設定は、ルーテッド インターフェイス(スイッチ ポートは不可)、物理、および PortChannel で許可されます。

    • 物理インターフェイスで適用される IP アドレス(およびその他のコマンド)は、サブインターフェイスに継承されます。

    • すべての VRF のサブインターフェイスは、同じ IP アドレス を使用します。

    この設定により、2 つの VNET VRF が存在するため、VNET トランクとして設定されたインターフェイス上に 2 つのサブインターフェイスが自動的に作成されます。 自動的に作成される非表示の設定を確認するために、show derived-config コマンドを入力できます。

    現在実行されている設定を次に示します。
    CORE-1#show run | s Ethernet0/0 
    interface Ethernet0/0
     vnet trunk
     ip address 192.168.1.1 255.255.255.252
     !
    CORE-1#
    派生する設定を次に示します。
    CORE-1#show derived-config | s Ethernet0/0
    interface Ethernet0/0
     vnet trunk
     ip address 192.168.1.1 255.255.255.252
    Interface Ethernet0/0.100
     description Subinterface for VNET CUST-A
     encapsulation dot1Q 100
     vrf forwarding CUST-A
     ip address 192.168.1.1 255.255.255.252
    interface Ethernet0/0.200
     description Subinterface for VNET CUST-B
     encapsulation dot1Q 200
     vrf forwarding CUST-B
     ip address 192.168.1.1 255.255.255.252
    CORE-1#
    ここに示されているように、すべてのサブインターフェイスが、メイン インターフェイスの IP アドレスを継承します。

  3. エッジ(サブ)インターフェイスを VRF に割り当てます。 インターフェイスまたはサブインターフェイスを VNET VRF に割り当てるために、VRF を割り当てるための通常の手順を使用します。
    interface GigabitEthernet x/x.y
     vrf forwarding [name]
     ip address x.x.x.x y.y.y.y
     ...
    この設定により、設定が CORE-1 および CORE-4 に適用されます。 次に CORE-4 の例を示します。
    interface Ethernet2/0
     vrf forwarding CUST-A
     ip address 10.1.2.1 255.255.255.0
    !
    interface Ethernet3/0
     vrf forwarding CUST-B
     ip address 10.2.2.1 255.255.255.0
    !
    interface Ethernet4/0
     vrf forwarding COM
     ip address 100.1.1.1 255.255.255.0
  4. 各 VRF のルーティング プロトコルを設定します(これは EVN または VNET 固有ではありません)。
    router ospf x vrf [name]
     network x.x.x.x y.y.y.y area x
     ...

    : この設定には、VNET トランクのアドレスとエッジ インターフェイスのアドレスが含まれている必要があります。


    この設定により、2 つの OSPF プロセス(VRF ごとに 1 つ)が定義されます。
    CORE-1#show run | s router os
    router ospf 1 vrf CUST-A
     network 10.1.1.0 0.0.0.255 area 0
     network 192.168.1.0 0.0.0.255 area 0
    router ospf 2 vrf CUST-B
     network 10.2.1.0 0.0.0.255 area 0
     network 192.168.1.0 0.0.0.255 area 0
    CORE-1#
    各コマンドで VRF の指定なしに特定の VRF に関連する情報を表示するために、ルーティング コンテキスト モードに切り替えることができます。
    CORE-1#routing-context vrf CUST-A
    CORE-1%CUST-A#
    CORE-1%CUST-A#show ip protocols
    *** IP Routing is NSF aware ***
    Routing Protocol is "ospf 1"
      Outgoing update filter list for all interfaces is not set
      Incoming update filter list for all interfaces is not set
      Router ID 192.168.1.13
      It is an area border router
      Number of areas in this router is 1. 1 normal 0 stub 0 nssa
      Maximum path: 4
      Routing for Networks:
        10.1.1.0 0.0.0.255 area 0
        192.168.1.0 0.0.0.255 area 0
      Routing Information Sources:
        Gateway         Distance      Last Update
        192.168.1.9          110      1d00h
        192.168.1.14         110      1d00h
      Distance: (default is 110)
    CORE-1%CUST-A#
    CORE-1%CUST-A#show ip os neighbor
    Neighbor ID     Pri   State         Dead Time   Address         Interface
    192.168.1.14      1   FULL/DR       00:00:30    192.168.1.14    Ethernet1/0.100
    192.168.1.5       1   FULL/BDR      00:00:37    192.168.1.2     Ethernet0/0.100
    10.1.1.2          1   FULL/BDR      00:00:33    10.1.1.2        Ethernet2/0
    CORE-1%CUST-A#

    : show ip protocols コマンドの出力には、選択した VRF に関連する情報だけが表示されます。


    両方の VRF のルーティング情報ベース(RIB)を表示する場合は、2 つの VNET トランク経由でリモート サブネットを検証できます。
    CORE-1%CUST-A#show ip route 10.1.2.0   
    Routing Table: CUST-A
    Routing entry for 10.1.2.0/24
      Known via "ospf 1", distance 110, metric 30, type intra area
      Last update from 192.168.1.2 on Ethernet0/0.100, 1d00h ago
      Routing Descriptor Blocks:
      * 192.168.1.14, from 192.168.1.9, 1d00h ago, via Ethernet1/0.100
          Route metric is 30, traffic share count is 1
        192.168.1.2, from 192.168.1.9, 1d00h ago, via Ethernet0/0.100
          Route metric is 30, traffic share count is 1
    CORE-1%CUST-A#
    CORE-1%CUST-A#routing-context vrf CUST-B
    CORE-1%CUST-B#
    CORE-1%CUST-B#show ip route 10.2.2.0
    Routing Table: CUST-B
    Routing entry for 10.2.2.0/24
      Known via "ospf 2", distance 110, metric 30, type intra area
      Last update from 192.168.1.2 on Ethernet0/0.200, 1d00h ago
      Routing Descriptor Blocks:
      * 192.168.1.14, from 192.168.1.6, 1d00h ago, via Ethernet1/0.200
          Route metric is 30, traffic share count is 1
        192.168.1.2, from 192.168.1.6, 1d00h ago, via Ethernet0/0.200
          Route metric is 30, traffic share count is 1
    CORE-1%CUST-B#
    CORE-1%CUST-B#exit
    CORE-1#
    CORE-1#
  5. VRF 間のルート リークを決定します。 ルート リークは、ルート レプリケーションによって実行されます。 たとえば、VRF の一部のルートを別の VRF で使用可能にすることができます。
    vrf definition VRF-X
     address-family ipv4|ipv6
      route-replicate from vrf VRF-Y unicast|multicast
    [route-origin] [route-map [name]]
    この設定についての重要な項目を次に示します:

    • VRF-X の RIB は、VRF-Y からのコマンド パラメータに基づいて、選択されたルートにアクセスできます。

    • VRF-X の複製されたルートは、[+] フラグによってマークが付けられます。

    • multicast オプションにより、リバース パス フォワーディング(RPF)に別の VRF からのルートを使用することが許可されます。

    • route-origin は、以下のいずれかの値を持つことができます。

      • all
      • bgp
      • connected
      • eigrp
      • isis
      • mobile
      • odr
      • ospf
      • rip
      • static

    名前が示すものとは異なり、ルートは複製されず、重複しません。 これは、追加のメモリを消費しない BGP の一般的な RT を介した通常のリークに当てはまります。

    この設定により、CUST-A および CUST-B から COM への(およびその逆の)アクセスを提供するために、CORE-4 でルート リークが使用されます。
    vrf definition CUST-A
    address-family ipv4
    route-replicate from vrf COM unicast connected
    !
    vrf definition CUST-B
    address-family ipv4
    route-replicate from vrf COM unicast connected
    !
    vrf definition COM
    address-family ipv4
    route-replicate from vrf CUST-A unicast ospf 1 route-map USERS
    route-replicate from vrf CUST-B unicast ospf 2 route-map USERS
    !
    route-map USERS permit 10
    match ip address prefix-list USER-SUBNETS
    !
    ip prefix-list USER-SUBNETS seq 5 permit 10.0.0.0/8 le 32

    CORE-4#show ip route vrf CUST-A
    Routing Table: COM
    Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area,* - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override
    ...
       10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
    O        10.1.1.0/24 [110/30] via 192.168.1.10, 3d19h, Ethernet1/0.100
           [110/30] via 192.168.1.5, 3d19h, Ethernet0/0.100
       100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
    C   +    100.1.1.0/24 is directly connected (COM), Ethernet4/0

    CORE-4#show ip route vrf CUST-B
    ...   10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
    O        10.2.1.0/24 [110/30] via 192.168.1.10, 1d00h, Ethernet1/0.200
           [110/30] via 192.168.1.5, 1d00h, Ethernet0/0.200
       100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
    C   +    100.1.1.0/24 is directly connected (COM), Ethernet4/0

    CORE-4#show ip route vrf COM  
    ...
       10.0.0.0/24 is subnetted, 2 subnets
    O   +    10.1.1.0 [110/30] via 192.168.1.10 (CUST-A), 3d19h, Ethernet1/0.100
               [110/30] via 192.168.1.5 (CUST-A), 3d19h, Ethernet0/0.100
    O   +    10.2.1.0 [110/30] via 192.168.1.10 (CUST-B), 1d00h, Ethernet1/0.200
               [110/30] via 192.168.1.5 (CUST-B), 1d00h, Ethernet0/0.200

       100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
    C        100.1.1.0/24 is directly connected, Ethernet4/0
    この時点では、複製されたルートが内部ゲートウェイ プロトコル(IGP)で伝達されていないため、CE-A-2 および CE-B-2 だけが COM サービス(100.1.1.100)にアクセスでき、CE-A-1 および CE-B-1 はアクセスできません。

    グローバル テーブルから、またはグローバル テーブルへの、ルート リークを使用することもできます。
    vrf definition VRF-X
     address-family ipv4
      route-replicate from vrf >global unicast|multicast [route-origin]
    [route-map [name]]
      exit-address-family
     !
     exit
    !
    global-address-family ipv4 unicast
     route-replicate from vrf [vrf-name] unicast|multicast [route-origin]
    [route-map [name]]
  6. ルート リークの伝達を定義します。 リークされたルートは、ターゲット VRF RIB に複製されません。 つまり、それらは、ターゲット VRF RIB の一部ではありません。 ルータ プロセス間の通常の再配布は機能しないため、ルートが属する RIB の VRF 接続を明示的に定義する必要があります。
    router ospf x vrf VRF-X
     redistribute vrf VRF-Y [route-origin] [route-map [name]]
    VRF-Y からリークしたルートは、VRF-X で稼働する OSPF プロセスに再配布されます。 次に CORE-4 の例を示します。
    router ospf 1 vrf CUST-A
     redistribute vrf COM connected subnets route-map CON-2-OSPF
    !
    route-map CON-2-OSPF permit 10
     match ip address prefix-list COM
    !
    ip prefix-list COM seq 5 permit 100.1.1.0/24
    この場合、VRF COM には接続済みのルートが 1 つしかないため、ルート マップは不要です。 この時点で、CE-A-1 および CE-B-1 から COM サービス(100.1.1.100)への到達可能性が存在します。
    CE-A-1#ping 100.1.1.100
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 100.1.1.100, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
    CE-A-1#

    CE-B-1#ping 100.1.1.100
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 100.1.1.100, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
    CE-B-1#

VNET トランクの調整

この項では、VNET トランクを調整するために役立つ情報を提供します。

トランク リスト

デフォルトでは、VNET タグを使用して設定されたすべての VRF が、すべて VNET トランク上で許可されます。 トランク リストにより、VNET トランクで許可される VRF のリストを指定できます。

vrf list [list-name]
 member [vrf-name]
!
interface GigabitEthernetx/x
 vnet trunk list [list-name]

: 許可される VRF ごとに 1 つの行が必要です。

たとえば、CORE-1 と CORE-2 の間の VNET トランク上の VRF CUST-B 用に CORE-1 が調整されます。

vrf list TEST
member CUST-A
!
interface ethernet0/0
vnet trunk list TEST

ここに示されているように、トランク経由の VRF CUST-B OSPF ピアリングがダウンします。

%OSPF-5-ADJCHG: Process 2, Nbr 192.168.1.2 on Ethernet0/0.200 from FULL to DOWN,
Neighbor Down: Interface down or detached

VRF CUST-B のサブインターフェイスが削除されます。

CORE-1#show derived-config | b Ethernet0/0 
interface Ethernet0/0
 vnet trunk list TEST
 ip address 192.168.1.1 255.255.255.252
!
interface Ethernet0/0.100
 description Subinterface for VNET CUST-A
 encapsulation dot1Q 100
 vrf forwarding CUST-A
 ip address 192.168.1.1 255.255.255.252
!

VRF ごとのトランク属性

デフォルトでは、dot1q サブインターフェイスが物理インターフェイスのパラメータを継承するため、すべての VRF のサブインターフェイスが同じ属性(コスト、認証など)を持ちます。 VNET タグごとのトランク パラメータを調整できます。

interface GigaEthernetx/x
 vnet trunk
 vnet name VRF-X
  ip ospf cost 100
 vnet name VRF-Y
  ip ospf cost 15

以下のパラメータを調整できます。

CORE-1(config-if-vnet)#?
Interface VNET instance override configuration commands:
  bandwidth     Set bandwidth informational parameter
  default       Set a command to its defaults
  delay         Specify interface throughput delay
  exit-if-vnet  Exit from VNET submode
  ip            Interface VNET submode Internet Protocol config commands
  no            Negate a command or set its defaults
  vnet          Configure protocol-independent VNET interface options
CORE-1(config-if-vnet)#
CORE-1(config-if-vnet)#ip ?    
  authentication      authentication subcommands
  bandwidth-percent   Set EIGRP bandwidth limit
  dampening-change    Percent interface metric must change to cause update
  dampening-interval  Time in seconds to check interface metrics
  hello-interval      Configures EIGRP-IPv4 hello interval
  hold-time           Configures EIGRP-IPv4 hold time
  igmp                IGMP interface commands
  mfib                Interface Specific MFIB Control
  multicast           IP multicast interface commands
  next-hop-self       Configures EIGRP-IPv4 next-hop-self
  ospf                OSPF interface commands
  pim                 PIM interface commands
  split-horizon       Perform split horizon
  summary-address     Perform address summarization
  verify              Enable per packet validation
CORE-1(config-if-vnet)#ip

この例では、CORE-1 の VRF ごとに OSPF コストが変更されるため、CUST-A には CORE-2 パスが使用され、CUST-B には CORE-3 パスが使用されます(デフォルトのコストは 10)。

interface Ethernet0/0
vnet name CUST-A
ip ospf cost 8
!
vnet name CUST-B
ip ospf cost 12
!

CORE-1#show ip route vrf CUST-A 10.1.2.0

Routing Table: CUST-A
Routing entry for 10.1.2.0/24
Known via "ospf 1", distance 110, metric 28, type intra area
Last update from 192.168.1.2 on Ethernet0/0.100, 00:05:42 ago
Routing Descriptor Blocks:
* 192.168.1.2, from 192.168.1.9, 00:05:42 ago, via Ethernet0/0.100
Route metric is 28, traffic share count is 1
CORE-1#
CORE-1#show ip route vrf CUST-B 10.2.2.0

Routing Table: CUST-B
Routing entry for 10.2.2.0/24
Known via "ospf 2", distance 110, metric 30, type intra area
Last update from 192.168.1.14 on Ethernet1/0.200, 00:07:03 ago
Routing Descriptor Blocks:
* 192.168.1.14, from 192.168.1.6, 1d18h ago, via Ethernet1/0.200
Route metric is 30, traffic share count is 1
CORE-1#

リンクごとの VNET タグ

デフォルトでは、VRF 定義で定義される VNET タグがすべてのトランクに使用されます。 ただし、トランクごとに異なる VNET タグを使用できます。

この例では、「非 EVN 対応デバイスに接続され、手動トランクによって VRF-Lite を使用し、グローバル VNET タグが別の VLAN によって使用される」シナリオを示します。

この設定により、CUST-A に関して CORE-1 と CORE-2 の間のトランクで使用される VNET タグが 100 から 101 に変更されます。

interface Ethernet0/0
vnet name CUST-A
  vnet tag 101

この変更が CORE-1 で発生すると、新しいサブインターフェイスが作成されます。

CORE-1#show derived-config | b Ethernet0/0       
interface Ethernet0/0
vnet trunk
ip address 192.168.1.1 255.255.255.252
!
interface Ethernet0/0.101
description Subinterface for VNET CUST-A
encapsulation dot1Q 101
vrf forwarding CUST-A
ip address 192.168.1.1 255.255.255.252
!
interface Ethernet0/0.200
description Subinterface for VNET CUST-B
encapsulation dot1Q 200
vrf forwarding CUST-B
ip address 192.168.1.1 255.255.255.252

この変更が一方のエンドでのみ発生すると、関連付けられた VRF で接続が失われ、OSPF がダウンします。

%OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.5 on Ethernet0/0.101 from FULL to DOWN,
Neighbor Down: Dead timer expired

CORE-2 で同じ VNET タグが使用されると、接続が復元されて、CORE-2 トランクで dot1q タグ 101 が使用され、CORE-1 ~ CORE-3 トランクでは引き続き 100 が使用されます。

%OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.5 on Ethernet0/0.101 from LOADING to
FULL, Loading Done

確認

現在、この設定に使用できる確認手順はありません。

トラブルシューティング

現在のところ、この設定に関する特定のトラブルシューティング情報はありません。

関連情報



Document ID: 117974