T0ゲートウェイのVRFの使い方をまとめます。NSX-TにはVRFの機能が備わっており、ルーティングテーブルを分割することができます。NSX Edgeは1台のT0ゲートウェイしか作成することができないため、「環境ごとに独立したネットワークを構築して欲しい」という要件が発生したときにNSX Edgeを増設せずに(言い換えれば、大きなリソース消費なしに)ルーティングテーブルを増やすことができます。
正確に言えば、NSX Edgeに複数のT0ゲートウェイの作成は可能です。「物理ネットワークに接続された複数のT0ゲートウェイを作成できない」が正確な言い方で、NSX-T内部に閉じた通信ならばT0ゲートウェイの複数作成は可能です。
想定シナリオ
実践的な要件
VRFの使い所のひとつとしてよく見られるのが複数環境の構築です。例えば、「結合試験を2並行で実施したい。全く独立したテスト環境が2つ欲しい。でも、物理リソースの追加予算はない。」のような要件が挙げられます。他には、「検証環境とバックアップ環境」「商用環境と移行過渡期環境」など、移行計画の仕事に携わったことがある人ならば、容易に利用局面は想像できるでしょう。
論理的な構成を示すと以下のようになります。
検証シナリオ
このページでは、自宅の廉価構成でも動作確認できるよう、1台のESXiで検証できる構成を紹介します。NSX-T外部に存在するネットワーク機器は、どのメーカーの仮想ルータでも差し支えございません。このページではArista vEOSのログを掲載していますが、BGPがしゃべれるルータならばどのメーカーでも差し支えございません。
以下に検証構成を示します。
仮想ルータの種類によってはプロミスキャスモードを有効にする必要があることに注意ください。
前提条件
vlanタグはNSX-Tのセグメント機能で付与します。従って、ポートグループやトランスポートゾーンではvlanタグを付与しないように注意ください。
ポートグループの設定例は以下の通りです。VSS(標準仮想スイッチ)の場合は、vlan 4095を指定するとvlanタグを通すようになります。
アップリンクプロファイルはvlan0(vlanタグ)を付与しない設定になっていることを確認します。
アップリンクプロファイルの設定全文は以下の通りです。
アップリンクプロファイル
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/api/v1/host-switch-profiles/ddedf839-2b5b-41b5-98cc-4f5a765d1a6a
{
"teaming" : {
"policy" : "FAILOVER_ORDER",
"active_list" : [ {
"uplink_name" : "uplink1",
"uplink_type" : "PNIC"
} ]
},
"transport_vlan" : 0,
"overlay_encap" : "GENEVE",
"resource_type" : "UplinkHostSwitchProfile",
"id" : "ddedf839-2b5b-41b5-98cc-4f5a765d1a6a",
"display_name" : "prof-edge-single-01",
"_create_user" : "admin",
"_create_time" : 1619881224931,
"_last_modified_user" : "admin",
"_last_modified_time" : 1619881224931,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}
VRF検証構成作成
T0ゲートウェイの作成
「T0ゲートウェイ」「ゲートウェイの追加」「Tier-0」の順に押下します。
「名前」など最小限のパラメタを入力し、T0ゲートウェイを作成します。
T0ゲートウェイの設定全文は以下の通りです。
T0ゲートウェイ
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/t0-router
{
"transit_subnets" : [ "100.64.0.0/16" ],
"internal_transit_subnets" : [ "169.254.0.0/24" ],
"ha_mode" : "ACTIVE_ACTIVE",
"failover_mode" : "NON_PREEMPTIVE",
"ipv6_profile_paths" : [ "/infra/ipv6-ndra-profiles/default", "/infra/ipv6-dad-profiles/default" ],
"force_whitelisting" : false,
"default_rule_logging" : false,
"disable_firewall" : false,
"advanced_config" : {
"forwarding_up_timer" : 0,
"connectivity" : "ON"
},
"resource_type" : "Tier0",
"id" : "t0-router",
"display_name" : "t0-router",
"path" : "/infra/tier-0s/t0-router",
"relative_path" : "t0-router",
"parent_path" : "/infra",
"unique_id" : "8fa21e7e-7e9c-451e-8842-15d3d8d613f2",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620456678629,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620456678640,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}
ループバックアドレス
T0ゲートウェイに最小限のパラメタを入力すると、その後はT0ゲートウェイにより詳細なパラメタを指定できるようになります。
そのVRFが所属するT0ゲートウェイにinterfaceが付与されてないと、VRFにinterfaceを作成できない制約があります。この制約を回避するために、T0ゲートウェイにinterfaceを作成します。
よくあるネットワーク機器の仕様を想像すれば、このNSX-Tの制約は至極納得ができる挙動です。多くのBGPプロセスはデフォルトでvrf defaultに所属するIPv4アドレスをルータIDとして選出します。もし、vrf defaultでIPv4アドレスが指定されてなければ、ルータIDを定義することができずにBGPプロセスは起動できないでしょう。
「インターフェースの追加」を押下します。
NSX-T外と通信するinterfaceではないので、タイプは「ループバック」とします。IPアドレスもどこかと通信するIPアドレスではないため、最も影響が少ないAPIPA(169.254.0.0/16)から採番しています。
このIPアドレスはBGPルータIDとして使用されます。advertiseされることはありませんが、ルータIDは物理のBGPルータ含めて、IDがバッティングしないように採番ください。
同様の操作を繰り返し、全てのNSX Edgeにループバックアドレスを付与します。
T0ゲートウェイのインターフェースの設定全文は以下の通りです。
T0ゲートウェイのインターフェース
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/t0-router/locale-services/default/interfaces
{
"results" : [ {
"urpf_mode" : "STRICT",
"edge_path" : "/infra/sites/default/enforcement-points/default/edge-clusters/b3716a17-115c-4e83-ac91-e3f6e0c53456/edge-nodes/0",
"type" : "LOOPBACK",
"resource_type" : "Tier0Interface",
"id" : "loopback-131",
"display_name" : "loopback-131",
"path" : "/infra/tier-0s/t0-router/locale-services/default/interfaces/loopback-131",
"relative_path" : "loopback-131",
"parent_path" : "/infra/tier-0s/t0-router/locale-services/default",
"unique_id" : "da3367b6-60e0-4c76-aeed-b264c3946270",
"marked_for_delete" : false,
"overridden" : false,
"subnets" : [ {
"ip_addresses" : [ "169.254.200.131" ],
"prefix_len" : 32
} ],
"_create_user" : "admin",
"_create_time" : 1620456723492,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620456723494,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}, {
"urpf_mode" : "STRICT",
"edge_path" : "/infra/sites/default/enforcement-points/default/edge-clusters/b3716a17-115c-4e83-ac91-e3f6e0c53456/edge-nodes/1",
"type" : "LOOPBACK",
"resource_type" : "Tier0Interface",
"id" : "loopback-132",
"display_name" : "loopback-132",
"path" : "/infra/tier-0s/t0-router/locale-services/default/interfaces/loopback-132",
"relative_path" : "loopback-132",
"parent_path" : "/infra/tier-0s/t0-router/locale-services/default",
"unique_id" : "d8a066ab-9838-4884-8255-0fe1ded96b73",
"marked_for_delete" : false,
"overridden" : false,
"subnets" : [ {
"ip_addresses" : [ "169.254.200.132" ],
"prefix_len" : 32
} ],
"_create_user" : "admin",
"_create_time" : 1620456741625,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620456741625,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
} ],
"result_count" : 2,
"sort_by" : "display_name",
"sort_ascending" : true
}
外部セグメント
「セグメントの追加」を押下します。
VRFを使用する場合は、NSX Edgeで共通の仮想NICを使うことになりますので、セグメントの設定でvlanタグを付与します。NSX-T 3.1.2 最小限構成のインストール方法 (5/7) 」で紹介した設定ではvlanタグを付与しませんでしたが、VRFを使用する時はvlanタグの付与が必要になることに注意ください。
同様の操作を繰り返し、複数のセグメントを作成します。
セグメントの設定全文は以下の通りです。
セグメント
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/segments
{
"results" : [ {
"type" : "DISCONNECTED",
"vlan_ids" : [ "3" ],
"transport_zone_path" : "/infra/sites/default/enforcement-points/default/transport-zones/a0afeb99-074e-49c8-a614-605c05bb3768",
"advanced_config" : {
"address_pool_paths" : [ ],
"hybrid" : false,
"inter_router" : false,
"local_egress" : false,
"urpf_mode" : "STRICT",
"connectivity" : "ON"
},
"admin_state" : "UP",
"replication_mode" : "MTEP",
"resource_type" : "Segment",
"id" : "external-vlan3",
"display_name" : "external-vlan3",
"path" : "/infra/segments/external-vlan3",
"relative_path" : "external-vlan3",
"parent_path" : "/infra",
"unique_id" : "49daf6a5-207f-4735-9dc9-00d7617a43d1",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620458302938,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620458302939,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}, {
"type" : "DISCONNECTED",
"vlan_ids" : [ "4" ],
"transport_zone_path" : "/infra/sites/default/enforcement-points/default/transport-zones/a0afeb99-074e-49c8-a614-605c05bb3768",
"advanced_config" : {
"address_pool_paths" : [ ],
"hybrid" : false,
"inter_router" : false,
"local_egress" : false,
"urpf_mode" : "STRICT",
"connectivity" : "ON"
},
"admin_state" : "UP",
"replication_mode" : "MTEP",
"resource_type" : "Segment",
"id" : "external-vlan4",
"display_name" : "external-vlan4",
"path" : "/infra/segments/external-vlan4",
"relative_path" : "external-vlan4",
"parent_path" : "/infra",
"unique_id" : "635a551f-39d8-43a8-a80d-26f8bf2a68dd",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620458321594,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620458321596,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
} ],
"result_count" : 2,
"sort_by" : "display_name",
"sort_ascending" : true
}
VRF
「T0ゲートウェイ」「ゲートウェイの追加」「VRF」の順に押下します。
「名前」や「Tier-0ゲートウェイに接続」などパラメタを入力し、VRFを作成します。
同様の操作を繰り返し、複数のVRFを作成します。
VRFの設定全文は以下の通りです。
VRF
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf03
{
"transit_subnets" : [ "100.64.0.0/16" ],
"internal_transit_subnets" : [ "169.254.0.0/24" ],
"ha_mode" : "ACTIVE_ACTIVE",
"failover_mode" : "NON_PREEMPTIVE",
"ipv6_profile_paths" : [ "/infra/ipv6-ndra-profiles/default", "/infra/ipv6-dad-profiles/default" ],
"force_whitelisting" : false,
"default_rule_logging" : false,
"disable_firewall" : false,
"vrf_config" : {
"tier0_path" : "/infra/tier-0s/t0-router"
},
"advanced_config" : {
"forwarding_up_timer" : 0,
"connectivity" : "ON"
},
"resource_type" : "Tier0",
"id" : "vrf03",
"display_name" : "vrf03",
"path" : "/infra/tier-0s/vrf03",
"relative_path" : "vrf03",
"parent_path" : "/infra",
"unique_id" : "d4f4f995-713f-4bf4-851f-d0d1fbd728a1",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620459733987,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620459734016,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf04
{
"transit_subnets" : [ "100.64.0.0/16" ],
"internal_transit_subnets" : [ "169.254.0.0/24" ],
"ha_mode" : "ACTIVE_ACTIVE",
"failover_mode" : "NON_PREEMPTIVE",
"ipv6_profile_paths" : [ "/infra/ipv6-ndra-profiles/default", "/infra/ipv6-dad-profiles/default" ],
"force_whitelisting" : false,
"default_rule_logging" : false,
"disable_firewall" : false,
"vrf_config" : {
"tier0_path" : "/infra/tier-0s/t0-router"
},
"advanced_config" : {
"forwarding_up_timer" : 0,
"connectivity" : "ON"
},
"resource_type" : "Tier0",
"id" : "vrf04",
"display_name" : "vrf04",
"path" : "/infra/tier-0s/vrf04",
"relative_path" : "vrf04",
"parent_path" : "/infra",
"unique_id" : "4c68ab11-9f2f-4268-8f83-f3e9bb5df9c8",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620460508366,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620460508387,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}
BGP有効化
T0ゲートウェイはデフォルトでBGPが有効ですが、VRFはデフォルトでBGPが無効です。まずはBGPを「有効」に変更し「保存」を押下します。
必ず「保存」を押下した後に「BGPネイバー」の設定をしてください。
設定が反映されたことを確認します。
BGPの設定全文は以下の通りです。
BGP
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf03/locale-services/default/bgp
{
"enabled" : true,
"ecmp" : true,
"resource_type" : "BgpRoutingConfig",
"id" : "bgp",
"display_name" : "bgp",
"path" : "/infra/tier-0s/vrf03/locale-services/default/bgp",
"relative_path" : "bgp",
"parent_path" : "/infra/tier-0s/vrf03/locale-services/default",
"unique_id" : "9b32198b-3a2d-4312-a85d-392153fdbc6b",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620459734052,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620462594557,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 3
}[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf04/locale-services/default/bgp
{
"enabled" : true,
"ecmp" : true,
"resource_type" : "BgpRoutingConfig",
"id" : "bgp",
"display_name" : "bgp",
"path" : "/infra/tier-0s/vrf04/locale-services/default/bgp",
"relative_path" : "bgp",
"parent_path" : "/infra/tier-0s/vrf04/locale-services/default",
"unique_id" : "de459c00-7c4c-4a81-a15d-4d84960c6948",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620460508425,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620462790654,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 1
}
BGPネイバー
「(BGPネイバー)設定」を押下します。
「BGPネイバーの追加」を押下します。
ネイバーのIPアドレスやAS番号を入力します。
必要あれば、タイマーなどを変更します。
同様の設定を必要なだけ繰り返します。
BGPネイバーの設定全文は以下の通りです。
BGPネイバー
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf03/locale-services/default/bgp/neighbors
{
"results" : [ {
"source_addresses" : [ "192.168.3.131", "192.168.3.132" ],
"neighbor_address" : "192.168.3.111",
"remote_as_num" : "65000",
"route_filtering" : [ {
"enabled" : true,
"address_family" : "IPV4"
} ],
"keep_alive_time" : 3,
"hold_down_time" : 10,
"bfd" : {
"enabled" : false,
"interval" : 500,
"multiple" : 3
},
"allow_as_in" : false,
"maximum_hop_limit" : 1,
"resource_type" : "BgpNeighborConfig",
"id" : "3ae41f58-aa35-4fb3-b8eb-696e39d2bc48",
"display_name" : "3ae41f58-aa35-4fb3-b8eb-696e39d2bc48",
"path" : "/infra/tier-0s/vrf03/locale-services/default/bgp/neighbors/3ae41f58-aa35-4fb3-b8eb-696e39d2bc48",
"relative_path" : "3ae41f58-aa35-4fb3-b8eb-696e39d2bc48",
"parent_path" : "/infra/tier-0s/vrf03/locale-services/default/bgp",
"unique_id" : "04bf2197-efd1-4b12-b229-9c4494aa34b3",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620462632011,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620462632015,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}, {
"source_addresses" : [ "192.168.3.131", "192.168.3.132" ],
"neighbor_address" : "192.168.3.112",
"remote_as_num" : "65000",
"route_filtering" : [ {
"enabled" : true,
"address_family" : "IPV4"
} ],
"keep_alive_time" : 3,
"hold_down_time" : 10,
"bfd" : {
"enabled" : false,
"interval" : 500,
"multiple" : 3
},
"allow_as_in" : false,
"maximum_hop_limit" : 1,
"resource_type" : "BgpNeighborConfig",
"id" : "4632225b-ff0e-458c-93cb-99b92dbbb5b3",
"display_name" : "4632225b-ff0e-458c-93cb-99b92dbbb5b3",
"path" : "/infra/tier-0s/vrf03/locale-services/default/bgp/neighbors/4632225b-ff0e-458c-93cb-99b92dbbb5b3",
"relative_path" : "4632225b-ff0e-458c-93cb-99b92dbbb5b3",
"parent_path" : "/infra/tier-0s/vrf03/locale-services/default/bgp",
"unique_id" : "abbf5c25-ba6c-42bc-a764-932438d13800",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620462649280,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620462649286,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
} ],
"result_count" : 2,
"sort_by" : "display_name",
"sort_ascending" : true
}[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf04/locale-services/default/bgp/neighbors
{
"results" : [ {
"source_addresses" : [ "192.168.4.131", "192.168.4.132" ],
"neighbor_address" : "192.168.4.112",
"remote_as_num" : "65000",
"route_filtering" : [ {
"enabled" : true,
"address_family" : "IPV4"
} ],
"keep_alive_time" : 3,
"hold_down_time" : 10,
"bfd" : {
"enabled" : false,
"interval" : 500,
"multiple" : 3
},
"allow_as_in" : false,
"maximum_hop_limit" : 1,
"resource_type" : "BgpNeighborConfig",
"id" : "9a549b3c-f6c6-4196-bcdf-ce0051d3ee08",
"display_name" : "9a549b3c-f6c6-4196-bcdf-ce0051d3ee08",
"path" : "/infra/tier-0s/vrf04/locale-services/default/bgp/neighbors/9a549b3c-f6c6-4196-bcdf-ce0051d3ee08",
"relative_path" : "9a549b3c-f6c6-4196-bcdf-ce0051d3ee08",
"parent_path" : "/infra/tier-0s/vrf04/locale-services/default/bgp",
"unique_id" : "5c486f3a-133b-4abc-b403-12d122307b33",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620463061453,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620463061457,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}, {
"source_addresses" : [ "192.168.4.131", "192.168.4.132" ],
"neighbor_address" : "192.168.4.111",
"remote_as_num" : "65000",
"route_filtering" : [ {
"enabled" : true,
"address_family" : "IPV4"
} ],
"keep_alive_time" : 3,
"hold_down_time" : 10,
"bfd" : {
"enabled" : false,
"interval" : 500,
"multiple" : 3
},
"allow_as_in" : false,
"maximum_hop_limit" : 1,
"resource_type" : "BgpNeighborConfig",
"id" : "f409536c-fdcc-41be-955e-f1e1106fb8d4",
"display_name" : "f409536c-fdcc-41be-955e-f1e1106fb8d4",
"path" : "/infra/tier-0s/vrf04/locale-services/default/bgp/neighbors/f409536c-fdcc-41be-955e-f1e1106fb8d4",
"relative_path" : "f409536c-fdcc-41be-955e-f1e1106fb8d4",
"parent_path" : "/infra/tier-0s/vrf04/locale-services/default/bgp",
"unique_id" : "98db212c-764a-4e25-b82d-fa4f63e2ada5",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620462902437,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620462902441,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
} ],
"result_count" : 2,
"sort_by" : "display_name",
"sort_ascending" : true
}
ネットワーク機器側にログインし、BGP neighborが確立されたことを確認します。
arista111#show ip bgp summary vrf all
BGP summary information for VRF default
Router identifier 169.254.200.111, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
BGP summary information for VRF vrf03
Router identifier 192.168.3.111, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
192.168.3.131 4 65000 1170 1190 0 0 00:57:13 Estab 0 0
192.168.3.132 4 65000 1170 1190 0 0 00:57:13 Estab 0 0
BGP summary information for VRF vrf04
Router identifier 192.168.4.111, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
192.168.4.131 4 65000 1057 1062 0 0 00:52:43 Estab 0 0
192.168.4.132 4 65000 1057 1062 0 0 00:52:44 Estab 0 0
arista111#
arista112#show ip bgp summary vrf all
BGP summary information for VRF default
Router identifier 169.254.200.112, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
BGP summary information for VRF vrf03
Router identifier 192.168.3.112, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
192.168.3.131 4 65000 1109 1125 0 0 00:55:19 Estab 0 0
192.168.3.132 4 65000 1109 1125 0 0 00:55:19 Estab 0 0
BGP summary information for VRF vrf04
Router identifier 192.168.4.112, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
192.168.4.131 4 65000 972 979 0 0 00:48:28 Estab 0 0
192.168.4.132 4 65000 972 979 0 0 00:48:28 Estab 0 0
arista112#
内部セグメントの作成
「セグメントの追加」を押下します。
「セグメント名」や「トランスポートゾーン」を指定します。「接続されたゲートウェイ」はT0ゲートウェイではなくVRFを指定します。
同様の設定を必要なだけ繰り返します。
セグメントの設定は以下の通りです。
内部セグメント
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/segments/seg50
{
"type" : "ROUTED",
"subnets" : [ {
"gateway_address" : "192.168.50.1/24",
"network" : "192.168.50.0/24"
} ],
"connectivity_path" : "/infra/tier-0s/vrf03",
"transport_zone_path" : "/infra/sites/default/enforcement-points/default/transport-zones/62cc23e5-ff6b-40b2-abaa-2322c71d6c13",
"advanced_config" : {
"address_pool_paths" : [ ],
"hybrid" : false,
"inter_router" : false,
"local_egress" : false,
"urpf_mode" : "STRICT",
"connectivity" : "ON"
},
"admin_state" : "UP",
"replication_mode" : "MTEP",
"resource_type" : "Segment",
"id" : "seg50",
"display_name" : "seg50",
"path" : "/infra/segments/seg50",
"relative_path" : "seg50",
"parent_path" : "/infra",
"unique_id" : "b69f3641-e757-4b90-bf3b-033f0186fc09",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620466618422,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620466618424,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/segments/seg51
{
"type" : "ROUTED",
"subnets" : [ {
"gateway_address" : "192.168.51.1/24",
"network" : "192.168.51.0/24"
} ],
"connectivity_path" : "/infra/tier-0s/vrf04",
"transport_zone_path" : "/infra/sites/default/enforcement-points/default/transport-zones/62cc23e5-ff6b-40b2-abaa-2322c71d6c13",
"advanced_config" : {
"address_pool_paths" : [ ],
"hybrid" : false,
"inter_router" : false,
"local_egress" : false,
"urpf_mode" : "STRICT",
"connectivity" : "ON"
},
"admin_state" : "UP",
"replication_mode" : "MTEP",
"resource_type" : "Segment",
"id" : "seg51",
"display_name" : "seg51",
"path" : "/infra/segments/seg51",
"relative_path" : "seg51",
"parent_path" : "/infra",
"unique_id" : "8fc33854-0d62-46f1-9434-6c3bd933b9be",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620466650326,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620466650329,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 0
}
再配送
対象のVRFを選び、「編集」します。
「ルート再配分」の「設定」を押下します。
「ルート再配分の追加」を押下します。
「名前」を入力し、「設定」を押下します。
再配送の対象を選び、「適用」を押下します。
再配送の設定は以下の通りです。
再配送
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf03/locale-services/default
{
"route_redistribution_config" : {
"bgp_enabled" : true,
"ospf_enabled" : false,
"redistribution_rules" : [ {
"name" : "01",
"route_redistribution_types" : [ "TIER0_CONNECTED" ],
"destinations" : [ "BGP" ]
} ]
},
"edge_cluster_path" : "/infra/sites/default/enforcement-points/default/edge-clusters/b3716a17-115c-4e83-ac91-e3f6e0c53456",
"bfd_profile_path" : "/infra/bfd-profiles/default",
"resource_type" : "LocaleServices",
"id" : "default",
"display_name" : "default",
"path" : "/infra/tier-0s/vrf03/locale-services/default",
"relative_path" : "default",
"parent_path" : "/infra/tier-0s/vrf03",
"unique_id" : "37709396-6e49-4f7b-bfca-ebe17ad85e1f",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620459734044,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620466719680,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 3
}[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]#
[root@centos221 ~]# curl --request GET \
> -u admin:P@ssw0rdP@ssw0rd \
> --header "Content-Type:application/json" \
> -k https://192.168.1.121/policy/api/v1/infra/tier-0s/vrf04/locale-services/default
{
"route_redistribution_config" : {
"bgp_enabled" : true,
"ospf_enabled" : false,
"redistribution_rules" : [ {
"name" : "01",
"route_redistribution_types" : [ "TIER0_CONNECTED" ],
"destinations" : [ "BGP" ]
} ]
},
"edge_cluster_path" : "/infra/sites/default/enforcement-points/default/edge-clusters/b3716a17-115c-4e83-ac91-e3f6e0c53456",
"bfd_profile_path" : "/infra/bfd-profiles/default",
"resource_type" : "LocaleServices",
"id" : "default",
"display_name" : "default",
"path" : "/infra/tier-0s/vrf04/locale-services/default",
"relative_path" : "default",
"parent_path" : "/infra/tier-0s/vrf04",
"unique_id" : "a357cd22-3451-450b-ae78-da805a18fa76",
"marked_for_delete" : false,
"overridden" : false,
"_create_user" : "admin",
"_create_time" : 1620460508416,
"_last_modified_user" : "admin",
"_last_modified_time" : 1620466746154,
"_system_owned" : false,
"_protection" : "NOT_PROTECTED",
"_revision" : 1
}
ネットワーク機器側のルーティングテーブルを確認します。確かにvrf03に所属するseg50(192.168.50.0/24)とvrf04に所属するseg51(192.168.51.0/24)が分離されていることを確認します。
arista111#show ip route vrf vrf03
VRF: vrf03
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - BGP, B I - iBGP, B E - eBGP,
R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
NG - Nexthop Group Static Route, V - VXLAN Control Service,
DH - DHCP client installed default route, M - Martian,
DP - Dynamic Policy Route, L - VRF Leaked,
RC - Route Cache Route
Gateway of last resort is not set
C 192.168.3.0/24 is directly connected, Vlan3
B I 192.168.50.0/24 [200/0] via 192.168.3.131, Vlan3
arista111#
arista111#
arista111#show ip route vrf vrf04
VRF: vrf04
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - BGP, B I - iBGP, B E - eBGP,
R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2,
O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary,
NG - Nexthop Group Static Route, V - VXLAN Control Service,
DH - DHCP client installed default route, M - Martian,
DP - Dynamic Policy Route, L - VRF Leaked,
RC - Route Cache Route
Gateway of last resort is not set
C 192.168.4.0/24 is directly connected, Vlan4
B I 192.168.51.0/24 [200/0] via 192.168.4.131, Vlan4
arista111#