Conectando-se à nuvem com o Equinix Fabric via Terraform
-> NOTA: Consulte o [Equinix Fabric Para mais detalhes, consulte a documentação.
Equinix Fabric™ é um serviço de interconexão definido por software que permite que qualquer empresa se conecte. sua própria infraestrutura distribuído para a infraestrutura ou provedor de serviços de qualquer outra empresa em Platform Equinix em uma rede globalmente conectada. Este guia se concentra principalmente no estabelecimento de uma interconexão com um provedor de serviço de nuvem e como tirar proveito disso Módulos Terraform de conexão Equinix Fabric , Para mais detalhes e outras opções, você pode consultar a seção Referências abaixo.
Primeiros passos - Habilitando uma interconexão
Quer você esteja configurando uma arquitetura Multi-Cloud ou Nuvem Híbrida, o principal recurso que você precisará será... precisa definir é uma equinix_fabric_connection que Isso permitirá que a Equinix habilite uma interconexão em seu nome com o provedor de cloud especificado. No entanto, existem outros recursos necessários que devem ser configurados tanto na Equinix quanto na sua cloud. provedor para ter a interconexão funcionando. Abaixo, descrevemos essas etapas gerais usando Azure ExpressRoute como exemplo.
1. Habilitar a interconexão no provedor de cloud - Normalmente, isso implica na criação de um roteador de cloud .
e um recurso de interconexão (por exemplo, Google Cloud Router e conexão VLAN, Oracle FastConnect,
etc.). Para este exemplo, é necessário um azurerm_express_route_circuit
recurso no qual o provedor de serviços (ou seja, Equinix) deve ser especificado para gerar um
Chave de emparelhamento válida.
provider "azurerm" {
features {}
}
resource "azurerm_express_route_circuit" "example" {
name = "my-circuit"
resource_group_name = "my-resource-group"
location = "Germany West Central"
service_provider_name = "Equinix"
peering_location = "Frankfurt"
bandwidth_in_mbps = 100
sku {
tier = "Premium"
family = "UnlimitedData"
}
allow_classic_operations = false
}
2. Solicitar uma conexão Equinix Fabric - De um [ Equinix Fabric Porta / Dispositivo de Network Edge / Token de serviço Equinix / [Roteador Equinix Fabric Cloud para o ativo de interconexão virtual na cloud .
Neste exemplo, vamos estabelecer uma conexão a partir de um roteador na nuvem.
recurso). Observe que o valor de authorization_key deve ser o azurerm_express_route_circuit.example.service_key
(ou seja, a chave de emparelhamento mencionada acima).
provider "equinix" {}
data "equinix_fabric_service_profile" "azure" {
name = "Azure ExpressRoute"
filter {
property = "/name"
operator = "="
values = ["Azure ExpressRoute"]
}
}
resource "equinix_fabric_connection" "fcr2azure"{
name = "ConnectionName"
type = "IP_VC"
notifications{
type = "ALL"
emails = ["example@equinix.com","test1@equinix.com"]
}
bandwidth = azurerm_express_route_circuit.example.bandwidth_in_mbps
order {
purchase_order_number = "1-323292"
}
a_side {
access_point {
type = "CLOUD_ROUTER"
router {
uuid = "<cloud_router_uuid>"
}
}
}
z_side {
access_point {
type = "SP"
authentication_key = azurerm_express_route_circuit.example.service_key
peering_type = "PRIVATE"
profile {
type = "L2_PROFILE"
uuid = data.equinix_fabric_service_profile.azure.data.0.id
}
location {
metro_code = "SV"
}
}
}
}
3. Configurar BGP na cloud - Conhecido como peering de circuitos ou interface virtual, totalmente na nuvem. Os provedores de cloud oferecem um recurso para adicionar um peer BGP . Alguns detalhes comumente necessários que precisam ser São fornecidos:
- IP do roteador do cliente (o IP do seu roteador de destino para o qual o provedor de cloud deve enviar) tráfego).
- Endereço IP do roteador na nuvem (endereço IP do roteador virtual para enviar tráfego para a nuvem).
- ASN BGP do cliente (o Número do Sistema Autônomo do Protocolo de Roteamento de Fronteira do seu peer local). roteador).
Para este exemplo, precisamos criar um azurerm_express_route_circuit_peering onde os detalhes
É necessário definir tanto as conexões primárias quanto as secundárias.
resource "azurerm_express_route_circuit_peering" "example" {
express_route_circuit_name = azurerm_express_route_circuit.example.name
resource_group_name = "my-resource-group"
peering_type = "AzurePrivatePeering"
peer_asn = 100
primary_peer_address_prefix = "123.0.0.0/30"
secondary_peer_address_prefix = "123.0.0.4/30"
vlan_id = 300
bandwidth_in_mpbs = 50
}
4. Configurar BGP no lado da Equinix - Finalmente, o lado do cliente deve ser configurado da mesma forma.
informação. Como neste exemplo a origem da conexão é um Fabric Cloud Router, você pode
Aproveite o recurso equinix_fabric_routing_protocol para configurar o peering BGP na cloud.
roteador.
resource "equinix_fabric_routing_protocol" "direct"{
connection_uuid = equinix_fabric_connection.fcr2azure.id
type = "DIRECT"
name = "direct_rp"
direct_ipv4 {
equinix_iface_ip = "190.1.1.1/30"
}
direct_ipv6{
equinix_iface_ip = "190::1:1/126"
}
}
resource "equinix_fabric_routing_protocol" "bgp" {
depends_on = [
equinix_fabric_routing_protocol.direct
]
connection_uuid = equinix_fabric_connection.fcr2azure.id
type = "BGP"
name = "bgp_rp"
bgp_ipv4 {
customer_peer_ip = "190.1.1.2"
enabled = true
}
bgp_ipv6 {
customer_peer_ip = "190::1:2"
enabled = true
}
customer_asn = 4532
}
Módulos Terraform - O jeito mais fácil
Embora a configuração pareça semelhante no lado da Equinix, todos os recursos necessários para A conclusão da configuração dependerá de cada provedor de cloud . Isso requer que você tenha experiência prévia. conhecimento sobre como configurar a interconexão em cada plataforma. Alternativamente, você pode fazer o seguinte: vantagem dos Módulos Terraform do Equinix Fabric .
Os módulos do Terraform conteinerizam múltiplos recursos que são usados em conjunto em uma configuração. Com o [Módulo de exemplo de conexão do Azure com o Equinix Fabric Terraform Cloud Router 2 e o Módulo de Protocolos de Roteamento Terraform do Equinix Fabric você pode configurar tudo o que foi descrito acima definindo apenas três recursos.
O código abaixo é tudo o que você precisa para substituir completamente o exemplo acima:
# main.tf
provider "equinix" {}
provider "azurerm" {}
module "equinix-fabric-connection-azure" {
source = "equinix/fabric/equinix//examples/cloud-router-2-azure-connection"
# Connection Details
connection_name = "fcr_2_azure"
connection_type = "IP_VC"
notifications_type = "ALL"
notifications_emails = ["example@equinix.com","test1@equinix.com"]
purchase_order_number = "1-323292"
bandwidth = 50
aside_ap_type = "CLOUD_ROUTER"
aside_fcr_uuid = "<Primary Fabric Cloud router UUID>"
zside_ap_type = "SP"
zside_ap_profile_type = "L2_PROFILE"
zside_location = "SV"
zside_peering_type = "PRIVATE"
zside_fabric_sp_name = "Azure ExpressRoute"
# Azure details
azure_client_id = "<Azure Client Id>"
azure_client_secret = "<Azure Client Secret Value>"
azure_tenant_id = "<Azure Tenant Id>"
azure_subscription_id = "<Azure Subscription Id>"
azure_resource_name = "my-resource-group"
azure_location = "West US 2"
azure_service_key_name = "Test_Azure_Key"
azure_service_provider_name = "<Service Provider Name>"
azure_peering_location = "Silicon Valley Test"
azure_tier = "Standard"
azure_family = "UnlimitedData"
azure_environment = "PROD"
}
resource "azurerm_express_route_circuit_peering" "example" {
express_route_circuit_name = module.equinix-fabric-connection-azure.azurerm_express_route_circuit_name
resource_group_name = "my-resource-group"
peering_type = "AzurePrivatePeering"
peer_asn = 100
primary_peer_address_prefix = "123.0.0.0/30"
secondary_peer_address_prefix = "123.0.0.4/30"
vlan_id = 300
bandwidth_in_mpbs = 50
}
module "routing_protocols" {
source = "equinix/fabric/equinix//modules/routing-protocols"
connection_uuid = module.equinix-fabric-connection-azure.module_output
# Direct RP Details
direct_rp_name = "direct_rp"
direct_equinix_ipv4_ip = "190.1.1.1/30"
direct_equinix_ipv6_ip = "190::1:1/126"
# BGP RP Details
bgp_rp_name = "bgp_rp"
bgp_customer_asn = 4532
bgp_customer_peer_ipv4 = "190.1.1.2"
bgp_enabled_ipv4 = true
bgp_customer_peer_ipv6 = var.bgp_customer_peer_ipv6
bgp_enabled_ipv6 = "190::1:2"
}
- Consulte Exemplos de conectividade Equinix na página de módulos Fabric Para obter informações sobre mais casos de uso do Fabric que são suportados pelos módulos Terraform do Fabric,
Se você não encontrar um para o seu provedor de cloud, você pode abrir um ticket no [repositório github com sua solicitar.
Referências
- Consulte os guias de instruções da API para obter mais informações. Detalhes sobre os requisitos de cada provedor de serviço de nuvem .
- Verifique os [ provedores disponíveis Na Platform Equinix, encontre o provedor de serviços que você precisa.