Connect Fabric Cloud Router To Metal VLAN
Establish a direct layer 2 connection between your Fabric Cloud Router and your Metal Interconnection.
Step 1: Create Metal Interconnection
On the Metal documentation site, you will find several examples under "Request a new interconnection for the organization." Use the example payload "SharePortVCVlanCreateInput" that has type = shared_port_vlan and an array of VLANs. Provide one or two (Redundant) VLANs and create a Metal Interconnection. You will get an authorization_code in the response to use your Metal Interconnection.
Step 2: Create Fabric Cloud Router
If you do not have a Fabric Cloud Router, Create a Fabric Cloud Router.
If you already have a Fabric Cloud Router, find it by calling Get Specified Fabric Cloud Router or Retrieve Fabric Cloud Routers.
Step 3: Create Connection
1. Authenticate
Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication.
Refer to Generating Client ID and Client Secret under the Getting Access Token section for instructions on how to create client ID and client secret and refer to Requesting Access and Refresh tokens section for instructions on how to call Oauth API to validate and authenticate your credentials.
If you are unaware of your user credentials for Equinix Fabric, contact your local Equinix Service Desk.
2. Establish connection
Use the POST /fabric/v4/connections API request to create a connection.
POST /fabric/v4/connections | |
---|---|
Method | POST |
Endpoint | /fabric/v4/connections |
Headers | Authorization, Content-Type |
Path Parameters | Not applicable |
Query Parameters | Not applicable |
Body Parameters | type, name, order, bandwidth, project, redundancy, aSide, zSide, notifications |
Use the Retrieve Pricing API request to retrieve connection price estimate.
Sample curl request to create a PRIMARY connection from your FCR to a Metal Interconnection
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '
{
"type": "IP_VC",
"name": "fcr2metal",
"bandwidth": 50,
"aSide": {
"accessPoint": {
"type": "CLOUD_ROUTER",
"router": {
"uuid": "<fcr uuid>"
}
}
}
,
"zSide": {
"accessPoint": {
"type": "METAL_NETWORK",
"authenticationKey":"<key>"
}
},
"notifications": [
{
"type": "ALL",
"emails": [ "x@x.com"
]
}
]
}'
Sample curl request to create a SECONDARY connection from your FCR to a Metal Interconnection with two VLANs
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '
{
"type": "IP_VC",
"name": "fcr2metal",
"bandwidth": 50,
"redundancy": {
"group": "82f0b34c-3994-4c8a-81ff-7063faa7a9e2",
"priority": "SECONDARY"
},
"aSide": {
"accessPoint": {
"type": "CLOUD_ROUTER",
"router": {
"uuid": "<fcr uuid>"
}
}
},
"zSide": {
"accessPoint": {
"type": "METAL_NETWORK",
"authenticationKey":"<key>"
}
},
"notifications": [
{
"type": "ALL",
"emails": [ "x@x.com"
]
}
]
}'
Body parameters
Parameter | Description |
---|---|
type string REQUIRED | Connection type.
|
name string REQUIRED | Connection name. Applicable values:
|
order object OPTIONAL | Order details. |
purchaseOrderNumber string OPTIONAL | Subscriber's purchase order identifier. Example: 1-129105284100 |
bandwidth integer REQUIRED | Connection speed in Mbps. Applicable values:
|
redundancy object CONDITIONAL | Connection redundancy configuration. |
group string CONDITIONAL | Unique Id of the redundancy group. This is only required for secondary connections. If you are creating a secondary connection, enter the group of the PRIMARY. You can find the group of the primary connection by calling Get Specified Connection or by checking the "group" field in the response you receive when creating PRIMARY connection. Example: 5c0e9384-aa79-4ec9-b7a2-557f8c307292 |
priority string CONDITIONAL | Whether the connection is PRIMARY or SECONDARY. Don't provide a redundancy group for a PRIMARY connection. Applicable value:
|
aSide object REQUIRED | Source definition. |
accessPoint object REQUIRED | Connection endpoint configuration from the A-Side. |
type string REQUIRED | Connection endpoint type.
|
router object REQUIRED | Fabric Cloud Router details. |
uuid string REQUIRED | Unique Id of the Fabric Cloud Router. Example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
zSide object REQUIRED | Destination port definition. |
accessPoint object REQUIRED | Connection endpoint configuration. |
type string REQUIRED | Connection endpoint type.
|
authenticationKey string REQUIRED | Provide the authorization_code you received when you created the Metal Interconnection. |
notifications array[object] REQUIRED | Notification settings for messages related to the asset configuration or its status. |
type string REQUIRED | Notification messages category. Applicable values:
|
emails array[string] REQUIRED | Email addresses of up to 12 recipients. Example: ["x@y.com","x@y.com"] |
If you get “Access Denied” error, contact your local Equinix Service Desk for Equinix Fabric Portal access.
Sample response - connection from a Fabric Cloud Router to a Metal Interconnection
{
"type": "IP_VC",
"href": "https://api.equinix.com/fabric/v4/connections/b19a5b96-4272-4b4f-b667-6bcca6ea8d17",
"uuid": "<uuid>",
"name": "fcr2metal-MI",
"operation": {
"providerStatus": "NOT_AVAILABLE",
"equinixStatus": "PROVISIONING"
},
"order": {
"billingTier": "Up to 50 MB"
},
"notifications": [
{
"type": "ALL",
"emails": [
"x@equinix.com"
]
}
],
"changeLog": {
"createdBy": "fabricamcrh1",
"createdByFullName": "fabric amcrh1",
"createdByEmail": "x@gmail.com",
"createdDateTime": "2024-05-20T03:26:59.739Z",
"updatedBy": "fabricamcrh1",
"updatedByFullName": "fabric amcrh1",
"updatedByEmail": "x@gmail.com",
"updatedDateTime": "2024-05-20T03:26:59.739Z"
},
"bandwidth": 50,
"redundancy": {
"group": "<uuid>",
"priority": "PRIMARY"
},
"aSide": {
"accessPoint": {
"type": "CLOUD_ROUTER",
"router": {
"href": "https://api.equinix.com/fabric/v4/routers/bc05f9c9-d5c9-4b9e-a54f-d63a18a452ed",
"uuid": "<uuid>",
"name": "fcr-mi"
}
}
},
"zSide": {
"accessPoint": {
"virtualNetwork": {
"uuid": "<uuid>"
},
"interconnection": {
"uuid": "<uuid>"
}
}
}
}
Response payload body description
Parameter | Description |
---|---|
href string | An absolute URL that returns the specified connection. Example: https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62 |
uuid string | Equinix-assigned connection identifier. Example: XXXXXXXXXXXXXXXXXXXXXXXXXX |
order object | Order information. |
billingTier string | Billing tier for connection bandwidth. Example: Up to 1 Gbps |
bandwidth string | Bandwidth. Example: Up to 1 Gbps |
redundancy object | Redundancy details. |
group string | Unique Id of the redundancy group. |
priority string | Whether the connection is PRIMARY or SECONDARY. |
project object | Project details. |
projectId string | Unique Id of the project. Example: 16799d66-ef43-445c-ba29-d17522XXXXXX |
aSide object | Source port definition. |
accessPoint object | Connection endpoint configuration from the A-side. |
type string | Connection endpoint type. Example: CLOUD_ROUTER |
router object | Router details. |
href string | An absolute URL of the router. Example: https://api.equinix.com/fabric/v4/routers/bc05f9c9-d5c9-4b9e-a54f-d63a18a452ed |
uuid string | Unique Id of the router. Example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
name string | Name of the router. Example: FCR-METAL |
zSide object | Destination port definition. |
accessPoint object | Connection endpoint configuration from the Z-side. |
virtualNetwork object | Virtual network details. Example: 888866-ef43-445c-ba29-d17522XXXXXX |
uuid string | Unique Id of the Metal VLAN associated to the Fabric connection. This can also be found by calling the Metal VLAN API. |
interconnection object | Interconnection details. |
uuid string | Unique Id of the Metal interconnection. Fabric recives this information when the user provides us the authorization code in the Fabric request. Example: 88889d66-ef43-445c-ba29-d17522XXXXXX |
location object REQUIRED | Connection endpoint location information. Applicable to SP type access points. |
metroCode string REQUIRED | Metropolitan area identifier. |
notifications array[object] | Notification settings for messages. |
type string | Notification messages category. Applicable values:
|
emails array[string] | Email addresses of up to 12 recipients. Example: ["x@y.com","x@y.com"] |
operation object | Connection operational data. |
equinixStatus string | Status of the connection on the Equinix side. Example: PROVISIONING |
providerStatus string | Status of the connection on the provider side. Example: NOT_AVAILABLE |
changeLog object | A permanent record of asset creation, modification, or deletion. |
createdBy string | Identity of the asset creator. Example: AverageJoe |
createdDateTime string | Asset creation timestamp in the IETF ISO 8601 extended date/time format: YYYY-MM-DDTHH:MM:SS.000+0000 Example: 2021-07-15T19:30:29.526Z |
Use the Get Specified Connection API request to monitor connection status.
equinixStatus attribute values | providerStatus attribute values | Description |
PENDING_INTERFACE_CONFIGURATION | NOT_AVAILABLE | You need to configure the connection. |
PROVISIONED | AVAILABLE | Connection is provisioned and available. |
Step 4: Configure Connection
Use Create Routing Protocol Instance or Create Routing Protocol Instances to add routing protocol definition to connection. You must add at least the Direct routing protocol details to the connection for it to be provisioned. BGP routing protocols allow you to connect to the Metal servers connected to the VLAN.