Skip to main content

Ordering Internet Access with a Fabric Port

Equinix Internet Access (EIA) provides blended internet access using multiple tier-1 Internet Service Providers (ISPs) and Equinix Internet Exchanges (IX) to deliver high availability, reliability and speed.

  • The Fabric Connection between your Fabric Port and the Equinix Internet Access service profile is provided free of charge.
  • When you deprovision your Internet Access service instance, the associated Fabric connection is also deprovisioned.
  • In case there's an issue with provisioning an Internet Access service instance, the associated Fabric connection is deprovisioned automatically.

Equinix Internet Access with Fabric is available to organizations onboarded to Equinix Identity and Access Management, and the account used to send API requests must have the Equinix Fabric Manager role.

If your organization hasn't been onboarded to Equinix Identity and Access Management, you can order Equinix Internet Access with Dedicated Port.

Prerequisites

  1. Authenticate - Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication. Refer to API Authentication for instructions on how to call the OAuth API to validate and authenticate your credentials.

  2. Determine the A-side information. To get your Fabric port information, send a GET request to the /fabric/v4/ports endpoint. You need the port UUID(s), the link protocol type, (DOT1Q or QINQ). If you are creating a redundant connection, choose both a PRIMARY port and a SECONDARY port. You need this information for the create connection request.

  3. Determine the Z-side information. The Internet Access service profile is of type IA_PROFILE and its ID is 32d81829-0bf8-45d5-84e2-7289a553dbb6. To determine the metro location for your service, send a GET request to the /internetAccess/v2/ibxs endpoint to find the locations where Internet Access is available. You need this information for ordering your Internet Access service.

Creating the Internet Access Connection

To create the connection for your Internet Access service, send a POST request to the /fabric/v4/connections endpoint. The connection type is IA_VC.

Provide your port information in the aSide object, including:

  • accessPoint.type as COLO

  • Provide your port's UUID to port.uuid

    If you are connecting from a Dot1q port:

    • linkProtocol.type as DOT1Q
    • Provide the VLAN ID to linkProtocol.vlanTag

    If you are connecting from a QinQ port:

    • linkProtocol.type as QINQ
    • Provide the inner tag ID to linkProtocol.vlanCTag
    • Provide the outer tag ID to linkProtocol.vlanSTag
  • If you are creating redundant connections, make two requests. One request should have your primary port and redundancy.priority set to PRIMARY, and the other your secondary port and redundancy.priority set to SECONDARY and you should specify redundancy.group as the UUID of the first connection.

Provide the Internet Access service profile in the zSide object, including:

  • accessPoint.type as SP.
  • profile.type as IA_PROFILE
  • profile.uuid as 32d81829-0bf8-45d5-84e2-7289a553dbb6
  • metroCode as the two letter metro code of the Internet Access metro you are connecting to.

Sample cURL Requests:

Primary connection example
curl -X POST 'https://api.equinix.com/fabric/v4/connections' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"type": "IA_VC",
"name": "<your_connection_name>",
"bandwidth": <connection_speed>,
"redundancy": {
"priority": "PRIMARY"
},
"aSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "<your_port_uuid>"
},
"linkProtocol": {
"type": "DOT1Q",
"vlanTag": <vlan_id>
}
}
},
"zSide": {
"accessPoint": {
"type": "SP",
"profile": {
"type": "IA_PROFILE",
"uuid": "32d81829-0bf8-45d5-84e2-7289a553dbb6"
},
"location": {
"metroCode": "<metro_code>"
}
}
},
"project": {
"projectId": "<project_id>"
},
"order": {
"purchaseOrderNumber": "<purchase_order_number>"
},
"notifications": [
{
"type": "ALL",
"emails": [
"<contact_email>"
]
}
]
}'
Secondary connection example
curl -X POST 'https://api.equinix.com/fabric/v4/connections' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"type": "IA_VC",
"name": "<your_connection_name>",
"bandwidth": <connection_speed>,
"redundancy": {
"priority": "SECONDARY",
"group": "<primary_connection_uuid>"
},
"aSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "<your_port_uuid>"
},
"linkProtocol": {
"type": "DOT1Q",
"vlanTag": <vlan_id>
}
}
},
"zSide": {
"accessPoint": {
"type": "SP",
"profile": {
"type": "IA_PROFILE",
"uuid": "32d81829-0bf8-45d5-84e2-7289a553dbb6"
},
"location": {
"metroCode": "<metro_code>"
}
}
},
"project": {
"projectId": "<project_id>"
},
"order": {
"purchaseOrderNumber": "<purchase_order_number>"
},
"notifications": [
{
"type": "ALL",
"emails": [
"<contact_email>"
]
}
]
}'
Important

The response contains a uuid that is your Internet Access service's connection ID. You must have this connection UUID for ordering the Internet Access service.

Ordering Service with Provider Assigned IP Block

To order your Internet Access service, send a POST request to the /internetAccess/v2/services endpoint.

For redundancy, if you created two connections for your service, set type to DUAL, and provide both connection IDs to the connections array. If you created a single connection for your service, set type to SINGLE and provide the connection ID to the connections array.

In the routingProtocol object specify:

  • Your routingProtocol.type from STATIC, DIRECT, or BGP.
  • When ordering your service using Equinix-owned (PA) IP Blocks, set the ipBlock.prefixLength value to the size of the IP Block you need.
note

When ordering EIA service instance located in one of our IBX data centers in the APAC region, make sure to add the addressingPlans and questions information to the ipBlock object in case of PA IPv4 Block. See the API reference for more information.

Static Routing

Documentation about the static routing can be found here.

Sample cURL Requests:

Single Static Service in APAC region example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>,
"addressingPlans": [
{
"afterThreeMonths": <number_of_ip_addresses_used_after_three_months>,
"immediate": <number_of_ip_addresses_used_instantly>,
"purpose": "<purpose_of_ip_block>",
"size": <number_of_ip_addresses_requested>
}
],
"questions": [
{
"answer": "YES",
"type": "PRIVATE_SPACE_CONSIDERED"
},
{
"answer": "NO",
"type": "REFUSED_PREVIOUSLY"
},
{
"answer": "NO",
"type": "RETURNING_ADDRESS_SPACE"
}
]
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'
Dual Static Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "DUAL",
"connections": [
"<connection_uuid1>", "<connection_uuid2>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

Direct Routing

Documentation about the direct routing can be found here.

Sample cURL Requests:

Single Direct Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "DIRECT",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'
Dual Direct Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "DUAL",
"connections": [
"<connection_uuid1>", "<connection_uuid2>"
],
"routingProtocol": {
"type": "DIRECT",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

BGP Routing

Specify your BGP configuration details in the routingProtocol object:

  • which routes you want advertised to the Internet, FULL, DEFAULT, FULL_DEFAULT, or PARTIAL in routingProtocol.exportPolicy.
  • provide customer ASN range BITS_16 for 16-bit ASN or BITS_32 for 32-bit ASN in routingProtocol.customerAsnRange.
  • provide bgpAuthKey in routingProtocol.bgpAuthKey if needed.

Documentation about BGP routing can be found here.

Sample cURL Requests:

Single BGP Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "My Internet Access Service",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"bgpAuthKey": "<bgp_auth_key>",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'
Dual BGP Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "DUAL",
"connections": [
"<connection_uuid1>", "<connection_uuid2>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"bgpAuthKey": "<bgp_auth_key>",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

Ordering Service with Provider Independent IP Block

When ordering your service using your own IP Block (PI), specify it in customerRoutes.prefix

Static Routing

Sample cURL Requests:

Single Static Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_ip_block>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_ip_block>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'
Dual Static Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "DUAL",
"connections": [
"<connection_uuid1>", "<connection_uuid2>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_ip_block>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_ip_block>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

Direct Routing

Specify which IPs from your IP Block can be used for peering purpose in the peering object. For Single service type please provide only one IP address in the equinixPeerIps array. For Dual service type please provide two IP addresses in the equinixPeerIps array and VRRP IP address in equinixVRRPIp field.

Sample cURL Requests:

Single Direct Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "DIRECT",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_ip_block>"
}
],
"peerings": [
{
"equinixPeerIps": [
"<peering_ip_address>"
]
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_ip_block>"
}
],
"peerings": [
{
"equinixPeerIps": [
"<peering_ip_address>"
]
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'
Dual Direct Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "DUAL",
"connections": [
"<connection_uuid1>", "<connection_uuid2>"
],
"routingProtocol": {
"type": "DIRECT",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_ip_block>"
}
],
"peerings": [
{
"equinixPeerIps": [
"<peering_ip_address>",
"<peering_ip_address>"
],
"equinixVRRPIp": "<virtual_router_group_ip_address>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_ip_block>"
}
],
"peerings": [
{
"equinixPeerIps": [
"<peering_ip_address>",
"<peering_ip_address>"
],
"equinixVRRPIp": "<virtual_router_group_ip_address>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

BGP Routing

Sample cURL Requests:

Single BGP Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"bgpAuthKey": "<bgp_auth_key>",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_ip_block>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_ip_block>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'
Dual BGP Service example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \ 
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "DUAL",
"connections": [
"<connection_uuid1>", "<connection_uuid2>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"bgpAuthKey": "<bgp_auth_key>",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_ip_block>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_ip_block>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

Ordering Service with PA and PI IP Blocks

When ordering your service with both provider assigned (PA) and provider independent (PI) IP Blocks specify two or more customer route objects with proper fields:

  • ipBlock.prefixLength in case of Equinix provided IP Block (PA).
  • customerRoutes.prefix in case of using your own IP Block (PI).
Important

Multiple IP Blocks can be requested only with Static and BGP Routing protocol.

Sample cURL Requests:

Provider Assigned and Provider Independent IP Blocks example
curl -X POST 'https://api.equinix.com/internetAccess/v2/services' \
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"name": "<your_service_name>",
"type": "SINGLE",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv4_ip_block>
}
},
{
"prefix": "<your_ipv4_ip_block>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_ipv6_ip_block>
}
},
{
"prefix": "<your_ipv6_ip_block>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<purchase_order_number>"
}
}
}'

Monitoring Your Requests

To view the status of your create connection request, send a GET request to the fabric/v4/connections/{connectionId} endpoint.

To view the details of your Internet Access service, use the internetAccess/v2/services/{serviceId} endpoint.

If there is an issue with provisioning your Internet Access service instance, the associated connection is deprovisioned automatically.

Was this page helpful?