【Nexus】NDFC(Nexus Dashboard Fabric Controller)使ってみます – Part 5  仮想L3ネットワーク作成

この記事では仮想L3ネットワークを作って疎通確認を行います。まず仮想L3ネットワークの作成、そのあとに仮想L3ネットワークに紐づく仮想L2ネットワーク(セグメント)を2つ作り、最後に仮想ネットワーク上でルーティングさせての端末同士の疎通確認を行います。

アンダーレイネットワークと仮想L2ネットワークの作成は前回までの記事で行っていますので、ここまでの過程についてはそちらの記事をご確認ください。

自動化の際に生成されるVXLAN EVPNのコンフィグレーションも貼り付けますので、自動生成される模範的コンフィグも見ていきたいと思います。

今回のベースとなるファブリックの物理構成、アンダーレイ構成は以下の通りです。

管理ネットワーク
アンダーレイネットワーク
バージョン情報
Nexus Dashboard: 2.3.1c
NDFC: 12.1.1e
N9000v: 9.3.7

仮想L3ネットワークの作成と疎通確認

ここで作成する仮想L3ネットワークと物理ポートの関係は以下の通りです。この構成に沿って設定をしていきます。

L3 VNIの設定

仮想L2ネットワークのためのオーバレイネットワーク設定を行っていきます。

L2VNI同様にオーバレイネットワークやその他の設定も含めて色々な設定方法があるのですが、今回もトポロジ画面から設定していきたいと思います。

以下のトポロジ画面から、右のVRFsをダブルクリックします。

VRFs(0)の画面で、ActionsCreateを選択します。

ここではNDFC上で仮想ネットワークをVRF Nameを設定します。以下の画面にあるMyVRF_50000はデフォルト名となり、今回はそのまま利用します。VRF IDVLAN IDも同様にデフォルト値を利用します。

これで仮想L3ネットワーク MyVRF_50000が作成されました。以下のような画面となります。イメージとしては仮想ルータが作成された感じですね。ここでVRFアイコンをダブルクリックしましょう。

ここでも仮想L2ネットワーク作成時と同様に、仮想L3ネットワーク MyVRF_50000をリーフスイッチに適用しましょう。

適用対象のスイッチを選択する必要があるのですが、左下のMulti-Selectを押することで複数リーフを一括で選択、適用をすることが可能です。Multi-Selectを選択して“i"マークにカーソルを合わせることで、複数リーフの選択の仕方がでてきます。

以下の画面はNXOS2とNXOS3が選択された状態です。そしてActionsQuick Attachをします。

そしてDeployで適用されます。その際に適用されるL3VNIの設定を参考までに掲載します。

##
## Create MyVRF_50000 l3vni 50000 on NXOS2,NXOS3
##


configure profile MyVRF_50000
  vlan 2000
    vn-segment 50000
  vrf context myvrf_50000
    vni 50000
    rd auto
    address-family ipv4 unicast
      route-target both auto
      route-target both auto evpn
    address-family ipv6 unicast
      route-target both auto
      route-target both auto evpn
  interface Vlan2000
    vrf member myvrf_50000
    ip forward
    ipv6 address use-link-local-only
    no ip redirects
    no ipv6 redirects
    mtu 9216
    no shutdown
  router bgp 65000
    vrf myvrf_50000
      address-family ipv4 unicast
        advertise l2vpn evpn
        redistribute direct route-map fabric-rmap-redist-subnet
        maximum-paths ibgp 2
      address-family ipv6 unicast
        advertise l2vpn evpn
        redistribute direct route-map fabric-rmap-redist-subnet
        maximum-paths ibgp 2
  interface nve1
    member vni 50000 associate-vrf
configure terminal
apply profile MyVRF_50000
configure terminal

L2VNIの設定

あとは仮想L3ネットワークに紐付ける仮想L2ネットワークを2つ作成します。作成方法は前回の記事を参考にいただきたいのですが、基本的にTopology画面からNetworksを選択して追加で2つの仮想L2Networkを作成します。

前回の設定と異なる点として、前回はL2 Onlyネットワークでしたが、今回はルーティングをさせるために先程作成した仮想L3ネットワークと紐づけます。紐づけ方は簡単で、VRF_Nameに先程作成したMyVRF_50000を指定するだけです。その他のNetwork IDとなるVNIはデフォルト、VLAN IDもPropose VLANで払い出しています。

あとは画面の一番下にあるIPv4 GatewayでAnycast Gatewayのアドレスを設定します。これがこの仮想L2ネットワークのゲートウェアアドレスとなります。

同じ用にもうひとつのセグメントを作成します。

そしてリーフスイッチとなるNXOS2とNXOS3へ仮想L2ネットワークをAttachしてDeployするのですが、その前に現在ダウンリンクポートには前回作成した仮想L2VNIで適用されるVLANが設定されているので、アタッチを外しましょう。

この画面のMulti Detachから外せます。外してみると以下のようなコンフィグが生成されて適用されます。

##
## Detaccche no MyNetwork_30000 no vlan 2300 on NXOS2,NXOS3 eth1/7
##

interface ethernet1/7
  no switchport access vlan 2300
no apply profile MyNetwork_30000
configure terminal
no configure profile MyNetwork_30000
configure terminal

これでダウンリンクポートには何も仮想L2ネットワークがアサインされていない状態になったので、先程作成した仮想L2ネットワークをMulti Attachで適用してください。

この際に生成されるコンフィグは以下の通りです。

##
## MultiAttach MyNetwork_40001 vlan 2301 on NXOS2 eth1/7
##

configure profile MyNetwork_40001
  vlan 2301
    vn-segment 30001
  interface Vlan2301
    vrf member myvrf_50000
    ip address 1.1.1.254/24 tag 12345
    fabric forwarding mode anycast-gateway
    no shutdown
  interface nve1
    member vni 30001
      ingress-replication protocol bgp
  evpn
    vni 30001 l2
      rd auto
      route-target import auto
      route-target export auto
configure terminal
apply profile MyNetwork_40001
configure terminal
interface ethernet1/7
  switchport
  switchport mode access
  mtu 9216
  spanning-tree bpduguard enable
  spanning-tree port type edge
  no shutdown
  switchport access vlan 2301
configure terminal



##
## MultiAttach MyNetwork_40002 vlan 2302 on NXOS2 eth1/7
##

configure profile MyNetwork_40002
  vlan 2302
    vn-segment 30002
  interface Vlan2302
    vrf member myvrf_50000
    ip address 2.2.2.254/24 tag 12345
    fabric forwarding mode anycast-gateway
    no shutdown
  interface nve1
    member vni 30002
      ingress-replication protocol bgp
  evpn
    vni 30002 l2
      rd auto
      route-target import auto
      route-target export auto
configure terminal
apply profile MyNetwork_40002
configure terminal
interface ethernet1/7
  switchport
  switchport mode access
  mtu 9216
  spanning-tree bpduguard enable
  spanning-tree port type edge
  no shutdown
  switchport access vlan 2302
configure terminal

最終的に今のトポロジ上には以下のように今回作成したVRFがひとつでVRFs(1)、前回作成したNetwork(すでにDetach済み)と今回作成したNetwork2つでNetworks(3)となっています。

疎通確認とNDFC上で状態確認

最後にそれぞれの端末からの疎通確認結果と、NXOS上のBGPのルート情報を見てみたいと思います。

NDFC上の仮想ネットワークのオーバビューをみるとこのような表示です。

あとは疎通確認とBGPステータスを見てみましょう。

### 疎通確認OK -> from PC1 to GW and PC2

VPCS>
VPCS> ping 1.1.1.254

84 bytes from 1.1.1.254 icmp_seq=1 ttl=255 time=1.134 ms
84 bytes from 1.1.1.254 icmp_seq=2 ttl=255 time=4.199 ms
84 bytes from 1.1.1.254 icmp_seq=3 ttl=255 time=1.974 ms
84 bytes from 1.1.1.254 icmp_seq=4 ttl=255 time=2.354 ms
84 bytes from 1.1.1.254 icmp_seq=5 ttl=255 time=2.234 ms

VPCS>
VPCS> ping 2.2.2.1

84 bytes from 2.2.2.1 icmp_seq=1 ttl=62 time=20.334 ms
84 bytes from 2.2.2.1 icmp_seq=2 ttl=62 time=11.437 ms
84 bytes from 2.2.2.1 icmp_seq=3 ttl=62 time=28.472 ms
84 bytes from 2.2.2.1 icmp_seq=4 ttl=62 time=19.737 ms
84 bytes from 2.2.2.1 icmp_seq=5 ttl=62 time=19.663 ms

VPCS>


### 疎通確認OK -> from PC2 to GW and PC1

VPCS> ip 2.2.2.1/24 2.2.2.254
Checking for duplicate address...
PC1 : 2.2.2.1 255.255.255.0 gateway 2.2.2.254

VPCS> ping 2.2.2.254

84 bytes from 2.2.2.254 icmp_seq=1 ttl=255 time=0.990 ms
84 bytes from 2.2.2.254 icmp_seq=2 ttl=255 time=7.692 ms
84 bytes from 2.2.2.254 icmp_seq=3 ttl=255 time=1.997 ms
84 bytes from 2.2.2.254 icmp_seq=4 ttl=255 time=2.004 ms
84 bytes from 2.2.2.254 icmp_seq=5 ttl=255 time=9.726 ms

VPCS>
VPCS> ping 1.1.1.1

84 bytes from 1.1.1.1 icmp_seq=1 ttl=62 time=20.749 ms
84 bytes from 1.1.1.1 icmp_seq=2 ttl=62 time=13.168 ms
84 bytes from 1.1.1.1 icmp_seq=3 ttl=62 time=13.075 ms
84 bytes from 1.1.1.1 icmp_seq=4 ttl=62 time=11.737 ms
84 bytes from 1.1.1.1 icmp_seq=5 ttl=62 time=11.442 ms

VPCS>
NXOS2# show bgp l2vpn evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 23, Local Router ID is 10.2.0.2
Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best
Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-i
njected
Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup, 2 - b
est2

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.2.0.1:3
*>i[5]:[0]:[0]:[24]:[2.2.2.0]/224
                      10.3.0.1                 0        100          0 ?

Route Distinguisher: 10.2.0.1:35069
*>i[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[2.2.2.1]/272
                      10.3.0.1                          100          0 i

Route Distinguisher: 10.2.0.2:35068    (L2VNI 30001)
*>l[2]:[0]:[0]:[48]:[0050.7966.680d]:[0]:[0.0.0.0]/216
                      10.3.0.2                          100      32768 i
*>l[2]:[0]:[0]:[48]:[0050.7966.680d]:[32]:[1.1.1.1]/272
                      10.3.0.2                          100      32768 i
*>l[3]:[0]:[32]:[10.3.0.2]/88
                      10.3.0.2                          100      32768 i

Route Distinguisher: 10.2.0.2:3    (L3VNI 50000)
*>i[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[2.2.2.1]/272
                      10.3.0.1                          100          0 i
*>l[5]:[0]:[0]:[24]:[1.1.1.0]/224
                      10.3.0.2                 0        100      32768 ?
*>i[5]:[0]:[0]:[24]:[2.2.2.0]/224
                      10.3.0.1                 0        100          0 ?

NXOS2#


NXOS3# show bgp l2vpn evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 23, Local Router ID is 10.2.0.1
Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best
Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-i
njected
Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup, 2 - b
est2

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.2.0.1:35069    (L2VNI 30002)
*>l[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
                      10.3.0.1                          100      32768 i
*>l[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[2.2.2.1]/272
                      10.3.0.1                          100      32768 i
*>l[3]:[0]:[32]:[10.3.0.1]/88
                      10.3.0.1                          100      32768 i

Route Distinguisher: 10.2.0.2:3
*>i[5]:[0]:[0]:[24]:[1.1.1.0]/224
                      10.3.0.2                 0        100          0 ?

Route Distinguisher: 10.2.0.2:35068
*>i[2]:[0]:[0]:[48]:[0050.7966.680d]:[32]:[1.1.1.1]/272
                      10.3.0.2                          100          0 i

Route Distinguisher: 10.2.0.1:3    (L3VNI 50000)
*>i[2]:[0]:[0]:[48]:[0050.7966.680d]:[32]:[1.1.1.1]/272
                      10.3.0.2                          100          0 i
*>i[5]:[0]:[0]:[24]:[1.1.1.0]/224
                      10.3.0.2                 0        100          0 ?
*>l[5]:[0]:[0]:[24]:[2.2.2.0]/224
                      10.3.0.1                 0        100      32768 ?

NXOS3#

一通りやってみて

このシリーズではNDFCについて一通りセットアップから、ファブリックの基本設定、簡単なL2/L3オーバレイの設定まで実施しました。

一度作って塩漬けするような静的なシステムではここまでの機能は必要ないかもしれませんが、動的な環境の場合には重宝するであろうということと、生成される設定がシスコ推奨設定となると、コンフィグレーションガイドで何が正解かを探す手間がはぶけるなと思いました。

NDFCの運用系機能についてはほとんど見ていないので、もし時間が取れればどのあたりが既存の運用ツールより便利になるか見てみたいと思います。

参考URL

Cisco NDFC How To

Cisco NDFC Official HP

Cisco NDFC Data sheet

VXLAN OAM