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 the 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
-
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.
-
Determine the a-side information. To get your Fabric port information, send a
GETrequest to the/fabric/v4/portsendpoint. You need the port UUID(s), the link protocol type, (DOT1Q or QINQ), If you are creating a redundant connection, choose both aPRIMARYport and aSECONDARYport. You need this information for the create connection request. -
Determine the z-side information. The Internet Access service profile is of type
IA_PROFILEand its ID is2d81829-0bf8-45d5-84e2-7289a553dbb6. To determine the metro location for your service, send aGETrequest to the/internetAccess/v2/ibxsendpoint 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.typeasCOLO -
Provide your port's UUID to
port.uuidIf 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
- linkProtocol.type as
-
If you are creating redundant connections, make two requests. One request should have your primary port and
redundancy.priorityset toPRIMARY, and the other your secondary port andredundancy.priorityset toSECONDARY.
Provide the Internet Access service profile in the zSide object, including:
accessPoint.typeasSP.profile.typeasIA_PROFILEprofile.uuidas32d81829-0bf8-45d5-84e2-7289a553dbb6metroCodeas the two letter metro code of the Internet Access metro you are connecting to.
Sample cURL Request:
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": "<redundancy_code>"
},
"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>"
}
}
},
"order": {
"purchaseOrderNumber": "<purchase_order_number>"
},
"notifications": [
{
"type": "ALL",
"emails": [
"<contact_email>"
]
}
]
}
The request 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 IPs
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.typefromSTATIC,DIRECT, orBGP. - When ordering your service using Equinix-owned (PA) IP addresses, set the
ipBlock.prefixLengthvalue to the size of the subnet you need.
Static Routing
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "<redundancy_code>",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
Direct Routing
Specify routingProtocol.type as DIRECT. More information is on the Direct Routing page.
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "DIRECT",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
}
}
],
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
}
}
],
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
BGP Routing
Specify your BGP configuration details in the routingProtocol object. Specifying which routes you want advertised to the Internet, FULL, DEFAULT, FULL_DEFAULT, or PARTIAL in routingProtocol.exportPolicy is required. More information is on the BGP Routing page.
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"customerAsn": <asn_number>,
"bgpAuthKey": "<bgp_auth_key",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
}
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
}
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
Ordering Service with Provider Independent IPs
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.typefromSTATIC,DIRECT, orBGP. - When ordering your service using your own IP addresses (PI), specify your subnets in
customerRoutes.prefix
Static Routing
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_subnet>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_subnet>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
Direct Routing
Specify routingProtocol.type as DIRECT and your peering information in the peering object. More information is on the Direct Routing page.
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "DIRECT",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_subnet>"
}
],
"peerings": [
{
"connection": {
"uuid": "<connection_uuid>"
},
"equinixPeerIps": [
"<peering_ip_address>"
],
"equinixVRRPIp": "<virtual_router_group_ip_address>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_subnet>"
}
],
"peerings": [
{
"connection": "<connection_uuid>",
"equinixPeerIps": [
"<peering_ip_address>"
],
"equinixVRRPIp": "<virtual_router_group_ip_address>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
BGP Routing
Specify your BGP configuration details in the routingProtocol object. Specifying which routes you want advertised to the Internet, FULL, DEFAULT, FULL_DEFAULT, or PARTIAL in routingProtocol.exportPolicy is required. More information is on the BGP Routing page.
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"customerAsn": <asn_number>,
"bgpAuthKey": "<bgp_auth_key",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
{
"prefix": "<your_ipv4_subnet>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"prefix": "<your_ipv6_subnet>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
Ordering Service with Mixed IPs
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.typefromSTATICorBGP. -
When ordering your service with both provider assigned and provider independent IP addresses:
- set the
ipBlock.prefixLengthvalue to the size of the subnet you need from Equinix (PA). - Specify your own IP address subnets in
customerRoutes.prefix(PI).
- set the
Static Routing
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "STATIC",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
},
"prefix": "<your_ipv4_subnet>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
},
"prefix": "<your_ipv6_subnet>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
BGP Routing
Specify your BGP configuration details in the routingProtocol object. Specifying which routes you want advertised to the Internet, FULL, DEFAULT, FULL_DEFAULT, or PARTIAL in routingProtocol.exportPolicy is required. More information is on the BGP Routing page.
Sample cURL Request:
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer <token>'
-d '{
"name": "string",
"description": "string",
"type": "redundancy_code",
"connections": [
"<connection_uuid>"
],
"routingProtocol": {
"type": "BGP",
"customerAsnRange": "<asn_range>",
"customerAsn": <asn_number>,
"bgpAuthKey": "<bgp_auth_key",
"exportPolicy": "<route_advertisement_code>",
"ipv4": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
},
"prefix": "<your_ipv4_subnet>"
}
]
},
"ipv6": {
"customerRoutes": [
{
"ipBlock": {
"prefixLength": <size_of_subnet>
},
"prefix": "<your_ipv6_subnet>"
}
]
}
},
"order": {
"purchaseOrder": {
"number": "<po_number>"
},
"referenceNumber": "<reference_number>",
"signature": {
"signatory": "<signatory_code>"
}
}
}'
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.