进行配置更改时,NSX Manager 通常会将请求发送到另一个组件,以实施更改。对于某些第 3 层实体,如果使用 API 进行配置更改,则可以跟踪请求的状态以查看更改是否已成功实施。
您发起的配置更改称为所需状态。实施更改的结果称为已实现状态。如果 NSX Manager 成功实施更改,已实现状态将与所需状态相同。如果出现错误,已实现状态将与所需状态不同。
对于某些第 3 层实体,当调用 API 以进行配置更改时,响应将包括参数 request_id。可以使用参数 request_id 和 entity_id 进行 API 调用以查明请求的状态。
此功能支持以下实体和 API:
EdgeCluster POST /edge-clusters PUT /edge-clusters/<edge-cluster-id> DELETE /edge-clusters/<edge-cluster-id> POST /edge-clusters/<edge-cluster-id>?action=replace_transport_node LogicalRouter POST /logical-routers PUT /logical-routers/<logical-router-id> DELETE /logical-routers/<logical-router-id> POST /logical-routers/<logical-router-id>?action=reprocess POST /logical-routers/<logical-router-id>?action=reallocate LogicalRouterPort POST /logical-router-ports PUT /logical-router-ports/<logical-router-port-id> DELETE /logical-router-ports/<logical-router-port-id> StaticRoute POST /logical-routers/<logical-router-id>/routing/static-routes PUT /logical-routers/<logical-router-id>/routing/static-routes/<static-route-id> DELETE /logical-routers/<logical-router-id>/routing/static-routes/<static-route-id> BGPConfig PUT /logical-routers/<logical-router-id>/routing/bgp BgpNeighbor POST /logical-routers/<logical-router-id>/routing/bgp/neighbors PUT /logical-routers/<logical-router-id>/routing/bgp/neighbors/<bgp-neighbor-id> DELETE /logical-routers/<logical-router-id>/routing/bgp/neighbors/<bgp-neighbor-id> POST /logical-routers/<logical-router-id>/routing/bgp/neighbors/<bgp-neighbor-id> BGPCommunityList POST /logical-routers/<logical-router-id>/routing/bgp/community-lists PUT /logical-routers/<logical-router-id>/routing/bgp/community-lists/<community-list-id> DELETE /logical-routers/<logical-router-id>/routing/bgp/community-lists/<community-list-id> AdvertisementConfig PUT /logical-routers/<logical-router-id>/routing/advertisement AdvertiseRouteList PUT /logical-routers/<logical-router-id>/routing/advertisement/rules NatRule POST /logical-routers/<logical-router-id>/nat/rules PUT /logical-routers/<logical-router-id>/nat/rules/<rule-id> DELETE /logical-routers/<logical-router-id>/nat/rules/<rule-id> DhcpRelayService POST /dhcp/relays PUT /dhcp/relays/<relay-id> DELETE /dhcp/relays/<relay-id> DhcpRelayProfile POST /dhcp/relay-profiles PUT /dhcp/relay-profiles/<relay-profile-id> DELETE /dhcp/relay-profiles/<relay-profile-id> StaticHopBfdPeer POST /logical-routers/<logical-router-id>/routing/static-routes/bfd-peers PUT /logical-routers/<logical-router-id>/routing/static-routes/bfd-peers/<bfd-peers-id> DELETE /logical-routers/<logical-router-id>/routing/static-routes/bfd-peers/<bfd-peers-id> IPPrefixList POST /logical-routers/<logical-router-id>/routing/ip-prefix-lists PUT /logical-routers/<logical-router-id>/routing/ip-prefix-lists/<ip-prefix-list-id> DELETE /logical-routers/<logical-router-id>/routing/ip-prefix-lists/<ip-prefix-list-id> RouteMap POST /logical-routers/<logical-router-id>/routing/route-maps PUT /logical-routers/<logical-router-id>/routing/route-maps/<route-map-id> DELETE /logical-routers/<logical-router-id>/routing/route-maps/<route-map-id> RedistributionConfig PUT /logical-routers/<logical-router-id>/routing/redistribution RedistributionRuleList PUT /logical-routers/<logical-router-id>/routing/redistribution/rules BfdConfig PUT /logical-routers/<logical-router-id>/routing/bfd-config MplsConfig PUT /logical-routers/<logical-router-id>/routing/mpls RoutingGlobalConfig PUT /logical-routers/<logical-router-id>/routing IPSecVPNIKEProfile POST /vpn/ipsec/ike-profiles PUT /vpn/ipsec/ike-profiles/<ike-profile-id> DELETE /vpn/ipsec/ike-profiles/<ike-profile-id> IPSecVPNDPDProfile POST /vpn/ipsec/dpd-profiles PUT /vpn/ipsec/dpd-profiles/<dpd-profile-id> DELETE /vpn/ipsec/dpd-profiles/<dpd-profile-id> IPSecVPNTunnelProfile POST /vpn/ipsec/tunnel-profiles PUT /vpn/ipsec/tunnel-profiles/<tunnel-profile-id> DELETE /vpn/ipsec/tunnel-profiles/<tunnel-profile-id> IPSecVPNLocalEndpoint POST /vpn/ipsec/local-endpoints PUT /vpn/ipsec/local-endpoints/<local-endpoint-id> DELETE /vpn/ipsec/local-endpoints/<local-endpoint-id> IPSecVPNPeerEndpoint POST /vpn/ipsec/peer-endpoints PUT /vpn/ipsec/peer-endpoints/<peer-endpoint-id> DELETE /vpn/ipsec/peer-endpoints/<peer-endpoint-id> IPSecVPNService POST /vpn/ipsec/services PUT /vpn/ipsec/services/<service-id> DELETE /vpn/ipsec/services/<service-id> IPSecVPNSession POST /vpn/ipsec/sessions PUT /vpn/ipsec/sessions/<session-id> DELETE /vpn/ipsec/sessions/<session-id> DhcpServer POST /dhcp/servers PUT /dhcp/servers/<server-id> DELETE /dhcp/servers/<server-id> DhcpStaticBinding POST /dhcp/servers/static-bindings PUT /dhcp/servers/<server-id>/static-bindings/<binding-id> DELETE /dhcp/servers/<server-id>/static-bindings/<binding-id> DhcpIpPool POST /dhcp/servers/ip-pools PUT /dhcp/servers/<server-id>/ip-pools/<pool-id> DELETE /dhcp/servers/<server-id>/ip-pools/<pool-id> DnsForwarder POST /dns/forwarders PUT /dns/forwarders/<forwarder-id> DELETE /dns/forwarders/<forwarder-id>
可以通过调用以下 API 获取已实现状态:
EdgeCluster Request - GET /edge-clusters/<edge-cluster-id>/state?request_id=<request-id> Response - An instance of EdgeClusterStateDto which will inherit ConfigurationState. If the edge cluster is deleted then the state will be unknown and it will return the common entity not found error. LogicalRouter / All L3 Entites - All L3 entities can use this API to get realization state Request - GET /logical-routers/<logical-router-id>/state?request_id=<request-id> Response - An instance of LogicalRouterStateDto which will inherit ConfigurationState. Delete operation of any entity other than logical router can be covered by getting the state of logical router but if the logical router itself is deleted then the state will be unknown and it will return the common entity not found error. LogicalServiceRouterCluster - All L3 entities which are the part of services can use this API to get the realization state Request - GET /logical-routers/<logical-router-id>/service-cluster/state?request_id=<request-id> Response - An instance of LogicalServiceRouterClusterState which will inherit ConfigurationState. LogicalRouterPort / DhcpRelayService / DhcpRelayProfile Request - GET /logical-router-ports/<logical-router-port-id>/state?request_id=<request-id> Response - An instance of LogicalRouterPortStateDto which will inherit ConfigurationState. IPSecVPNIKEProfile / IPSecVPNDPDProfile / IPSecVPNTunnelProfile / IPSecVPNLocalEndpoint / IPSecVPNPeerEndpoint / IPSecVPNService / IPSecVPNSession Request - GET /vpn/ipsec/sessions/<session-id>/state?request_id=<request-id> Response - An instance of IPSecVPNSessionStateDto which will inherit ConfigurationState. If the session is deleted then the state will be unknown and it will return the common entity not found error. When IPSecVPNService is disabled, IKE itself is down and it does not respond. It will return unknown state in such a case. DhcpServer Request - GET /dhcp/servers/<server-id>/state?request_id=<request-id> Response - An instance of ConfigurationState. DhcpStaticBinding Request - GET /dhcp/servers/<server-id>/static-bindings/<binding-id>/state?request_id=<request-id> Response - An instance of ConfigurationState. DhcpIpPool Request - GET /dhcp/servers/<server-id>/ip-pools/<pool-id>/state?request_id=<request-id> Response - An instance of ConfigurationState. DnsForwarder Request - GET /dns/forwarders/<forwarder-id>/state?request_id=<request-id> Response - An instance of ConfigurationState.
有关这些 API 的详细信息,请参见NSX API 指南。