論理的に分割されているため、互いのネットワークの一部セグメントにアクセスしたいようなケースでは、経路制御やアクセスを、どのように実現させるのか悩ましいケースも出てきます。
- CX1上でVRFを利用し、テナント1用とテナント2用のルーティングテーブルを論理的に分割します。
CX3と接続される側をテナント1、CX2と接続される側をテナント2とします。
- CX2とCX3では、ループバックアドレスと、CX1をネクストホップとしたルーティング設定(スタティックルート)を事前に設定済みの状態です。
[CX1設定前のルーティングテーブルと通信確認]
テナント1とテナント2のVRFのルーティングテーブルは、以下のようになっています。
show ip routeコマンドのオプションで、vrf <vrf名>を指定します。
------------------------------------------------------------------------------------------
CX1# show ip route vrf tenant1
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.2/32, vrf tenant1
via 1/1/2[vrf tenant2], [1/0], static
192.168.1.0/24, vrf tenant1
via 1/1/1, [0/0], connected
192.168.1.1/32, vrf tenant1
via 1/1/1, [0/0], local
CX1#
CX1#show ip route vrf tenant2
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.3/32, vrf tenant2
via 1/1/1[vrf tenant1], [1/0], static
192.168.2.0/24, vrf tenant2
via 1/1/2, [0/0], connected
192.168.2.1/32, vrf tenant2
via 1/1/2, [0/0], local
CX1#
------------------------------------------------------------------------------------------
ルートリークの設定前は、CX2とCX3それぞれから対向スイッチのループバックアドレス宛に通信しようとしても失敗しています。
------------------------------------------------------------------------------------------
CX2# ping 10.1.1.3 source 10.1.1.2
PING 10.1.1.3 (10.1.1.3) from 10.1.1.2 : 100(128) bytes of data.
--- 10.1.1.3 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4132ms
CX2#
CX3# ping 10.1.1.2 source 10.1.1.3
PING 10.1.1.2 (10.1.1.2) from 10.1.1.3 : 100(128) bytes of data.
From 10.1.1.3 icmp_seq=4 Destination Host Unreachable
--- 10.1.1.2 ping statistics ---
5 packets transmitted, 0 received, +1 errors, 100% packet loss, time 4082ms
CX3#
------------------------------------------------------------------------------------------
[CX1への設定追加]
それぞれのVRFで以下の設定を追加します。
CX1(config)# ip route 10.1.1.2/32 1/1/2 vrf tenant1
CX1(config)# ip route 10.1.1.3/32 1/1/1 vrf tenant2
[CX1設定後のルーティングテーブルと通信確認]
設定追加後、テナント1とテナント2のVRFのルーティングテーブルは以下のようになっています。
showコマンド出力箇所の赤字部分が、設定追加前との差分箇所になります。
------------------------------------------------------------------------------------------
CX1# show ip route vrf tenant1
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.2/32, vrf tenant1
via 1/1/2[vrf tenant2], [1/0], static
10.1.1.3/32, vrf tenant1
via 192.168.1.3, [1/0], static
192.168.1.0/24, vrf tenant1
via 1/1/1, [0/0], connected
192.168.1.1/32, vrf tenant1
via 1/1/1, [0/0], local
CX1#
CX1# show ip route vrf tenant2
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.2/32, vrf tenant2
via 192.168.2.2, [1/0], static
10.1.1.3/32, vrf tenant2
via 1/1/1[vrf tenant1], [1/0], static
192.168.2.0/24, vrf tenant2
via 1/1/2, [0/0], connected
192.168.2.1/32, vrf tenant2
via 1/1/2, [0/0], local
CX1#
------------------------------------------------------------------------------------------
CX2とCX3それぞれから対向スイッチのループバックアドレス宛に通信できるようになります。
------------------------------------------------------------------------------------------
CX2# ping 10.1.1.3 source 10.1.1.2
PING 10.1.1.3 (10.1.1.3) from 10.1.1.2 : 100(128) bytes of data.
108 bytes from 10.1.1.3: icmp_seq=1 ttl=62 time=8.00 ms
108 bytes from 10.1.1.3: icmp_seq=2 ttl=62 time=8.19 ms
108 bytes from 10.1.1.3: icmp_seq=3 ttl=62 time=8.60 ms
108 bytes from 10.1.1.3: icmp_seq=4 ttl=62 time=13.7 ms
108 bytes from 10.1.1.3: icmp_seq=5 ttl=62 time=2.02 ms
--- 10.1.1.3 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4146ms
rtt min/avg/max/mdev = 2.024/8.115/13.754/3.719 ms
CX2#
CX3# ping 10.1.1.2 source 10.1.1.3
PING 10.1.1.2 (10.1.1.2) from 10.1.1.3 : 100(128) bytes of data.
108 bytes from 10.1.1.2: icmp_seq=1 ttl=62 time=9.13 ms
108 bytes from 10.1.1.2: icmp_seq=2 ttl=62 time=7.32 ms
108 bytes from 10.1.1.2: icmp_seq=3 ttl=62 time=7.97 ms
108 bytes from 10.1.1.2: icmp_seq=4 ttl=62 time=7.61 ms
108 bytes from 10.1.1.2: icmp_seq=5 ttl=62 time=7.39 ms
--- 10.1.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 7.322/7.886/9.131/0.669 ms
CX3#
------------------------------------------------------------------------------------------
【route-taregetとBGPを利用した動的設定】
[動作確認時の構成]
構成は、先のスタティックの設定と同様ですが、CX1とCX2、CX3でOSPFを利用して、ループバックのアドレスをOSPFでアドバタイズさせるように変更しています。
[CX1設定前のルーティングテーブルと通信確認]
テナント1とテナント2のVRFのルーティングテーブルは、以下のようになっています。
テナント1側では、CX3のループバックアドレス、テナント2側では、CX2のループバックアドレスの経路が、OSPFを経路学習元としてルーティングテーブルに登録されています。
------------------------------------------------------------------------------------------
CX1# show ip route vrf tenant1
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.1/32, vrf tenant1
via loopback1, [0/0], local
10.1.1.3/32, vrf tenant1
via 192.168.1.3, [110/100], ospf
192.168.1.0/24, vrf tenant1
via 1/1/1, [0/0], connected
192.168.1.1/32, vrf tenant1
via 1/1/1, [0/0], local
CX1# show ip route vrf tenant2
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.1/32, vrf tenant2
via loopback2, [0/0], local
10.1.1.2/32, vrf tenant2
via 192.168.2.2, [110/100], ospf
192.168.2.0/24, vrf tenant2
via 1/1/2, [0/0], connected
192.168.2.1/32, vrf tenant2
via 1/1/2, [0/0], local
CX1#
------------------------------------------------------------------------------------------
スタティックルート設定の時と同様に、ルートリークの設定前は、CX2とCX3それぞれから対向スイッチのループバックアドレス宛に通信しようとしても失敗しています。
[CX1への設定追加]
テナント1とテナント2のVRFで、RD(Route Distinguisher)とRT(Route Target)を指定します。
route-targetでは、importとexportを指定しますが、exportは自身のRD値を、importでは対向のVRFのRD値(テナント1は、64531:2を、テナント2は、64531:1 を)指定します。
BGPの設定を新規に行い、OSPF経路を再配送します。
OSPFの設定にBGP経路を再配送する設定を追加します。
------------------------------------------------------------------------------------------
CX1(config)#
!
vrf tenant1
rd 64531:1
address-family ipv4 unicast
route-target export 64531:1
route-target import 64531:2
exit-address-family
vrf tenant2
rd 64531:2
address-family ipv4 unicast
route-target export 64531:2
route-target import 64531:1
exit-address-family
!
router bgp 64531
!
vrf tenant1
address-family ipv4 unicast
redistribute ospf
exit-address-family
!
vrf tenant2
address-family ipv4 unicast
redistribute ospf
exit-address-family
!
router ospf 1 vrf tenant1
redistribute bgp
router ospf 2 vrf tenant2
redistribute bgp
!
CX1(config)#
------------------------------------------------------------------------------------------
[CX1設定後のルーティングテーブルと通信確認]
設定追加後、テナント1とテナント2のVRFのルーティングテーブルは以下のようになっています。
showコマンド出力箇所の赤字部分が、設定追加前との差分箇所になります。
------------------------------------------------------------------------------------------
CX1# show ip route vrf tenant1
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.1/32, vrf tenant1
via loopback1, [0/0], local
10.1.1.2/32, vrf tenant1
via 192.168.2.2[vrf tenant2], [200/0], bgp
10.1.1.3/32, vrf tenant1
via 192.168.1.3, [110/100], ospf
192.168.1.0/24, vrf tenant1
via 1/1/1, [0/0], connected
192.168.1.1/32, vrf tenant1
via 1/1/1, [0/0], local
192.168.2.0/24, vrf tenant1
via 1/1/2[vrf tenant2], [200/0], bgp
CX1#
CX1# show ip route vrf tenant2
Displaying ipv4 routes selected for forwarding
'[x/y]' denotes [distance/metric]
10.1.1.1/32, vrf tenant2
via loopback2, [0/0], local
10.1.1.2/32, vrf tenant2
via 192.168.2.2, [110/100], ospf
10.1.1.3/32, vrf tenant2
via 192.168.1.3[vrf tenant1], [200/0], bgp
192.168.1.0/24, vrf tenant2
via 1/1/1[vrf tenant1], [200/0], bgp
192.168.2.0/24, vrf tenant2
via 1/1/2, [0/0], connected
192.168.2.1/32, vrf tenant2
via 1/1/2, [0/0], local
CX1#
------------------------------------------------------------------------------------------
CX2とCX3それぞれから対向スイッチのループバックアドレス宛に通信できるようになります。
------------------------------------------------------------------------------------------
CX2# ping 10.1.1.3 source 10.1.1.2
PING 10.1.1.3 (10.1.1.3) from 10.1.1.2 : 100(128) bytes of data.
108 bytes from 10.1.1.3: icmp_seq=1 ttl=63 time=9.67 ms
108 bytes from 10.1.1.3: icmp_seq=2 ttl=63 time=7.14 ms
108 bytes from 10.1.1.3: icmp_seq=3 ttl=63 time=7.76 ms
108 bytes from 10.1.1.3: icmp_seq=4 ttl=63 time=7.16 ms
108 bytes from 10.1.1.3: icmp_seq=5 ttl=63 time=6.43 ms
--- 10.1.1.3 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 6.434/7.636/9.670/1.102 ms
CX2#
CX3# ping 10.1.1.2 source 10.1.1.3
PING 10.1.1.2 (10.1.1.2) from 10.1.1.3 : 100(128) bytes of data.
108 bytes from 10.1.1.2: icmp_seq=1 ttl=63 time=5.38 ms
108 bytes from 10.1.1.2: icmp_seq=2 ttl=63 time=1.83 ms
108 bytes from 10.1.1.2: icmp_seq=3 ttl=63 time=6.42 ms
108 bytes from 10.1.1.2: icmp_seq=4 ttl=63 time=6.32 ms
108 bytes from 10.1.1.2: icmp_seq=5 ttl=63 time=6.06 ms
--- 10.1.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.833/5.207/6.428/1.726 ms
CX3#
------------------------------------------------------------------------------------------
【終わりに】
CXシリーズスイッチは、認証機能やAruba Centralを利用したクラウド設定・管理に注目されていますが、他にも実用十分な機能をサポートしており、お客様での採用が増えてきております。
今回の設定例については、紹介を主にしておりますので、詳細な制限などについては、各シリーズの設定ガイドを確認ください。
#Blog #Wired