らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Cisco ACI で Behind Subnet で AppEpg より先にあるネットワークに通信する

Cisco ACI で通常、AppEpg より「先に」ルーティングさせることは出来ません。 ですが、AppEpg Subnet に Behind Subnet を作成することで「AppEpg より先にあるネットワーク」へ通信させることが出来ます。

Behind Subnet を使わない構成

Behind Subnet を使わない構成例として以下を考えます。

f:id:sig9:20200818171634p:plain

外部 SW のルーティングテーブル

この構成の場合、外部 SW では Bd1 の Subnet に設定された 10.0.1.0/24 を OSPF で学習しています。

L3SW# show ip route ospf
<--snip-->
      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
O E2     10.0.1.0/24 [110/20] via 172.21.11.254, 00:13:06, Vlan2111
O        10.0.99.201/32 [110/2] via 172.21.11.254, 00:13:06, Vlan2111

Leaf のルーティングテーブル

Leaf のルーティングテーブルは以下の通りです。 Pervasive に見えています。

leaf1# show ip route vrf Tenant1:Vrf1
<--snip-->
10.0.1.0/24, ubest/mbest: 1/0, attached, direct, pervasive
    *via 100.64.168.64%overlay-1, [1/0], 00:18:17, static
10.0.1.254/32, ubest/mbest: 1/0, attached, pervasive
    *via 10.0.1.254, vlan50, [0/0], 00:18:17, local, local

Behind Subnet を使った構成

Behind Subnet を使った構成例として以下を考えます。

f:id:sig9:20200818171637p:plain

前提として Fabric や L3Out, BD, AppEpg などの基本的な部分は設定されているものとします。 つまり、「Behind Subnet を使わなければ AppEpg と ExtEpg 間で通信出来ている状態」を前提とします。

f:id:sig9:20200818171639p:plain

Behind Subnet を利用するには AppEpg で Subnet を作成します。

f:id:sig9:20200818171643p:plain

設定例は以下の通りです。

f:id:sig9:20200818171649p:plain

Default Gateway IP という設定項目がありますが、これには AppEpg より先にあるホスト を設定します。 この設定は必ず /32 である必要があります。 つまり、「一般的なルーティングのように、自由自在にネットワークを書ける わけでは無い」という点に注意します。

今回は Behind Subnet に定義した /32 のホストアドレスを L3Out から広報するので Advertised Externally にチェックを入れておきます (このチェックを外すと /32 のホストアドレスが L3Out から広報されなくなります。 但し、Fabric 内部では学習されます)。

また、Behind Subnet を利用するときは該当アドレス (ここでは 10.0.2.200/32) を ACI 自体が SVI として保持することは絶対に有り得ない為、No Default SVI Gateway にチェックを入れます。

Type Behind Subnet は幾つか選択肢があるのですが、今回は EP Reachability を選択します。

最後に Next Hop Ip Address には Behind Subnet に対する NextHop を指定します。 下記のスクリーンショットでは「10.0.2.200/32 へ到達する為の NextHop は 10.0.1.100」という意味になります。

これで Behind Subnet の設定は完了です。

外部 SW のルーティングテーブル

外部 SW のルーティングテーブルを確認すると 10.0.2.200/32 を学習していることが分かります。

L3SW# show ip route ospf
<--snip-->
      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O E2     10.0.1.0/24 [110/20] via 172.21.11.254, 00:32:46, Vlan2111
O E2     10.0.2.200/32 [110/20] via 172.21.11.254, 00:00:00, Vlan2111
O        10.0.99.201/32 [110/2] via 172.21.11.254, 00:32:46, Vlan2111

Leaf のルーティングテーブル

Leaf のルーティングテーブルは以下の通りです。 10.0.2.200/32 を学習していることが分かります。

leaf1# show ip route vrf Tenant1:Vrf1
<--snip-->
10.0.1.0/24, ubest/mbest: 1/0, attached, direct, pervasive
    *via 100.64.168.64%overlay-1, [1/0], 00:33:28, static
10.0.1.254/32, ubest/mbest: 1/0, attached, pervasive
    *via 10.0.1.254, vlan50, [0/0], 00:33:28, local, local
10.0.2.200/32, ubest/mbest: 1/0, attached, direct, pervasive
    *via 100.64.168.64%overlay-1, [1/0], 00:00:35, static