Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Linee guida e limitazioni

Uso di BGP e memoria

BGP e failover

Risoluzione route ricorsiva

Funzionamento macchina a stato finito BGP

Configurazione

Configurazione eBGP

Esempio di rete

Configurazione ASA-1

Configurazione ASA-2

Configurazione iBGP

Esempio di rete

Configurazione ASA-1

Configurazione ASA-2

Differenze tra eBGP e iBGP

eBGP-Multihop

Configurazione ASA-1

Configurazione ASA-2

Filtraggio route BGP

Configurazione ASA BGP in contesto multiplo

Verifica

Verifica dello storage eBGP

Route BGP

Configurazione ASA-1

Configurazione ASA-2

Dettagli route eBGP specifica

Riepilogo BGP

Verifica dello storage iBGP

Dettagli route iBGP specifica

Valore TTL per pacchetti BGP

Processo di risoluzione route ricorsiva

Funzionalità ASA BGP e Graceful Restart

Risoluzione dei problemi

Debug

Introduzione

In questo documento viene descritto come abilitare il routing Border Gateway Protocol (BGP) (eBGP/iBGP) e altri problemi.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Protocolli di routing dinamico

- Panoramica di Cisco BGP

- Case study del protocollo BGP

Componenti usati

Questo documento è basato su Cisco Firepower serie 2100 Firewall con software Cisco ASA versione 9.16

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Premesse

In questo documento viene spiegato anche come stabilire un processo di routing BGP, configurare i parametri BGP generali, filtrare i percorsi su un'appliance ASA (Adaptive Security Appliance) e risolvere i problemi relativi al vicinato. Questa funzione è stata introdotta nel software ASA versione 9.2.1.

Linee guida e limitazioni

- Il protocollo BGP è supportato in modalità singola e multipla con famiglia di indirizzi IPv4 e IPv6.

- La modalità multipla è equivalente alla famiglia di indirizzi Cisco IOS® BGP VPNv4 (VPN Routing and Forwarding (VRF)). Per ciascun router di contesto, il protocollo BGP è simile a quello della famiglia di indirizzi IPv4 VRF in Cisco IOS.

- In Cisco IOS, per tutti i contesti è supportato un solo numero AS (Autonomous System) simile a un ASA globale per tutte le famiglie di indirizzi.

- Non supporta la modalità firewall trasparente. BGP supportato solo in modalità di routing.

- Il sistema non aggiunge voci di route per l'indirizzo IP ricevuto tramite PPPoE nella tabella di route TCP. BGP analizza sempre la tabella delle route TCP per avviare la sessione TCP, quindi non crea una sessione TCP. Pertanto, il protocollo BGP over PPPoE non è supportato.

- Per evitare flap di adiacenza causati da aggiornamenti del percorso ignorati se l'aggiornamento del percorso è più grande della MTU minima sul collegamento, verificare di configurare la stessa MTU sulle interfacce su entrambi i lati del collegamento.

- La tabella BGP dell'unità membro non è sincronizzata con la tabella dell'unità di controllo. Solo la relativa tabella di routing è sincronizzata con la tabella di routing dell'unità di controllo.

- Il numero AS può essere configurato con il comando router bgp <as_num> che può essere usato per abilitare il numero per famiglia di indirizzi di contesto.

- BGP dispone di sei processi che supportano tutti i contesti e i dettagli sono disponibili con il comando show process. Si tratta di processi quali attività BGP, BGP Scheduler, scanner BGP, router BGP, I/O BGP ed evento BGP.
ASA-1(config)# show proc | in BGP

Mwe 0x00000000010120d0 0x00007ffecc8ca5c8 0x0000000006136380

0  0x00007ffecc8c27c0 29432/32768  BGP Task

Mwe 0x0000000000fb3acd 0x00007ffecba47b48 0x0000000006136380

11 0x00007ffecba3fd00 31888/32768  BGP Scheduler

Lwe 0x0000000000fd3e40 0x00007ffecd3373e8 0x0000000006136380

26 0x00007ffecd32f5f0 30024/32768  BGP Scanner

Mwe 0x0000000000fd70b9 0x00007ffecd378cd8 0x0000000006136380

10 0x00007ffecd370eb0 28248/32768  BGP Router

Mwe 0x0000000000fc9f84 0x00007ffecd32f3e8 0x0000000006136380

2 0x00007ffecd3275a0 30328/32768  BGP I/O

Mwe 0x000000000100c125 0x00007ffecd33f458 0x0000000006136380

0 0x00007ffecd337640 32032/32768  BGP Event

- Il contesto di sistema dispone di configurazioni globali comuni a tutti i contesti simili a Cisco IOS, che dispone di configurazioni globali per tutte le famiglie di indirizzi.

- Le configurazioni che hanno il controllo sul calcolo del miglior percorso, la registrazione del router adiacente, il rilevamento della MTU (Maximum Transition Unit) del percorso TCP, i timer globali per keepalive, il tempo di attesa e così via sono disponibili nel contesto di sistema nella modalità di comando BGP del router.

- Il supporto dei comandi dei criteri BGP è nel contesto della famiglia di indirizzi per utente.

- Sono supportati tutti gli attributi dei percorsi e le comunità standard.

- L'RTBH (Remote Triggered Black Hole) è supportato utilizzando la configurazione statica della route null0.

- Le informazioni sull'hop successivo sono state aggiunte alla tabella di routing di input stessa nel processore di rete (NP, Network Processor). In precedenza, questa opzione era disponibile solo nella tabella di routing di output. Questa modifica è stata completata per supportare l'aggiunta di route BGP nelle tabelle di inoltro NP (poiché le route BGP non dispongono di un'interfaccia in uscita identificata nel pacchetto TCP, non è possibile determinare con quale tabella di routing di output aggiornare le informazioni dell'hop successivo).

- Ricerca route ricorsiva supportata.

- È supportata la ridistribuzione con altri protocolli, ad esempio connected, static, Routing Information Protocol (RIP), Open Shortest Path First (OSPF) e Enhanced Interior Gateway Routing Protocol (EIGRP).

- Il comando no router bgp <as_no> [con prompt di conferma] rimuove le configurazioni BGP in tutti i contesti.

- I database di controllo delle route, ad esempio route-map, access-list, elenchi di prefissi, elenchi di comunità ed elenchi di accesso as-path, sono virtualizzati e forniti per contesto.

- Viene introdotto un nuovo comando, show asp table routing address <addr> resolve, per visualizzare le route BGP risolte in modo ricorsivo nella tabella di inoltro NP.

- Un nuovo comando, show bgp system-config, viene introdotto in modalità multi-mode per visualizzare il contesto del sistema nelle configurazioni BGP.

- Supporto interfaccia loopback per traffico BGP

- Supporto BGP per IPv6

- Supporto BGP per le mappe annunciate

- Supporto BGP per clustering ASA

- Riavvio regolare supportato per IPv6

Uso di BGP e memoria

Il comando show route summary viene usato per ottenere l'uso della memoria dei singoli protocolli di routing.

BGP e failover

- BGP è supportato nelle configurazioni HA attivo/standby e attivo/attivo.

- Solo l'unità attiva resta in ascolto sulla porta TCP 179 per le connessioni BGP dai peer.

- L'unità in standby non partecipa al peering BGP, quindi non è in ascolto sulla porta TCP 179 e non gestisce le tabelle BGP.

- Le aggiunte e le eliminazioni delle route BGP vengono replicate dall'unità attiva all'unità di standby.

- Dopo il failover, la nuova unità attiva resta in ascolto sulla porta TCP 179 e avvia la determinazione delle adiacenze BGP con i peer.

- Senza NSF (Nonstop Forwarding), la definizione delle adiacenze richiede tempo con il peer di nuovo dopo il failover, in cui le route BGP non vengono apprese dal peer. Ciò dipende dal successivo invio di pacchetti BGP keepalive (predefinito: 60 secondi) dal peer a cui l'ASA risponde con il comando restore (RST), che determina una vecchia terminazione della connessione all'estremità peer, quindi viene stabilita una nuova connessione.

- Durante il periodo di riconversione BGP, la nuova unità attiva continua a inoltrare il traffico con le route precedentemente replicate.

- Il periodo del timer di riconversione BGP è attualmente impostato su 210 secondi (il comando show route failover visualizza il valore del timer), in modo da consentire a BGP di stabilire le adiacenze e scambiare le route con i relativi peer.

- Dopo la scadenza del timer di riconvergenza BGP, tutte le route BGP non aggiornate vengono eliminate dal database di informazioni di routing (RIB, Routing Information Base).

- L'ID del router BGP viene sincronizzato dall'unità attiva all'unità di standby. Il calcolo dell'ID del router BGP è disabilitato sull'unità di standby.

- Il comando write standby è fortemente sconsigliato poiché in questo caso non si verifica la sincronizzazione bulk, che comporta la perdita di route dinamiche in standby.

Risoluzione route ricorsiva

- Le informazioni dell'interfaccia in uscita per le route BGP non sono disponibili nel Cisco (una conseguenza diretta del fatto che i router adiacenti BGP possono trovarsi a più hop di distanza a differenza di altri protocolli di routing).

- Le route BGP con le informazioni dell'hop successivo vengono aggiunte alla tabella di routing di input NP, ma non vengono ancora risolte.

- Quando il primo pacchetto di un flusso che corrisponde a un prefisso della route BGP entra nell'ASA nel percorso lento, il percorso viene risolto e l'interfaccia in uscita viene determinata in modo ricorsivo tramite la tabella di routing di input NP.

- Ogni volta che la tabella di routing viene modificata (dal PC), viene incrementato l'indicatore orario di una tabella di routing specifica del contesto.

- Quando il pacchetto successivo di un flusso che corrisponde a una route BGP entra nell'ASA nel percorso rapido, l'ASA confronta il timestamp della voce della route con il timestamp della tabella di routing specifica del contesto. Se i due timestamp non corrispondono, il processo di risoluzione delle route ricorsive viene avviato di nuovo e il timestamp di immissione delle route viene aggiornato in modo da corrispondere al timestamp della tabella di routing. Per verificare l'ora, usare il comando show asp table routing. Il comando show asp table routing address <route> mostra l'indicatore orario di una particolare voce della route, mentre il comando show asp table routing mostra l'indicatore orario della tabella di routing.

- Il processo di risoluzione ricorsiva della route per un prefisso di destinazione può essere forzato quando si immette il comando show asp table routing address <addr>resolve.

- La profondità delle ricerche di route ricorsive è attualmente limitata a quattro. I pacchetti che richiedono una ricerca dopo quattro percorsi vengono scartati con il motivo "Nessun percorso verso l'host (nessun percorso)" e non vi sono motivi speciali per l'errore di ricerca ricorsiva.

- La risoluzione delle route ricorsive è supportata solo per le route BGP (non per le route statiche).

Funzionamento macchina a stato finito BGP

I peer BGP passano attraverso diversi stati prima di diventare vicini adiacenti e scambiare informazioni di routing. In ogni stato, i peer devono inviare e ricevere messaggi, elaborare i dati dei messaggi e inizializzare le risorse prima di passare allo stato successivo. Questo processo è noto come BGP Finite-State Machine (FSM). Se il processo ha esito negativo in qualsiasi momento, la sessione viene eliminata e i peer tornano entrambi in uno stato di inattività e iniziano di nuovo il processo. Ogni volta che una sessione viene eliminata, tutte le route del peer non attivo vengono rimosse dalle tabelle, con conseguente inattività.

1. IDLE: l'ASA esegue una ricerca nella tabella di routing per verificare se esiste una route per raggiungere il router adiacente.

2. CONNECT - L'ASA ha trovato un percorso verso il router adiacente e ha completato l'handshake TCP a tre vie.

3. ATTIVO: l'ASA non ha ricevuto alcun accordo sui parametri dello stabilimento.

4. OPEN SENT - viene inviato il messaggio Open, con i parametri per la sessione BGP.

5. OPEN CONFIRM: l'appliance ASA ha ricevuto l'accordo sui parametri per stabilire una sessione.

6. STABILITO: viene stabilito il peering e ha inizio il routing.

Configurazione

Configurazione eBGP

Il protocollo BGP funziona tra router di sistemi autonomi diversi. Per impostazione predefinita, in eBGP (peering in due diversi sistemi autonomi), il valore IP TTL è impostato su 1, ossia i peer vengono considerati connessi direttamente. In questo caso, quando un pacchetto attraversa un router, il valore TTL diventa 0 e il pacchetto viene quindi scartato. Nei casi in cui i due router adiacenti non sono connessi direttamente (ad esempio, il peering con interfacce di loopback o il peering quando i dispositivi si trovano a più hop di distanza), è necessario aggiungere il comando x.x.x ebgp-multihop <TTL>adiacente. In caso contrario, non sarà possibile stabilire un vicinato BGP. Inoltre, un peer eBGP pubblicizza tutte le route migliori che conosce o che ha appreso dai peer (sia peer eBGP che iBGP), il che non è il caso di iBGP.

Esempio di rete

Configurazione ASA-1

router bgp 100

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 203.0.113.2 remote-as 200

neighbor 203.0.113.2 activate

network 192.168.10.0 mask 255.255.255.0

network 172.16.20.0 mask 255.255.255.0

network 10.106.44.0 mask 255.255.255.0

no auto-summary

no synchronization

exit-address-family

!

Configurazione ASA-2

router bgp 200

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 203.0.113.1 remote-as 100

neighbor 203.0.113.1 activate

network 10.10.10.0 mask 255.255.255.0

network 10.180.10.0 mask 255.255.255.0

network 172.16.30.0 mask 255.255.255.0

no auto-summary

no synchronization

exit-address-family

!

Configurazione iBGP

In iBGP, non ci sono restrizioni che i vicini devono essere connessi direttamente. Tuttavia, un peer iBGP non può annunciare il prefisso appreso da un peer iBGP a un altro peer iBGP. Questa restrizione consente di evitare loop all'interno dello stesso AS. Per chiarire questo punto, quando si passa una route a un peer eBGP, il numero AS locale viene aggiunto al prefisso nel percorso as, quindi se si riceve nuovamente lo stesso pacchetto che indica il proprio AS nel percorso as, si sa che si tratta di un loop e il pacchetto viene scartato. Tuttavia, quando una route viene annunciata a un peer iBGP, il numero AS locale non viene aggiunto al percorso as, poiché i peer si trovano nello stesso AS.

Esempio di rete

Configurazione ASA-1

router bgp 100

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 203.0.113.2 remote-as 100

neighbor 203.0.113.2 activate

network 192.168.10.0 mask 255.255.255.0

network 172.16.20.0 mask 255.255.255.0

network 10.106.44.0 mask 255.255.255.0

no auto-summary

no synchronization

exit-address-family

!

Configurazione ASA-2

router bgp 100

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 203.0.113.1 remote-as 100

neighbor 203.0.113.1 activate

network 10.10.10.0 mask 255.255.255.0

network 10.180.10.0 mask 255.255.255.0

network 172.16.30.0 mask 255.255.255.0

no auto-summary

no synchronization

exit-address-family

!

Differenze tra eBGP e iBGP

- eBGP effettua il peer tra due appliance AS diverse, mentre iBGP è tra le stesse appliance AS.

- Le route apprese dai peer eBGP vengono pubblicizzate su altri peer (eBGP o iBGP). Tuttavia, le route apprese da un peer iBGP non vengono pubblicizzate ad altri peer iBGP.

- Per impostazione predefinita, i peer eBGP sono impostati con TTL = 1, ovvero si presume che i router adiacenti siano connessi direttamente, il che non è il caso di iBGP. Per modificare questo comportamento per eBGP, immettere il comando x.x.x.x ebgp-multihop <TTL>adiacente. Multihop è il termine utilizzato solo in eBGP.

- Le route eBGP hanno una distanza amministrativa di 20, mentre iBGP è 200.

- L'hop successivo rimane invariato quando la route viene annunciata a un peer iBGP. Tuttavia, viene modificato quando viene annunciato a un peer eBGP per impostazione predefinita.

eBGP-Multihop

Un'appliance ASA con un dispositivo BGP adiacente a un'altra appliance ASA a un hop di distanza. Per i vicini, è necessario assicurarsi di disporre di connettività tra vicini. Eseguire il ping per confermare la connettività. Verificare che la porta TCP 179 sia consentita in entrambe le direzioni sui dispositivi tra le due direzioni.

Configurazione ASA-1

router bgp 100

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 198.51.100.1 remote-as 200

neighbor 198.51.100.1 ebgp-multihop 2

neighbor 198.51.100.1 activate

network 192.168.10.0 mask 255.255.255.0

network 10.106.44.0 mask 255.255.255.0

network 172.16.20.0 mask 255.255.255.0

no auto-summary

no synchronization

exit-address-family

!

Configurazione ASA-2

router bgp 200

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 203.0.113.1 remote-as 100

neighbor 203.0.113.1 ebgp-multihop 2

neighbor 203.0.113.1 activate

network 10.10.10.0 mask 255.255.255.0

network 10.180.10.0 mask 255.255.255.0

network 172.16.30.0 mask 255.255.255.0

no auto-summary

no synchronization

exit-address-family

!

Filtraggio route BGP

Con BGP è possibile controllare un aggiornamento del routing inviato e ricevuto. Nell'esempio, un aggiornamento del routing è bloccato per il prefisso di rete 172.16.30.0/24, che è posizionato dietro ASA-2. Per il filtro route, è possibile utilizzare solo ACL STANDARD.

access-list bgp-in line 1 standard deny 172.16.30.0 255.255.255.0

access-list bgp-in line 2 standard permit any4

router bgp 100

bgp log-neighbor-changes

bgp bestpath compare-routerid

address-family ipv4 unicast

neighbor 203.0.113.2 remote-as 200

neighbor 203.0.113.2 activate

network 192.168.10.0 mask 255.255.255.0

network 172.16.20.0 mask 255.255.255.0

network 10.106.44.0 mask 255.255.255.0

distribute-list bgp-in in

no auto-summary

no synchronization

exit-address-family

!

Verificare la tabella di routing.

ASA-1(config)# show bgp cidr-only

BGP table version is 6, local router ID is 203.0.113.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale, m multipath

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop        Metric LocPrf Weight  Path

*> 10.10.10.0/24    203.0.113.2          0             0  200 i

*> 10.106.44.0/24   0.0.0.0              0         32768  i

*> 10.180.10.0/24   203.0.113.2          0             0  200 i

*> 172.16.20.0/24   0.0.0.0              0         32768  i

*> 192.168.10.0/16   0.0.0.0             0         32768  i

Verificare il numero di accessi all'elenco di controllo di accesso (ACL).

ASA-1(config)# show access-list bgp-in

access-list bgp-in; 2 elements; name hash: 0x3f99de19

access-list bgp-in line 1 standard deny 172.16.30.0 255.255.255.0 (hitcnt=1) 0xb5abad25

access-list bgp-in line 2 standard permit any4 (hitcnt=4) 0x59d08160

Analogamente, è possibile usare un ACL per filtrare gli elementi inviati con "out" nel comando distribute-list.

Configurazione ASA BGP in contesto multiplo

Il protocollo BGP è supportato in più contesti. In caso di contesto multiplo, è necessario prima definire il processo del router BGP nel contesto del sistema. Se si tenta di creare un processo BGP senza definirlo nel contesto di sistema, viene visualizzato questo errore.

ASA-1/admin(config)# router bgp 100

%BGP process cannot be created in non-system context

ERROR: Unable to create router process

First we Need to define it in system context.

ASA-1/admin(config)#changeto context system

ASA-1(config)# router bgp 100

ASA-1(config-router)#exit

Now create bgp process in admin context.

ASA-1(config)#changeto context admin

ASA-1/admin(config)# router bgp 100

ASA-1/admin(config-router)#

Verifica

Verifica dello storage eBGP

Verificare la connessione TCP sulla porta 179.

ASA-1(config)# show asp table socket

Protocol  Socket    State      Local Address                    Foreign Address

SSL       00001478  LISTEN     172.16.20.1:443                  0.0.0.0:*

TCP       000035e8  LISTEN     203.0.113.1:179                  0.0.0.0:*

TCP       00005cd8  ESTAB      203.0.113.1:44368                203.0.113.2:179

SSL       00006658  LISTEN     10.106.44.221:443                0.0.0.0:*

Mostra i vicini BGP.

ASA-1(config)# show bgp neighbors

BGP neighbor is 203.0.113.2,  context single_vf,  remote AS 200, external link >> eBGP

BGP version 4, remote router ID 203.0.113.2

BGP state = Established, up for 00:04:42

Last read 00:00:13, last write 00:00:17, hold time is 180, keepalive interval is

60 seconds

Neighbor sessions:

1 active, is not multisession capable (disabled)

Neighbor capabilities:

Route refresh: advertised and received(new)

Four-octets ASN Capability: advertised and received

Address family IPv4 Unicast: advertised and received

Multisession Capability:

Message statistics:

InQ depth is 0

OutQ depth is 0

Sent       Rcvd

Opens:         1          1

Notifications: 0          0

Updates:       2          2

Keepalives:    5          5

Route Refresh: 0          0

Total:         8          8

Default minimum time between advertisement runs is 30 seconds

For address family: IPv4 Unicast

Session: 203.0.113.2

BGP table version 7, neighbor version 7/0

Output queue size : 0

Index 1

1 update-group member

Sent       Rcvd

Prefix activity:         ----       ----

Prefixes Current:      3          3          (Consumes 240 bytes)

Prefixes Total:        3          3

Implicit Withdraw:     0          0

Explicit Withdraw:     0          0

Used as bestpath:      n/a        3

Used as multipath:     n/a        0

Outbound    Inbound

Local Policy Denied Prefixes: --------    -------

Bestpath from this peer:     3          n/a

Total:                       3          0

Number of NLRIs in the update sent: max 3, min 0

Address tracking is enabled, the RIB does have a route to 203.0.113.2

Connections established 1; dropped 0

Last reset never

Transport(tcp) path-mtu-discovery is enabled

Graceful-Restart is disabled

Route BGP

Configurazione ASA-1

ASA-1(config)# show route bgp

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is 10.106.44.1 to network 0.0.0.0

B        10.10.10.0 255.255.255.0 [20/0] via 203.0.113.2, 00:05:48

B        10.180.10.0 255.255.255.0 [20/0] via 203.0.113.2, 00:05:48

B        172.16.30.0 255.255.255.0 [20/0] via 203.0.113.2, 00:05:48

Configurazione ASA-2

ASA-2# show route bgp

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is not set

B        10.106.44.0 255.255.255.0 [20/0] via 203.0.113.1, 00:36:32

B        172.16.20.0 255.255.255.0 [20/0] via 203.0.113.1, 00:36:32

B     192.168.10.0 255.255.255.0 [20/0] via 203.0.113.1, 00:36:32

Per visualizzare le route di un'appliance ASA specifica, immettere il comando show route bgp <AS-No.>.

ASA-1(config)# show route bgp ?

exec mode commands/options:

100  Autonomous system number

|    Output modifiers

<cr>

Dettagli route eBGP specifica

ASA-1(config)# show route 172.16.30.0

Routing entry for 172.16.30.0 255.255.255.0

Known via "bgp 100", distance 20, metric 0

Tag 200, type external

Last update from 203.0.113.2 0:09:43 ago

Routing Descriptor Blocks:

* 203.0.113.2, from 203.0.113.2, 0:09:43 ago

Route metric is 0, traffic share count is 1

AS Hops 1-----------------------------------> ASA HOP is one

Route tag 200

MPLS label: no label string provided

ASA-1(config)# show bgp cidr-only

BGP table version is 7, local router ID is 203.0.113.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale, m multipath

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop        Metric LocPrf Weight  Path

*> 10.10.10.0/24    203.0.113.2          0             0  200 i

*> 10.106.44.0/24   0.0.0.0              0         32768  i

*> 10.180.10.0/24   203.0.113.2          0             0  200 i

*> 172.16.20.0/24   0.0.0.0              0         32768  i

*> 172.16.30.0/24   203.0.113.2          0             0  200 i

Riepilogo BGP

ASA-1(config)# show bgp summary

BGP router identifier 203.0.113.1, local AS number 100

BGP table version is 7, main routing table version 7

6 network entries using 1200 bytes of memory

6 path entries using 480 bytes of memory

2/2 BGP path/bestpath attribute entries using 416 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 2120 total bytes of memory

BGP activity 6/0 prefixes, 6/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

203.0.113.2     4          200 16      17             7    0    0 00:14:19  3

ASA-1(config)# show route summary

IP routing table maximum-paths is 3

Route Source    Networks    Subnets     Replicates  Overhead    Memory (bytes)

connected       0           8           0           704         2304

static          2           5           0           616         2016

ospf 1          0           0           0           0           0

Intra-area: 0 Inter-area: 0 External-1: 0 External-2: 0

NSSA External-1: 0 NSSA External-2: 0

bgp 100         0           3           0           264         864

External: 3 Internal: 0 Local: 0

internal        7                                               3176

Total           9           16          0           1584        8360

Verifica dello storage iBGP

ASA-1(config)# show bgp neighbors

BGP neighbor is 203.0.113.2,  context single_vf,  remote AS 100, internal link >> iBGP

BGP version 4, remote router ID 203.0.113.2

BGP state = Established, up for 00:02:19

Last read 00:00:13, last write 00:00:17, hold time is 180, keepalive interval is

60 seconds

Neighbor sessions:

1 active, is not multisession capable (disabled)

Neighbor capabilities:

Route refresh: advertised and received(new)

Four-octets ASN Capability: advertised and received

Address family IPv4 Unicast: advertised and received

Multisession Capability:

Message statistics:

InQ depth is 0

OutQ depth is 0

Sent       Rcvd

Opens:         1          1

Notifications: 0          0

Updates:       2          2

Keepalives:    5          5

Route Refresh: 0          0

Total:         8          8

Default minimum time between advertisement runs is 30 seconds

For address family: IPv4 Unicast

Session: 203.0.113.2

BGP table version 7, neighbor version 7/0

Output queue size : 0

Index 1

1 update-group member

Sent       Rcvd

Prefix activity:         ----       ----

Prefixes Current:      3          3          (Consumes 240 bytes)

Prefixes Total:        3          3

Implicit Withdraw:     0          0

Explicit Withdraw:     0          0

Used as bestpath:      n/a        3

Used as multipath:     n/a        0

Outbound    Inbound

Local Policy Denied Prefixes: --------    -------

Bestpath from this peer:     3          n/a

Total:                       3          0

Number of NLRIs in the update sent: max 3, min 0

Address tracking is enabled, the RIB does have a route to 203.0.113.2

Connections established 1; dropped 0

Last reset never

Transport(tcp) path-mtu-discovery is enabled

Graceful-Restart is disabled

Dettagli route iBGP specifica

ASA-1(config)# show route 172.16.30.0

Routing entry for 172.16.30.0 255.255.255.0

Known via "bgp 100", distance 20, metric 0, type internal

Last update from 203.0.113.2 0:07:05 ago

Routing Descriptor Blocks:

* 203.0.113.2, from 203.0.113.2, 0:07:05 ago

Route metric is 0, traffic share count is 1

AS Hops 0            -------------------->> ASA HOP is 0 as it's internal route

MPLS label: no label string provided

Valore TTL per pacchetti BGP

Per impostazione predefinita, i router BGP adiacenti devono essere connessi direttamente. Infatti, il valore TTL dei pacchetti BGP è sempre 1 (impostazione predefinita). Pertanto, se un router adiacente BGP non è connesso direttamente, è necessario definire un valore BGP multi-hop che dipende dal numero di hop presenti nel percorso.

Di seguito è riportato l'esempio di un valore TTL per le connessioni dirette:

ASA-1(config)#show cap bgp detail

5: 06:30:19.789769 6c41.6a1f.25e3 a0cf.5b5c.5060 0x0800 Length: 70

203.0.113.1.44368 > 203.0.113.2.179: S [tcp sum ok] 3733850223:3733850223(0)

win 32768 <mss 1460,nop,nop,timestamp 15488246 0> (DF) [tos 0xc0]  [ttl 1] (id 62822)

6: 06:30:19.792286 a0cf.5b5c.5060 6c41.6a1f.25e3 0x0800 Length: 58

203.0.113.22.179 > 203.0.113.1.44368: S [tcp sum ok] 1053711883:1053711883(0)

ack 3733850224 win 16384 <mss 1360> [tos 0xc0]  [ttl 1] (id 44962)

7: 06:30:19.792302 6c41.6a1f.25e3 a0cf.5b5c.5060 0x0800 Length: 54

203.0.113.1.44368 > 203.0.113.22.179: . [tcp sum ok] 3733850224:3733850224(0)

ack 1053711884 win 32768 (DF) [tos 0xc0]  [ttl 1] (id 52918)

Se i router adiacenti non sono connessi direttamente, è necessario immettere il comando bgp multihop per definire il numero di hop che un router adiacente deve aumentare il valore TTL nell'intestazione IP.

Di seguito è riportato un esempio di valore TTL in caso di multi-hop (in questo caso, la porta adiacente BGP è a 1 HOP di distanza):

ASA-1(config)#show cap bgp detail

5: 13:10:04.059963 6c41.6a1f.25e3 a0cf.5b5c.5060 0x0800 Length: 70

203.0.113.1.63136 > 198.51.100.1.179: S [tcp sum ok] 979449598:979449598(0)

win 32768 <mss 1460,nop,nop,timestamp 8799571 0> (DF) [tos 0xc0]  (ttl 2, id 62012)

6: 13:10:04.060681 a0cf.5b5c.5060 6c41.6a1f.25e3 0x0800 Length: 70 198.51.100.1.179 >

203.0.113.1.63136: S [tcp sum ok] 0:0(0) ack 979449599 win 32768 <mss 1460,nop,nop,

timestamp 6839704 8799571> (DF) [tos 0xac]  [ttl 1] (id 60372)

7: 13:10:04.060696 6c41.6a1f.25e3 a0cf.5b5c.5060 0x0800 Length: 66

203.0.113.1.63136 >198.51.100.1.179: . [tcp sum ok] 979449599:979449599(0) ack 1

win 32768 <nop,nop,timestamp 8799571 6839704> (DF) [tos 0xc0]  (ttl 2, id 53699)

Processo di risoluzione route ricorsiva

ASA-1(config)# show asp table routing

route table timestamp: 66

in   255.255.255.255 255.255.255.255 identity

in   203.0.113.1     255.255.255.255 identity

in   203.0.113.254  255.255.255.255 via 10.13.14.4, outside

in   192.0.2.78   255.255.255.255 via 10.16.17.4, DMZ

in   192.168.0.1     255.255.255.255 identity

in   172.16.20.1     255.255.255.255 identity

in   10.106.44.190   255.255.255.255 identity

in   10.10.10.0      255.255.255.0 via 203.0.113.2, outside (resolved, timestamp: 66)

in   172.16.30.0     255.255.255.0 via 203.0.113.2, outside (resolved, timestamp: 64)

in   10.180.10.0     255.255.255.0 via 203.0.113.2, outside (resolved, timestamp: 65)

in   203.0.113.0     255.255.255.0   outside

in   172.16.10.0     255.255.255.0   via 10.13.14.4, outside

in   192.168.10.0    255.255.255.0   via 10.13.14.20, outside

in   192.168.20.0    255.255.255.0   via 10.16.17.4, DMZ

in   172.16.20.0     255.255.255.0   inside

in   10.106.44.0     255.255.255.0   management

in   192.168.0.0     255.255.0.0     DMZ

Funzionalità ASA BGP e Graceful Restart

BGP support for nonstop forwarding

We added support for BGP Nonstop Forwarding.

We introduced the following new commands: bgp graceful-restart, neighbor ha-mode graceful-restart

Risoluzione dei problemi

- Dopo la configurazione, è necessario verificare la connettività di entrambi i dispositivi. Verificare la connettività delle porte ICMP e TCP 179.

- Se i peer BGP non sono connessi direttamente, verificare di avere configurato eBGP multihop.

- Se la connettività è corretta, il socket TCP può essere nello stato ESTAB nell'output del comando show asp table socket.
ASA-1(config)# show asp table socket

Protocol  Socket    State      Local Address                    Foreign Address

SSL       00001478  LISTEN     172.16.20.1:443                  0.0.0.0:*

TCP       000035e8  LISTEN     203.0.113.1:179                  0.0.0.0:*

TCP       00005cd8  ESTAB      203.0.113.1:44368                203.0.113.2:179

SSL       00006658  LISTEN     10.106.44.221:443                0.0.0.0:*

- Dopo un handshake a 3 vie, entrambi i peer si scambiano messaggi BGP OPEN e negoziano i parametri.

- Dopo lo scambio dei parametri, entrambi i peer si scambiano le informazioni di routing con un messaggio BGP UPDATE.

%ASA-7-609001: Built local-host identity:203.0.113.1

%ASA-7-609001: Built local-host outside:203.0.113.2

%ASA-6-302013: Built outbound TCP connection 14 for outside:203.0.113.2/179

(203.0.113.2/179) to identity:203.0.113.1/43790 (203.0.113.1/43790)

%ASA-3-418018: neighbor 203.0.113.2 Up

Se il vicinato non si forma anche dopo un handshake a 3 vie TCP riuscito, il problema è con BGP FSM. Raccogliere un pacchetto di acquisizione e i syslog dall'appliance ASA e verificare lo stato in cui si sono verificati problemi.

Debug

Nota: consultare le informazioni importanti sui comandi di debug prima di usare i comandi di debug.

Immettere il comando debug ip bgp per risolvere i problemi di prossimità e di routing relativi agli aggiornamenti.

ASA-1(config)# debug ip bgp ?

exec mode commands/options:

A.B.C.D     BGP neighbor address

events      BGP events

in          BGP Inbound information

ipv4        Address family

keepalives  BGP keepalives

out         BGP Outbound information

range       BGP dynamic range

rib-filter  Next hop route watch filter events

updates     BGP updates

<cr>

Immettere il comando debug ip bgp events per risolvere i problemi relativi al vicinato.

BGP: 203.0.113.2 active went from Idle to Active

BGP: 203.0.113.2 open active, local address 203.0.113.1

BGP: ses global 203.0.113.2 (0x00007ffec085c590:0) act Adding topology IPv4 Unicast:base

BGP: ses global 203.0.113.2 (0x00007ffec085c590:0) act Send OPEN

BGP: 203.0.113.2 active went from Active to OpenSent

BGP: 203.0.113.2 active sending OPEN, version 4, my as: 100, holdtime 180 seconds,

ID cb007101

BGP: 203.0.113.2 active rcv message type 1, length (excl. header) 34

BGP: ses global 203.0.113.2 (0x00007ffec085c590:0) act Receive OPEN

BGP: 203.0.113.2 active rcv OPEN, version 4, holdtime 180 seconds

BGP: 203.0.113.2 active rcv OPEN w/ OPTION parameter len: 24

BGP: 203.0.113.2 active rcvd OPEN w/ optional parameter type 2 (Capability) len 6

BGP: 203.0.113.2 active OPEN has CAPABILITY code: 1, length 4

BGP: 203.0.113.2 active OPEN has MP_EXT CAP for afi/safi: 1/1

BGP: 203.0.113.2 active rcvd OPEN w/ optional parameter type 2 (Capability) len 2

BGP: 203.0.113.2 active OPEN has CAPABILITY code: 128, length 0

BGP: 203.0.113.2 active OPEN has ROUTE-REFRESH capability(old) for all address-families

BGP: 203.0.113.2 active rcvd OPEN w/ optional parameter type 2 (Capability) len 2

BGP: 203.0.113.2 active OPEN has CAPABILITY code: 2, length 0

BGP: 203.0.113.2 active OPEN has ROUTE-REFRESH capability(new) for all address-families

BGP: 203.0.113.2 active rcvd OPEN w/ optional parameter type 2 (Capability) len 6

BGP: 203.0.113.2 active OPEN has CAPABILITY code: 65, length 4

BGP: 203.0.113.2 active OPEN has 4-byte ASN CAP for: 200

BGP: 203.0.113.2 active rcvd OPEN w/ remote AS 200, 4-byte remote AS 200

BGP: 203.0.113.2 active went from OpenSent to OpenConfirm

BGP: 203.0.113.2 active went from OpenConfirm to Established

Immettere il comando debug ip bgp updates per risolvere i problemi relativi all'aggiornamento del routing.

BGP: TX IPv4 Unicast Mem global 203.0.113.2 Changing state from DOWN to WAIT

(pending advertised bit allocation).

BGP: TX IPv4 Unicast Grp global 4 Created.

BGP: TX IPv4 Unicast Wkr global 4 Cur Blocked (not in list).

BGP: TX IPv4 Unicast Wkr global 4 Ref Blocked (not in list).

BGP: TX IPv4 Unicast Rpl global 4 1 Created.

BGP: TX IPv4 Unicast Rpl global 4 1 Net bitfield index 0 allocated.

BGP: TX IPv4 Unicast Mem global 4 1 203.0.113.2 Added to group (now has 1 members).

BGP: TX IPv4 Unicast Mem global 4 1 203.0.113.2 Staying in WAIT state

(current walker waiting for net prepend).

BGP: TX IPv4 Unicast Top global Start net prepend.

BGP: TX IPv4 Unicast Top global Inserting initial marker.

BGP: TX IPv4 Unicast Top global Done net prepend (0 attrs).

BGP: TX IPv4 Unicast Grp global 4 Starting refresh after prepend completion.

BGP: TX IPv4 Unicast Wkr global 4 Cur Start at marker 1.

BGP: TX IPv4 Unicast Grp global 4 Message limit changed from 100 to 1000 (used 0 + 0).

BGP: TX IPv4 Unicast Wkr global 4 Cur Unblocked

BGP: TX IPv4 Unicast Mem global 4 1 203.0.113.2 Changing state from WAIT to ACTIVE

(ready).

BGP: TX IPv4 Unicast Mem global 4 1 203.0.113.2 No refresh required.

BGP: TX IPv4 Unicast Top global Collection done on marker 1 after 0 net(s).

BGP(0): 203.0.113.2 rcvd UPDATE w/ attr: nexthop 203.0.113.2, origin i, metric 0,

merged path 200, AS_PATH

BGP(0): 203.0.113.2 rcvd 10.10.10.0/24

BGP(0): 203.0.113.2 rcvd 172.16.30.0/24

BGP(0): 203.0.113.2 rcvd 10.180.10.0/24-----------------> Routes rcvd from peer

BGP: TX IPv4 Unicast Net global 10.10.10.1/32 Changed.

BGP: TX IPv4 Unicast Net global 172.16.30.0/24 Changed.

BGP: TX IPv4 Unicast Net global 10.180.10.0/24 Changed.

BGP(0): Revise route installing 1 of 1 routes for 10.10.10.0 255.255.255.0 ->

203.0.113.2(global) to main IP table

BGP: TX IPv4 Unicast Net global 10.10.10.0/24 RIB done.

BGP(0): Revise route installing 1 of 1 routes for 172.16.30.0 255.255.255.0 ->

203.0.113.2(global) to main IP table

BGP: TX IPv4 Unicast Net global 172.16.30.0/24 RIB done.

BGP(0): Revise route installing 1 of 1 routes for 10.180.10.0 255.255.255.0 ->

203.0.113.2(global) to main IP table

BGP: TX IPv4 Unicast Net global 10.180.10.0/24 RIB done.

BGP: TX IPv4 Unicast Tab RIB walk done version 4, added 1 topologies.

BGP: TX IPv4 Unicast Tab Ready in READ-WRITE.

BGP: TX IPv4 Unicast Tab RIB walk done version 4, added 1 topologies.

BGP: TX IPv4 Unicast Tab All topologies are EOR ready.

BGP: TX IPv4 Unicast Tab RIB walk done version 4, added 1 topologies.

BGP: TX IPv4 Unicast Tab Executing.

BGP: TX IPv4 Unicast Wkr global 4 Cur Processing.

BGP: TX IPv4 Unicast Wkr global 4 Cur Reached marker with version 1.

BGP: TX IPv4 Unicast Top global Appending nets from attr 0x00007ffecc9b7b88.

BGP: TX IPv4 Unicast Wkr global 4 Cur Attr change from 0x0000000000000000 to

0x00007ffecc9b7b88.

BGP: TX IPv4 Unicast Wkr global 4 Cur Net 10.10.10.0/24 Skipped.

BGP: TX IPv4 Unicast Wkr global 4 Cur Net 172.16.30.0/24 Skipped.

BGP: TX IPv4 Unicast Wkr global 4 Cur Net 10.180.10.0/24 Skipped.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Top global Added tail marker with version 4.

BGP: TX IPv4 Unicast Wkr global 4 Cur Reached marker with version 4.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Wkr global 4 Cur Done (end of list), processed 1 attr(s),

0/3 net(s), 0 pos.

BGP: TX IPv4 Unicast Grp global 4 Checking EORs (0/1).

BGP: TX IPv4 Unicast Mem global 4 1 203.0.113.2 Send EOR.

BGP: TX IPv4 Unicast Grp global 4 Converged.

BGP: TX IPv4 Unicast Tab Processed 1 walker(s).

BGP: TX IPv4 Unicast Tab Generation completed.

BGP: TX IPv4 Unicast Top global Deleting first marker with version 1.

BGP: TX IPv4 Unicast Top global Collection reached marker 1 after 0 net(s).

BGP: TX IPv4 Unicast Top global First convergence done.

BGP: TX IPv4 Unicast Top global Deleting first marker with version 1.

BGP: TX IPv4 Unicast Top global Collection reached marker 1 after 0 net(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 4 after 3 net(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 4 after 0 net(s).

BGP: TX IPv4 Unicast Net global 192.168.10.0/24 Changed.

BGP: TX IPv4 Unicast Net global 172.16.20.0/24 Changed.

BGP: TX IPv4 Unicast Net global 10.106.44.0/24 Changed.

BGP(0): nettable_walker 10.106.44.0/24 route sourced locally

BGP: topo global:IPv4 Unicast:base Remove_fwdroute for 10.106.44.0/24

BGP: TX IPv4 Unicast Net global 10.106.44.0/24 RIB done.

BGP(0): nettable_walker 172.16.20.0/24 route sourced locally

BGP: topo global:IPv4 Unicast:base Remove_fwdroute for 172.16.20.0/24

BGP: TX IPv4 Unicast Net global 172.16.20.0/24 RIB done.

BGP(0): nettable_walker 192.168.10.0/24 route sourced locally---------> Routes

advertised

BGP: topo global:IPv4 Unicast:base Remove_fwdroute for 192.168.10.0/24

BGP: TX IPv4 Unicast Net global 192.168.10.0/24 RIB done.

BGP: TX IPv4 Unicast Tab RIB walk done version 8, added 1 topologies.

BGP: TX IPv4 Unicast Tab Executing.

BGP: TX IPv4 Unicast Wkr global 4 Cur Processing.

BGP: TX IPv4 Unicast Top global Appending nets from attr 0x00007ffecc9b7c70.

BGP: TX IPv4 Unicast Wkr global 4 Cur Attr change from 0x0000000000000000 to

0x00007ffecc9b7c70.

BGP: TX IPv4 Unicast Rpl global 4 1 Net 10.106.44.0/24 Set advertised bit (total 1).

BGP: TX IPv4 Unicast Wkr global 4 Cur Net 10.106.44.0/24 Formatted.

BGP: TX IPv4 Unicast Rpl global 4 1 Net 172.16.20.0/24 Set advertised bit (total 2).

BGP: TX IPv4 Unicast Wkr global 4 Cur Net 172.16.20.0/24 Formatted.

BGP: TX IPv4 Unicast Rpl global 4 1 Net 192.168.10.0/24 Set advertised bit (total 4).

BGP: TX IPv4 Unicast Wkr global 4 Cur Net 192.168.10.0/24 Formatted.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Top global Added tail marker with version 8.

BGP: TX IPv4 Unicast Wkr global 4 Cur Reached marker with version 8.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Wkr global 4 Cur Replicating.

BGP: TX IPv4 Unicast Wkr global 4 Cur Done (end of list), processed 1 attr(s),

4/4 net(s), 0 pos.

BGP: TX IPv4 Unicast Grp global 4 Start minimum advertisement timer (30 secs).

BGP: TX IPv4 Unicast Wkr global 4 Cur Blocked (minimum advertisement interval).

BGP: TX IPv4 Unicast Grp global 4 Converged.

BGP: TX IPv4 Unicast Tab Processed 1 walker(s).

BGP: TX IPv4 Unicast Tab Generation completed.

BGP: TX IPv4 Unicast Top global Deleting first marker with version 4.

BGP: TX IPv4 Unicast Top global Collection reached marker 4 after 0 net(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 8 after 4 net(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 8 after 0 net(s).

BGP: TX Member message pool under period (60 < 600).

BGP: TX IPv4 Unicast Tab RIB walk done version 8, added 1 topologies.

Per risolvere il problema, immettere questi comandi:

- show asp table socket

- mostra router adiacente bgp

- mostra riepilogo bgp

- show route bgp

- show bgp cidr-only

- mostra riepilogo ciclo di lavorazione