【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)の画面で、ActionsでCreateを選択します。
ここではNDFC上で仮想ネットワークをVRF Nameを設定します。以下の画面にあるMyVRF_50000はデフォルト名となり、今回はそのまま利用します。VRF IDとVLAN IDも同様にデフォルト値を利用します。
これで仮想L3ネットワーク MyVRF_50000が作成されました。以下のような画面となります。イメージとしては仮想ルータが作成された感じですね。ここでVRFアイコンをダブルクリックしましょう。
ここでも仮想L2ネットワーク作成時と同様に、仮想L3ネットワーク MyVRF_50000をリーフスイッチに適用しましょう。
適用対象のスイッチを選択する必要があるのですが、左下のMulti-Selectを押することで複数リーフを一括で選択、適用をすることが可能です。Multi-Selectを選択して“i"マークにカーソルを合わせることで、複数リーフの選択の仕方がでてきます。
以下の画面はNXOS2とNXOS3が選択された状態です。そしてActionsのQuick 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の運用系機能についてはほとんど見ていないので、もし時間が取れればどのあたりが既存の運用ツールより便利になるか見てみたいと思います。