Utilizza l'autenticazione MD5

Il router Cloud utilizza il protocollo BGP (Border Gateway Protocol) per lo scambio di route tra una rete Virtual Private Cloud (VPC) e una rete peer. Per impostazione predefinita, le sessioni BGP del router Cloud non sono autenticate. Tuttavia, quando usi il router Cloud con alcuni prodotti, puoi facoltativamente configurare le sessioni BGP per utilizzare l'autenticazione MD5.

I prodotti che possono utilizzare l'autenticazione MD5 includono:

Puoi anche utilizzare l'autenticazione MD5 con appliance virtuali di rete di terze parti. Per ulteriori informazioni, consulta la sezione relativa all'appliance router nella documentazione del Network Connectivity Center.

Quando configuri una sessione per l'utilizzo dell'autenticazione MD5, fornisci una chiave condivisa segreta, ovvero una chiave che utilizzi per configurare il router Cloud e di nuovo quando configuri il tuo router peer. Dopo aver completato i passaggi di configurazione richiesti, il router Cloud utilizza tale chiave per autenticare il peer BGP. Il router Cloud applica l'autenticazione MD5 utilizzando il modello descritto in RFC 2385.

Puoi aggiungere l'autenticazione MD5 quando crei un peer. Puoi anche aggiungere l'autenticazione a una sessione esistente, modificare la chiave utilizzata da una sessione o rimuovere l'autenticazione.

Per configurare l'autenticazione MD5, devi utilizzare l'interfaccia a riga di comando o l'API Google Cloud.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  4. Installa e inizializza l'interfaccia a riga di comando di Google Cloud.
  5. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  7. Installa e inizializza l'interfaccia a riga di comando di Google Cloud.
  1. Se utilizzi l'interfaccia a riga di comando di Google Cloud, imposta l'ID progetto eseguendo questo comando. Le istruzioni gcloud in questa pagina presuppongono che tu abbia impostato il tuo ID progetto.
    gcloud config set project PROJECT_ID
        
  1. Verifica che l'ID sia stato impostato eseguendo questo comando:
    gcloud config list --format='text(core.project)'
        

Crea una sessione che utilizza l'autenticazione

Per alcuni prodotti per la connettività di rete, puoi configurare un peer BGP per utilizzare l'autenticazione MD5 durante la creazione della risorsa. Questi prodotti includono VPN ad alta disponibilità e Dedicated Interconnect.

Per saperne di più, consulta le seguenti sezioni:

Se stai creando un collegamento VLAN Partner Interconnect di livello 2, crea prima il collegamento, quindi aggiorna il peer BGP per aggiungere l'autenticazione MD5. Per informazioni su come aggiungere l'autenticazione durante l'aggiornamento di una sessione BGP, consulta la sezione seguente. Se hai una connessione di livello 3, contatta il tuo fornitore di servizi per le istruzioni.

Aggiungi l'autenticazione a una sessione esistente

Se vuoi aggiungere l'autenticazione a un peer BGP esistente, utilizza una delle seguenti procedure. Quando aggiungi l'autenticazione, assicurati che la chiave che utilizzi sia identica a quella utilizzata dal router peer.

gcloud

Per aggiornare la sessione utilizzando l'interfaccia a riga di comando gcloud, utilizza il comando gcloud beta compute routers update-bgp-peer:

  gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

Sostituisci i seguenti valori:

  • ROUTER_NAME: nome del router Cloud
  • PEER_NAME: nome del peer BGP
  • REGION: l'area geografica di Google Cloud
  • SECRET_KEY: la chiave di autenticazione MD5 segreta

API

Per aggiornare la sessione utilizzando l'API, utilizza il metodo compute.routers.patch. Quando utilizzi questo metodo per aggiungere l'autenticazione alla sessione, la tua richiesta deve eseguire due operazioni:

  • Aggiungi una voce per la chiave nell'array md5AuthenticationKeys. Quando aggiungi la voce, fornisci sia un nome che un valore per la chiave.
  • Aggiorna l'array bgpPeers per includere un valore per il campo md5AuthenticationKeyName. Questo campo fa riferimento alla chiave in base al nome.

Quando esegui l'applicazione di patch all'array md5AuthenticationKeys, devi fornire name ad ogni elemento nell'array, a meno che tu non voglia rimuovere alcuni elementi. Tuttavia, non è necessario fornire un valore per ogni campo key dell'elemento. Se ometti questo valore, il router Cloud conserva il valore precedente utilizzato. Questo comportamento è progettato per proteggere la segretezza dei tasti. Differisce dagli altri metodi di applicazione delle patch, che in genere richiedono la specifica di un valore per ogni campo in un elemento array.

Quando applichi l'array bgpPeers, devi fornire valori per ogni campo in ogni elemento (a meno che tu non voglia rimuovere alcuni peer o alcuni valori).

Ad esempio, supponiamo che il router Cloud abbia due peer, uno che utilizza l'autenticazione MD5 e uno che non lo fa. Se vuoi lasciare invariato il primo peer, ma aggiungere l'autenticazione MD5 al secondo peer, utilizza una richiesta simile alla seguente.

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME_1",
      },
      {
        "name": "KEY_NAME_2",
        "key": "SECRET_KEY"
      }
    ],
    "bgpPeers": [
      {
        "name": "PEER_NAME_1",
        "md5AuthenticationKeyName": "KEY_NAME_1",
        "interfaceName": "INTERFACE_NAME_1",
        "ipAddress": IP_ADDRESS_1",
        "peerIpAddress": PEER_IP_ADDRESS_1",
        "peerAsn": PEER_ASN_1"
      },
      {
        "name": "PEER_NAME_2",
        "md5AuthenticationKeyName": "KEY_NAME_2",
        "interfaceName": "INTERFACE_NAME_2",
        "ipAddress": IP_ADDRESS_2",
        "peerIpAddress": PEER_IP_ADDRESS_2",
        "peerAsn": PEER_ASN_2"
      }
    ],
  }
 

Sostituisci i seguenti valori:

  • PROJECT_ID: il progetto che contiene il router Cloud
  • REGION: l'area geografica di Google Cloud
  • ROUTER_NAME: nome del router Cloud
  • KEY_NAME_1: il nome della chiave attualmente in uso (da PEER_NAME_1)
  • KEY_NAME_2: il nome della nuova chiave che vuoi aggiungere per PEER_NAME_2. Prendi nota del nome. Se vuoi apportare modifiche in un secondo momento utilizzando l'API, devi conoscere il nome.
  • SECRET_KEY: la chiave di autenticazione MD5 segreta che stai aggiungendo per PEER_NAME_2
  • PEER_NAME_1: nome del peer BGP che non cambierà
  • INTERFACE_NAME_1: nome dell'interfaccia della sessione di peering BGP che non cambia
  • IP_ADDRESS_1: indirizzo IP del router Cloud (per il peer che non cambierà)
  • PEER_IP_ADDRESS_1: l'indirizzo IP del peer che non cambia
  • PEER_ASN_1: il numero di sistema autonomo BGP (ASN) per il peer che non cambia
  • PEER_NAME_2: nome del peer BGP che vuoi aggiornare in modo che utilizzi l'autenticazione MD5
  • INTERFACE_NAME_2: nome dell'interfaccia della sessione di peering BGP
  • IP_ADDRESS_2: l'indirizzo IP del router Cloud
  • PEER_IP_ADDRESS_2: indirizzo IP del router peer
  • PEER_ASN_2: numero di sistema autonomo BGP (ASN) per questo peer BGP

Aggiornare la chiave di autenticazione

Se devi modificare la chiave utilizzata dal router Cloud per una sessione di peering, esegui una delle seguenti procedure. Quando aggiorni la chiave sul router Cloud, assicurati che la chiave che utilizzi sia identica a quella utilizzata dal router peer.

gcloud

Per aggiornare la sessione, utilizza il comando gcloud beta compute routers update-bgp-peer.

  gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --md5-authentication-key=SECRET_KEY
 

Sostituisci i seguenti valori:

  • ROUTER_NAME: nome del router Cloud
  • PEER_NAME: nome del peer BGP
  • REGION: l'area geografica di Google Cloud
  • SECRET_KEY: la nuova chiave di autenticazione MD5 segreta che vuoi utilizzare

API

Per aggiornare la sessione, utilizza il metodo compute.routers.patch. Ad esempio, usa una richiesta simile alla seguente.

Questo esempio sostituisce l'intero array del peer, non solo il peer specifico identificato. Ciò significa che vengono rimossi tutti i peer tranne PEER_NAME. Rimuove tutte le chiavi tranne KEY_NAME.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
      {
        "name": "KEY_NAME"
      }
    ],
    "bgpPeers": [
      {
        "name": "PEER_NAME",
        "md5AuthenticationKeyName": "KEY_NAME",
        "interfaceName": "INTERFACE_NAME",
        "ipAddress": IP_ADDRESS",
        "peerIpAddress": PEER_IP_ADDRESS",
        "peerAsn": PEER_ASN"
      }
    ],
  }
 

Sostituisci i seguenti valori:

  • PROJECT_ID: il progetto che contiene il router Cloud
  • REGION: l'area geografica di Google Cloud
  • ROUTER_NAME: nome del router Cloud
  • KEY_NAME: nome della chiave che vuoi aggiornare; ogni volta che utilizzi l'autenticazione MD5 usando l'API, devi fare riferimento alla chiave tramite il suo nome
  • UPDATED_SECRET_KEY: la nuova chiave di autenticazione MD5 segreta
  • PEER_NAME: nome del peer BGP
  • INTERFACE_NAME: nome dell'interfaccia della sessione di peering BGP
  • IP_ADDRESS: l'indirizzo IP del router Cloud
  • PEER_IP_ADDRESS: indirizzo IP del router peer
  • PEER_ASN: numero di sistema autonomo BGP (ASN) per questo peer BGP

Controlla lo stato dell'autenticazione

Per controllare lo stato dell'autenticazione MD5, procedi nel seguente modo. Vedi anche Visualizzare i dettagli del router Cloud.

Per configurare il monitoraggio continuo delle sessioni BGP, utilizza Cloud Logging. Il logging registra informazioni sullo stato di autenticazione MD5 nell'evento BGP, che fa parte del log delle informazioni.

gcloud

Per verificare la sessione utilizzando l'interfaccia a riga di comando gcloud, utilizza il comando gcloud beta compute routers get-status.

  gcloud beta compute routers get-status ROUTER_NAME \
     --project=PROJECT \
     --region=REGION \
 

Sostituisci i seguenti valori:

  • ROUTER_NAME: nome del router Cloud
  • PROJECT: il nome del progetto
  • REGION: l'area geografica di Google Cloud

L'output include l'oggetto result.bgpPeerStatus[], che contiene informazioni sulle sessioni BGP del router Cloud. I dati su ogni sessione includono i seguenti due campi:

  • md5AuthEnabled: un campo booleano che indica se l'autenticazione MD5 è abilitata per la sessione
  • statusReason: un campo che descrive lo stato della sessione

API

Utilizza il metodo routers.getRouterStatus:

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME/getRouterStatus

Sostituisci quanto segue:

  • PROJECT_ID: il progetto che contiene il router Cloud
  • REGION: area geografica in cui si trova il router Cloud
  • ROUTER_NAME: nome del router Cloud

L'output include informazioni su ogni sessione BGP. I dati relativi a ogni sessione includono i seguenti due campi:

  • md5AuthEnabled: un campo booleano che indica se l'autenticazione MD5 è abilitata per la sessione
  • statusReason: un campo che descrive lo stato della sessione. Questo campo viene visualizzato solo quando si verifica un problema con l'autenticazione MD5. In questo caso, il valore del campo è MD5_AUTH_INTERNAL_PROBLEM.

Rimuovere l'autenticazione da una sessione

Se vuoi rimuovere l'autenticazione MD5 da una sessione, utilizza una delle seguenti procedure.

gcloud

Per rimuovere l'autenticazione MD5, utilizza il comando gcloud beta compute routers update-bgp-peer:

   gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --clear-md5-authentication-key

Sostituisci i seguenti valori:

  • ROUTER_NAME: nome del router Cloud
  • PEER_NAME: nome del peer BGP
  • REGION: l'area geografica di Google Cloud

API

Per rimuovere l'autenticazione MD5, utilizza il metodo compute.routers.patch.

Quando rimuovi l'autenticazione utilizzando l'API, l'aggiornamento deve eseguire due operazioni:

  • Aggiorna l'array md5AuthenticationKeys
  • Rimuovi il valore md5AuthenticationKey dalla voce bgpPeers pertinente

Ad esempio, se il router Cloud ha due peer BGP e vuoi rimuovere l'autenticazione MD5 da uno di questi. In questo caso, utilizza una richiesta simile alla seguente:

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_FOR_UNCHANGED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_UPDATED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UPDATED_PEER",
        "ipAddress": IP_ADDRESS_FOR_UPDATED_PEER",
        "peerIpAddress": PEER_IP_ADDRESS_FOR_UPDATED_PEER",
        "peerAsn": PEER_ASN_FOR_UPDATED_PEER"
      },
      {
        "name": "NAME_OF_UNCHANGED_PEER",
        "interfaceName": "INTERFACE_NAME_FOR_UNCHANGED_PEER",
        "ipAddress": IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerIpAddress": PEER_IP_ADDRESS_FOR_UNCHANGED_PEER",
        "peerAsn": PEER_ASN_FOR_UNCHANGED_PEER"
        "md5AuthenticationKeyName": "KEY_FOR_UNCHANGED_PEER",
      }
    ],
    ],
  }
 

Sostituisci i seguenti valori:

  • PROJECT_ID: il progetto che contiene il router Cloud
  • REGION: l'area geografica di Google Cloud in cui si trova il router Cloud
  • ROUTER_NAME: nome del router Cloud
  • NAME_OF_UPDATED_PEER: il nome della sessione di peering che vuoi modificare.
  • INTERFACE_NAME_FOR_UPDATED_PEER: nome dell'interfaccia del peer BGP da modificare.
  • IP_ADDRESS_FOR_UPDATED_PEER: l'indirizzo IP del router Cloud utilizzato dal peer che vuoi modificare
  • PEER_IP_ADDRESS_FOR_UPDATED_PEER: indirizzo IP del router peer per la sessione di peering da modificare.
  • PEER_ASN: il numero di sistema autonomo BGP (ASN) per questo peer BGP che vuoi modificare
  • NAME_OF_UNCHANGED_PEER: il nome della sessione di peering che vuoi mantenere invariato
  • INTERFACE_NAME_FOR_UNCHANGED_PEER: nome dell'interfaccia del peer BGP da mantenere così com'è
  • IP_ADDRESS_FOR_UNCHANGED_PEER: l'indirizzo IP del router Cloud utilizzato dal peer che vuoi mantenere invariato
  • PEER_IP_ADDRESS_FOR_UNCHANGED_PEER: indirizzo IP del router peer per la sessione di peering che vuoi mantenere invariato
  • PEER_ASN_FOR_UNCHANGED_PEER: il numero di sistema autonomo BGP (ASN) per il peer BGP che vuoi mantenere così com'è
  • KEY_FOR_UNCHANGED_PEER: nome del sistema autonomo BGP della chiave di autenticazione MD5 per il peer BGP che vuoi mantenere invariato

Rimuovere una sessione che utilizza l'autenticazione

A volte potresti voler rimuovere una sessione di peering che utilizza l'autenticazione MD5. Se lavori con l'interfaccia a riga di comando gcloud, esegui la stessa procedura che faresti per i peer non autenticati. Tuttavia, se lavori nell'API, la procedura è leggermente diversa.

gcloud

Per rimuovere l'autenticazione MD5, utilizza il comando gcloud beta compute routers update-bgp-peer:

   gcloud beta compute routers update-bgp-peer ROUTER_NAME \
     --peer-name=PEER_NAME \
     --region=REGION \
     --clear-md5-authentication-key

Sostituisci i seguenti valori:

  • ROUTER_NAME: nome del router Cloud
  • PEER_NAME: nome del peer BGP
  • REGION: l'area geografica di Google Cloud

API

Per rimuovere l'autenticazione MD5, utilizza il metodo compute.routers.patch.

Quando rimuovi l'autenticazione utilizzando l'API, l'aggiornamento deve eseguire due operazioni: rimuovere la chiave dall'array md5AuthenticationKeys e rimuovere bgpPeer stesso.

Ad esempio, supponiamo che il router Cloud abbia due peer e vuoi rimuoverne uno. In questo caso, utilizza una richiesta come la seguente:

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
  {
    "md5AuthenticationKeys": [
        "name": "KEY_NAME_FOR_RETAINED_PEER",
        ],
    "bgpPeers": [
      {
        "name": "NAME_OF_RETAINED_PEER",
        "interfaceName": "INTERFACE_FOR_RETAINED_PEER",
        "ipAddress": IP_ADDRESS_FOR_RETAINED_PEER",
        "peerIpAddress": PEER_IP_ADDRESS_FOR_RETAINED_PEER",
        "peerAsn": PEER_ASN_FOR_RETAINED_PEER"
      }
    ],
  }
 

Sostituisci i seguenti valori:

  • PROJECT_ID: il progetto che contiene il router Cloud
  • REGION: l'area geografica di Google Cloud
  • ROUTER_NAME: nome del router Cloud
  • KEY_NAME_FOR_RETAINED_PEER: il nome della chiave utilizzata dal peer che stai tenendo
  • NAME_OF_RETAINED_PEER: nome del peer BGP che mantieni
  • INTERFACE_FOR_RETAINED_PEER: nome dell'interfaccia del peer BGP che stai mantenendo
  • IP_ADDRESS_FOR_RETAINED_PEER: l'indirizzo IP nel router Cloud per il peer che stai mantenendo
  • PEER_IP_ADDRESS_FOR_RETAINED_PEER: l'indirizzo IP del peer che stai mantenendo
  • PEER_ASN_FOR_RETAINED_PEER: il numero di sistema autonomo BGP (ASN) per il peer che stai mantenendo

Ad esempio, supponi di aver creato i seguenti peer:

  PATCH https://compute.googleapis.com/compute/beta/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
        "key":  "first_secret_key_value"
      },
      {
        "name":  "second_key_name",
        "key":  "second_secret_key_value"
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer>",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      },
      {
        "name": "second_peer>",
        "md5AuthenticationKeyName": "second_key_name",
        "interfaceName": "second_interface",
        "ipAddress": "second_address",
        "peerIpAddress": "second_peer_interface",
        "peerAsn": "second_peer_asn"
      }
    ],
  }
 

Se poi vuoi rimuovere il secondo peer, dovresti utilizzare una richiesta come la seguente:

  PATCH https://compute.googleapis.com/compute/beta/projects/project_id/regions/region_name/routers/cloud_router_name
  {
    "md5AuthenticationKeys": [
      {
        "name":  "first_key_name",
      }
    ],
    "bgpPeers": [
      {
        "name": "first_peer>",
        "md5AuthenticationKeyName": "first_key_name",
        "interfaceName": "first_interface",
        "ipAddress": "first_address",
        "peerIpAddress": "first_peer_interface",
        "peerAsn": "first_peer_asn"
      }
    ],
  }
 

Passaggi successivi