123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900 |
- // Copyright 2022 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.cloud.networkmanagement.v1;
- option csharp_namespace = "Google.Cloud.NetworkManagement.V1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/networkmanagement/v1;networkmanagement";
- option java_multiple_files = true;
- option java_outer_classname = "TraceProto";
- option java_package = "com.google.cloud.networkmanagement.v1";
- option php_namespace = "Google\\Cloud\\NetworkManagement\\V1";
- option ruby_package = "Google::Cloud::NetworkManagement::V1";
- // Trace represents one simulated packet forwarding path.
- //
- // * Each trace contains multiple ordered steps.
- // * Each step is in a particular state with associated configuration.
- // * State is categorized as final or non-final states.
- // * Each final state has a reason associated.
- // * Each trace must end with a final state (the last step).
- // ```
- // |---------------------Trace----------------------|
- // Step1(State) Step2(State) --- StepN(State(final))
- // ```
- message Trace {
- // Derived from the source and destination endpoints definition specified by
- // user request, and validated by the data plane model.
- // If there are multiple traces starting from different source locations, then
- // the endpoint_info may be different between traces.
- EndpointInfo endpoint_info = 1;
- // A trace of a test contains multiple steps from the initial state to the
- // final state (delivered, dropped, forwarded, or aborted).
- //
- // The steps are ordered by the processing sequence within the simulated
- // network state machine. It is critical to preserve the order of the steps
- // and avoid reordering or sorting them.
- repeated Step steps = 2;
- }
- // A simulated forwarding path is composed of multiple steps.
- // Each step has a well-defined state and an associated configuration.
- message Step {
- // Type of states that are defined in the network state machine.
- // Each step in the packet trace is in a specific state.
- enum State {
- // Unspecified state.
- STATE_UNSPECIFIED = 0;
- // Initial state: packet originating from a Compute Engine instance.
- // An InstanceInfo is populated with starting instance information.
- START_FROM_INSTANCE = 1;
- // Initial state: packet originating from the internet.
- // The endpoint information is populated.
- START_FROM_INTERNET = 2;
- // Initial state: packet originating from a VPC or on-premises network
- // with internal source IP.
- // If the source is a VPC network visible to the user, a NetworkInfo
- // is populated with details of the network.
- START_FROM_PRIVATE_NETWORK = 3;
- // Initial state: packet originating from a Google Kubernetes Engine cluster
- // master. A GKEMasterInfo is populated with starting instance information.
- START_FROM_GKE_MASTER = 21;
- // Initial state: packet originating from a Cloud SQL instance.
- // A CloudSQLInstanceInfo is populated with starting instance information.
- START_FROM_CLOUD_SQL_INSTANCE = 22;
- // Config checking state: verify ingress firewall rule.
- APPLY_INGRESS_FIREWALL_RULE = 4;
- // Config checking state: verify egress firewall rule.
- APPLY_EGRESS_FIREWALL_RULE = 5;
- // Config checking state: verify route.
- APPLY_ROUTE = 6;
- // Config checking state: match forwarding rule.
- APPLY_FORWARDING_RULE = 7;
- // Config checking state: packet sent or received under foreign IP
- // address and allowed.
- SPOOFING_APPROVED = 8;
- // Forwarding state: arriving at a Compute Engine instance.
- ARRIVE_AT_INSTANCE = 9;
- // Forwarding state: arriving at a Compute Engine internal load balancer.
- ARRIVE_AT_INTERNAL_LOAD_BALANCER = 10;
- // Forwarding state: arriving at a Compute Engine external load balancer.
- ARRIVE_AT_EXTERNAL_LOAD_BALANCER = 11;
- // Forwarding state: arriving at a Cloud VPN gateway.
- ARRIVE_AT_VPN_GATEWAY = 12;
- // Forwarding state: arriving at a Cloud VPN tunnel.
- ARRIVE_AT_VPN_TUNNEL = 13;
- // Transition state: packet header translated.
- NAT = 14;
- // Transition state: original connection is terminated and a new proxied
- // connection is initiated.
- PROXY_CONNECTION = 15;
- // Final state: packet could be delivered.
- DELIVER = 16;
- // Final state: packet could be dropped.
- DROP = 17;
- // Final state: packet could be forwarded to a network with an unknown
- // configuration.
- FORWARD = 18;
- // Final state: analysis is aborted.
- ABORT = 19;
- // Special state: viewer of the test result does not have permission to
- // see the configuration in this step.
- VIEWER_PERMISSION_MISSING = 20;
- }
- // A description of the step. Usually this is a summary of the state.
- string description = 1;
- // Each step is in one of the pre-defined states.
- State state = 2;
- // This is a step that leads to the final state Drop.
- bool causes_drop = 3;
- // Project ID that contains the configuration this step is validating.
- string project_id = 4;
- // Configuration or metadata associated with each step.
- // The configuration is filtered based on viewer's permission. If a viewer
- // has no permission to view the configuration in this step, for non-final
- // states a special state is populated (VIEWER_PERMISSION_MISSING), and for
- // final state the configuration is cleared.
- oneof step_info {
- // Display information of a Compute Engine instance.
- InstanceInfo instance = 5;
- // Display information of a Compute Engine firewall rule.
- FirewallInfo firewall = 6;
- // Display information of a Compute Engine route.
- RouteInfo route = 7;
- // Display information of the source and destination under analysis.
- // The endpoint information in an intermediate state may differ with the
- // initial input, as it might be modified by state like NAT,
- // or Connection Proxy.
- EndpointInfo endpoint = 8;
- // Display information of a Compute Engine forwarding rule.
- ForwardingRuleInfo forwarding_rule = 9;
- // Display information of a Compute Engine VPN gateway.
- VpnGatewayInfo vpn_gateway = 10;
- // Display information of a Compute Engine VPN tunnel.
- VpnTunnelInfo vpn_tunnel = 11;
- // Display information of the final state "deliver" and reason.
- DeliverInfo deliver = 12;
- // Display information of the final state "forward" and reason.
- ForwardInfo forward = 13;
- // Display information of the final state "abort" and reason.
- AbortInfo abort = 14;
- // Display information of the final state "drop" and reason.
- DropInfo drop = 15;
- // Display information of the load balancers.
- LoadBalancerInfo load_balancer = 16;
- // Display information of a Google Cloud network.
- NetworkInfo network = 17;
- // Display information of a Google Kubernetes Engine cluster master.
- GKEMasterInfo gke_master = 18;
- // Display information of a Cloud SQL instance.
- CloudSQLInstanceInfo cloud_sql_instance = 19;
- }
- }
- // For display only. Metadata associated with a Compute Engine instance.
- message InstanceInfo {
- // Name of a Compute Engine instance.
- string display_name = 1;
- // URI of a Compute Engine instance.
- string uri = 2;
- // Name of the network interface of a Compute Engine instance.
- string interface = 3;
- // URI of a Compute Engine network.
- string network_uri = 4;
- // Internal IP address of the network interface.
- string internal_ip = 5;
- // External IP address of the network interface.
- string external_ip = 6;
- // Network tags configured on the instance.
- repeated string network_tags = 7;
- // Service account authorized for the instance.
- string service_account = 8 [deprecated = true];
- }
- // For display only. Metadata associated with a Compute Engine network.
- message NetworkInfo {
- // Name of a Compute Engine network.
- string display_name = 1;
- // URI of a Compute Engine network.
- string uri = 2;
- // The IP range that matches the test.
- string matched_ip_range = 4;
- }
- // For display only. Metadata associated with a VPC firewall rule, an implied
- // VPC firewall rule, or a hierarchical firewall policy rule.
- message FirewallInfo {
- // The firewall rule's type.
- enum FirewallRuleType {
- // Unspecified type.
- FIREWALL_RULE_TYPE_UNSPECIFIED = 0;
- // Hierarchical firewall policy rule. For details, see
- // [Hierarchical firewall policies
- // overview](https://cloud.google.com/vpc/docs/firewall-policies).
- HIERARCHICAL_FIREWALL_POLICY_RULE = 1;
- // VPC firewall rule. For details, see
- // [VPC firewall rules
- // overview](https://cloud.google.com/vpc/docs/firewalls).
- VPC_FIREWALL_RULE = 2;
- // Implied VPC firewall rule. For details, see
- // [Implied
- // rules](https://cloud.google.com/vpc/docs/firewalls#default_firewall_rules).
- IMPLIED_VPC_FIREWALL_RULE = 3;
- }
- // The display name of the VPC firewall rule. This field is not applicable
- // to hierarchical firewall policy rules.
- string display_name = 1;
- // The URI of the VPC firewall rule. This field is not applicable to
- // implied firewall rules or hierarchical firewall policy rules.
- string uri = 2;
- // Possible values: INGRESS, EGRESS
- string direction = 3;
- // Possible values: ALLOW, DENY
- string action = 4;
- // The priority of the firewall rule.
- int32 priority = 5;
- // The URI of the VPC network that the firewall rule is associated with.
- // This field is not applicable to hierarchical firewall policy rules.
- string network_uri = 6;
- // The target tags defined by the VPC firewall rule. This field is not
- // applicable to hierarchical firewall policy rules.
- repeated string target_tags = 7;
- // The target service accounts specified by the firewall rule.
- repeated string target_service_accounts = 8;
- // The hierarchical firewall policy that this rule is associated with.
- // This field is not applicable to VPC firewall rules.
- string policy = 9;
- // The firewall rule's type.
- FirewallRuleType firewall_rule_type = 10;
- }
- // For display only. Metadata associated with a Compute Engine route.
- message RouteInfo {
- // Type of route:
- enum RouteType {
- // Unspecified type. Default value.
- ROUTE_TYPE_UNSPECIFIED = 0;
- // Route is a subnet route automatically created by the system.
- SUBNET = 1;
- // Static route created by the user, including the default route to the
- // internet.
- STATIC = 2;
- // Dynamic route exchanged between BGP peers.
- DYNAMIC = 3;
- // A subnet route received from peering network.
- PEERING_SUBNET = 4;
- // A static route received from peering network.
- PEERING_STATIC = 5;
- // A dynamic route received from peering network.
- PEERING_DYNAMIC = 6;
- }
- // Type of next hop:
- enum NextHopType {
- // Unspecified type. Default value.
- NEXT_HOP_TYPE_UNSPECIFIED = 0;
- // Next hop is an IP address.
- NEXT_HOP_IP = 1;
- // Next hop is a Compute Engine instance.
- NEXT_HOP_INSTANCE = 2;
- // Next hop is a VPC network gateway.
- NEXT_HOP_NETWORK = 3;
- // Next hop is a peering VPC.
- NEXT_HOP_PEERING = 4;
- // Next hop is an interconnect.
- NEXT_HOP_INTERCONNECT = 5;
- // Next hop is a VPN tunnel.
- NEXT_HOP_VPN_TUNNEL = 6;
- // Next hop is a VPN gateway. This scenario only happens when tracing
- // connectivity from an on-premises network to Google Cloud through a VPN.
- // The analysis simulates a packet departing from the on-premises network
- // through a VPN tunnel and arriving at a Cloud VPN gateway.
- NEXT_HOP_VPN_GATEWAY = 7;
- // Next hop is an internet gateway.
- NEXT_HOP_INTERNET_GATEWAY = 8;
- // Next hop is blackhole; that is, the next hop either does not exist or is
- // not running.
- NEXT_HOP_BLACKHOLE = 9;
- // Next hop is the forwarding rule of an Internal Load Balancer.
- NEXT_HOP_ILB = 10;
- // Next hop is a
- // [router appliance
- // instance](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ra-overview).
- NEXT_HOP_ROUTER_APPLIANCE = 11;
- }
- // Type of route.
- RouteType route_type = 8;
- // Type of next hop.
- NextHopType next_hop_type = 9;
- // Name of a Compute Engine route.
- string display_name = 1;
- // URI of a Compute Engine route.
- // Dynamic route from cloud router does not have a URI.
- // Advertised route from Google Cloud VPC to on-premises network also does
- // not have a URI.
- string uri = 2;
- // Destination IP range of the route.
- string dest_ip_range = 3;
- // Next hop of the route.
- string next_hop = 4;
- // URI of a Compute Engine network.
- string network_uri = 5;
- // Priority of the route.
- int32 priority = 6;
- // Instance tags of the route.
- repeated string instance_tags = 7;
- }
- // For display only. Metadata associated with a Compute Engine forwarding rule.
- message ForwardingRuleInfo {
- // Name of a Compute Engine forwarding rule.
- string display_name = 1;
- // URI of a Compute Engine forwarding rule.
- string uri = 2;
- // Protocol defined in the forwarding rule that matches the test.
- string matched_protocol = 3;
- // Port range defined in the forwarding rule that matches the test.
- string matched_port_range = 6;
- // VIP of the forwarding rule.
- string vip = 4;
- // Target type of the forwarding rule.
- string target = 5;
- // Network URI. Only valid for Internal Load Balancer.
- string network_uri = 7;
- }
- // For display only. Metadata associated with a load balancer.
- message LoadBalancerInfo {
- // The type definition for a load balancer:
- enum LoadBalancerType {
- // Type is unspecified.
- LOAD_BALANCER_TYPE_UNSPECIFIED = 0;
- // Internal TCP/UDP load balancer.
- INTERNAL_TCP_UDP = 1;
- // Network TCP/UDP load balancer.
- NETWORK_TCP_UDP = 2;
- // HTTP(S) proxy load balancer.
- HTTP_PROXY = 3;
- // TCP proxy load balancer.
- TCP_PROXY = 4;
- // SSL proxy load balancer.
- SSL_PROXY = 5;
- }
- // The type definition for a load balancer backend configuration:
- enum BackendType {
- // Type is unspecified.
- BACKEND_TYPE_UNSPECIFIED = 0;
- // Backend Service as the load balancer's backend.
- BACKEND_SERVICE = 1;
- // Target Pool as the load balancer's backend.
- TARGET_POOL = 2;
- }
- // Type of the load balancer.
- LoadBalancerType load_balancer_type = 1;
- // URI of the health check for the load balancer.
- string health_check_uri = 2;
- // Information for the loadbalancer backends.
- repeated LoadBalancerBackend backends = 3;
- // Type of load balancer's backend configuration.
- BackendType backend_type = 4;
- // Backend configuration URI.
- string backend_uri = 5;
- }
- // For display only. Metadata associated with a specific load balancer backend.
- message LoadBalancerBackend {
- // State of a health check firewall configuration:
- enum HealthCheckFirewallState {
- // State is unspecified. Default state if not populated.
- HEALTH_CHECK_FIREWALL_STATE_UNSPECIFIED = 0;
- // There are configured firewall rules to allow health check probes to the
- // backend.
- CONFIGURED = 1;
- // There are firewall rules configured to allow partial health check ranges
- // or block all health check ranges.
- // If a health check probe is sent from denied IP ranges,
- // the health check to the backend will fail. Then, the backend will be
- // marked unhealthy and will not receive traffic sent to the load balancer.
- MISCONFIGURED = 2;
- }
- // Name of a Compute Engine instance or network endpoint.
- string display_name = 1;
- // URI of a Compute Engine instance or network endpoint.
- string uri = 2;
- // State of the health check firewall configuration.
- HealthCheckFirewallState health_check_firewall_state = 3;
- // A list of firewall rule URIs allowing probes from health check IP ranges.
- repeated string health_check_allowing_firewall_rules = 4;
- // A list of firewall rule URIs blocking probes from health check IP ranges.
- repeated string health_check_blocking_firewall_rules = 5;
- }
- // For display only. Metadata associated with a Compute Engine VPN gateway.
- message VpnGatewayInfo {
- // Name of a VPN gateway.
- string display_name = 1;
- // URI of a VPN gateway.
- string uri = 2;
- // URI of a Compute Engine network where the VPN gateway is configured.
- string network_uri = 3;
- // IP address of the VPN gateway.
- string ip_address = 4;
- // A VPN tunnel that is associated with this VPN gateway.
- // There may be multiple VPN tunnels configured on a VPN gateway, and only
- // the one relevant to the test is displayed.
- string vpn_tunnel_uri = 5;
- // Name of a Google Cloud region where this VPN gateway is configured.
- string region = 6;
- }
- // For display only. Metadata associated with a Compute Engine VPN tunnel.
- message VpnTunnelInfo {
- // Types of VPN routing policy. For details, refer to [Networks and Tunnel
- // routing](https://cloud.google.com/network-connectivity/docs/vpn/concepts/choosing-networks-routing/).
- enum RoutingType {
- // Unspecified type. Default value.
- ROUTING_TYPE_UNSPECIFIED = 0;
- // Route based VPN.
- ROUTE_BASED = 1;
- // Policy based routing.
- POLICY_BASED = 2;
- // Dynamic (BGP) routing.
- DYNAMIC = 3;
- }
- // Name of a VPN tunnel.
- string display_name = 1;
- // URI of a VPN tunnel.
- string uri = 2;
- // URI of the VPN gateway at local end of the tunnel.
- string source_gateway = 3;
- // URI of a VPN gateway at remote end of the tunnel.
- string remote_gateway = 4;
- // Remote VPN gateway's IP address.
- string remote_gateway_ip = 5;
- // Local VPN gateway's IP address.
- string source_gateway_ip = 6;
- // URI of a Compute Engine network where the VPN tunnel is configured.
- string network_uri = 7;
- // Name of a Google Cloud region where this VPN tunnel is configured.
- string region = 8;
- // Type of the routing policy.
- RoutingType routing_type = 9;
- }
- // For display only. The specification of the endpoints for the test.
- // EndpointInfo is derived from source and destination Endpoint and validated
- // by the backend data plane model.
- message EndpointInfo {
- // Source IP address.
- string source_ip = 1;
- // Destination IP address.
- string destination_ip = 2;
- // IP protocol in string format, for example: "TCP", "UDP", "ICMP".
- string protocol = 3;
- // Source port. Only valid when protocol is TCP or UDP.
- int32 source_port = 4;
- // Destination port. Only valid when protocol is TCP or UDP.
- int32 destination_port = 5;
- // URI of the network where this packet originates from.
- string source_network_uri = 6;
- // URI of the network where this packet is sent to.
- string destination_network_uri = 7;
- }
- // Details of the final state "deliver" and associated resource.
- message DeliverInfo {
- // Deliver target types:
- enum Target {
- // Target not specified.
- TARGET_UNSPECIFIED = 0;
- // Target is a Compute Engine instance.
- INSTANCE = 1;
- // Target is the internet.
- INTERNET = 2;
- // Target is a Google API.
- GOOGLE_API = 3;
- // Target is a Google Kubernetes Engine cluster master.
- GKE_MASTER = 4;
- // Target is a Cloud SQL instance.
- CLOUD_SQL_INSTANCE = 5;
- }
- // Target type where the packet is delivered to.
- Target target = 1;
- // URI of the resource that the packet is delivered to.
- string resource_uri = 2;
- }
- // Details of the final state "forward" and associated resource.
- message ForwardInfo {
- // Forward target types.
- enum Target {
- // Target not specified.
- TARGET_UNSPECIFIED = 0;
- // Forwarded to a VPC peering network.
- PEERING_VPC = 1;
- // Forwarded to a Cloud VPN gateway.
- VPN_GATEWAY = 2;
- // Forwarded to a Cloud Interconnect connection.
- INTERCONNECT = 3;
- // Forwarded to a Google Kubernetes Engine Container cluster master.
- GKE_MASTER = 4;
- // Forwarded to the next hop of a custom route imported from a peering VPC.
- IMPORTED_CUSTOM_ROUTE_NEXT_HOP = 5;
- // Forwarded to a Cloud SQL instance.
- CLOUD_SQL_INSTANCE = 6;
- }
- // Target type where this packet is forwarded to.
- Target target = 1;
- // URI of the resource that the packet is forwarded to.
- string resource_uri = 2;
- }
- // Details of the final state "abort" and associated resource.
- message AbortInfo {
- // Abort cause types:
- enum Cause {
- // Cause is unspecified.
- CAUSE_UNSPECIFIED = 0;
- // Aborted due to unknown network.
- // The reachability analysis cannot proceed because the user does not have
- // access to the host project's network configurations, including firewall
- // rules and routes. This happens when the project is a service project and
- // the endpoints being traced are in the host project's network.
- UNKNOWN_NETWORK = 1;
- // Aborted because the IP address(es) are unknown.
- UNKNOWN_IP = 2;
- // Aborted because no project information can be derived from the test
- // input.
- UNKNOWN_PROJECT = 3;
- // Aborted because the user lacks the permission to access all or part of
- // the network configurations required to run the test.
- PERMISSION_DENIED = 4;
- // Aborted because no valid source endpoint is derived from the input test
- // request.
- NO_SOURCE_LOCATION = 5;
- // Aborted because the source and/or destination endpoint specified in
- // the test are invalid. The possible reasons that an endpoint is
- // invalid include: malformed IP address; nonexistent instance or
- // network URI; IP address not in the range of specified network URI; and
- // instance not owning the network interface in the specified network.
- INVALID_ARGUMENT = 6;
- // Aborted because traffic is sent from a public IP to an instance without
- // an external IP.
- NO_EXTERNAL_IP = 7;
- // Aborted because none of the traces matches destination information
- // specified in the input test request.
- UNINTENDED_DESTINATION = 8;
- // Aborted because the number of steps in the trace exceeding a certain
- // limit which may be caused by routing loop.
- TRACE_TOO_LONG = 9;
- // Aborted due to internal server error.
- INTERNAL_ERROR = 10;
- // Aborted because the source endpoint could not be found.
- SOURCE_ENDPOINT_NOT_FOUND = 11;
- // Aborted because the source network does not match the source endpoint.
- MISMATCHED_SOURCE_NETWORK = 12;
- // Aborted because the destination endpoint could not be found.
- DESTINATION_ENDPOINT_NOT_FOUND = 13;
- // Aborted because the destination network does not match the destination
- // endpoint.
- MISMATCHED_DESTINATION_NETWORK = 14;
- // Aborted because the test scenario is not supported.
- UNSUPPORTED = 15;
- }
- // Causes that the analysis is aborted.
- Cause cause = 1;
- // URI of the resource that caused the abort.
- string resource_uri = 2;
- // List of project IDs that the user has specified in the request but does
- // not have permission to access network configs. Analysis is aborted in this
- // case with the PERMISSION_DENIED cause.
- repeated string projects_missing_permission = 3;
- }
- // Details of the final state "drop" and associated resource.
- message DropInfo {
- // Drop cause types:
- enum Cause {
- // Cause is unspecified.
- CAUSE_UNSPECIFIED = 0;
- // Destination external address cannot be resolved to a known target. If
- // the address is used in a Google Cloud project, provide the project ID
- // as test input.
- UNKNOWN_EXTERNAL_ADDRESS = 1;
- // A Compute Engine instance can only send or receive a packet with a
- // foreign IP address if ip_forward is enabled.
- FOREIGN_IP_DISALLOWED = 2;
- // Dropped due to a firewall rule, unless allowed due to connection
- // tracking.
- FIREWALL_RULE = 3;
- // Dropped due to no routes.
- NO_ROUTE = 4;
- // Dropped due to invalid route. Route's next hop is a blackhole.
- ROUTE_BLACKHOLE = 5;
- // Packet is sent to a wrong (unintended) network. Example: you trace a
- // packet from VM1:Network1 to VM2:Network2, however, the route configured
- // in Network1 sends the packet destined for VM2's IP addresss to Network3.
- ROUTE_WRONG_NETWORK = 6;
- // Packet with internal destination address sent to the internet gateway.
- PRIVATE_TRAFFIC_TO_INTERNET = 7;
- // Instance with only an internal IP address tries to access Google API and
- // services, but private Google access is not enabled.
- PRIVATE_GOOGLE_ACCESS_DISALLOWED = 8;
- // Instance with only an internal IP address tries to access external hosts,
- // but Cloud NAT is not enabled in the subnet, unless special configurations
- // on a VM allow this connection.
- NO_EXTERNAL_ADDRESS = 9;
- // Destination internal address cannot be resolved to a known target. If
- // this is a shared VPC scenario, verify if the service project ID is
- // provided as test input. Otherwise, verify if the IP address is being
- // used in the project.
- UNKNOWN_INTERNAL_ADDRESS = 10;
- // Forwarding rule's protocol and ports do not match the packet header.
- FORWARDING_RULE_MISMATCH = 11;
- // Forwarding rule does not have backends configured.
- FORWARDING_RULE_NO_INSTANCES = 12;
- // Firewalls block the health check probes to the backends and cause
- // the backends to be unavailable for traffic from the load balancer.
- // For more details, see [Health check firewall
- // rules](https://cloud.google.com/load-balancing/docs/health-checks#firewall_rules).
- FIREWALL_BLOCKING_LOAD_BALANCER_BACKEND_HEALTH_CHECK = 13;
- // Packet is sent from or to a Compute Engine instance that is not in a
- // running state.
- INSTANCE_NOT_RUNNING = 14;
- // The type of traffic is blocked and the user cannot configure a firewall
- // rule to enable it. See [Always blocked
- // traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for
- // more details.
- TRAFFIC_TYPE_BLOCKED = 15;
- // Access to Google Kubernetes Engine cluster master's endpoint is not
- // authorized. See [Access to the cluster
- // endpoints](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints)
- // for more details.
- GKE_MASTER_UNAUTHORIZED_ACCESS = 16;
- // Access to the Cloud SQL instance endpoint is not authorized.
- // See [Authorizing with authorized
- // networks](https://cloud.google.com/sql/docs/mysql/authorize-networks) for
- // more details.
- CLOUD_SQL_INSTANCE_UNAUTHORIZED_ACCESS = 17;
- // Packet was dropped inside Google Kubernetes Engine Service.
- DROPPED_INSIDE_GKE_SERVICE = 18;
- // Packet was dropped inside Cloud SQL Service.
- DROPPED_INSIDE_CLOUD_SQL_SERVICE = 19;
- // Packet was dropped because there is no peering between the originating
- // network and the Google Managed Services Network.
- GOOGLE_MANAGED_SERVICE_NO_PEERING = 20;
- // Packet was dropped because the Cloud SQL instance has neither a private
- // nor a public IP address.
- CLOUD_SQL_INSTANCE_NO_IP_ADDRESS = 21;
- }
- // Cause that the packet is dropped.
- Cause cause = 1;
- // URI of the resource that caused the drop.
- string resource_uri = 2;
- }
- // For display only. Metadata associated with a Google Kubernetes Engine (GKE)
- // cluster master.
- message GKEMasterInfo {
- // URI of a GKE cluster.
- string cluster_uri = 2;
- // URI of a GKE cluster network.
- string cluster_network_uri = 4;
- // Internal IP address of a GKE cluster master.
- string internal_ip = 5;
- // External IP address of a GKE cluster master.
- string external_ip = 6;
- }
- // For display only. Metadata associated with a Cloud SQL instance.
- message CloudSQLInstanceInfo {
- // Name of a Cloud SQL instance.
- string display_name = 1;
- // URI of a Cloud SQL instance.
- string uri = 2;
- // URI of a Cloud SQL instance network or empty string if the instance does
- // not have one.
- string network_uri = 4;
- // Internal IP address of a Cloud SQL instance.
- string internal_ip = 5;
- // External IP address of a Cloud SQL instance.
- string external_ip = 6;
- // Region in which the Cloud SQL instance is running.
- string region = 7;
- }
|