Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Limitazioni

Configurazione

Problematiche durante la risoluzione dei problemi

Esempio di rete

Configurazioni

Verifica

Risoluzione dei problemi

Introduzione

In questo documento viene descritto come configurare Border Gateway Protocol (BGP) IPv6 Flowspec su ASR1K.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza di questo argomento:

- Indipendente dalla piattaforma

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- IOS-XE

- ASR 1000

- ASR9K

- ASR1K

- BGP

- Flowspec

- IPv6

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

Flowspec specifica le procedure per la distribuzione delle regole di specifica di flusso tramite BGP e definisce la procedura per codificare le regole di specifica di flusso come Border Gateway Protocol Network Layer Reachability Information (BGP NLRI) che può essere utilizzato in qualsiasi applicazione. Definisce anche l'applicazione allo scopo di filtrare i pacchetti in modo da mitigare gli attacchi Denial of Service (distribuiti).

Limitazioni

di seguito sono riportati i limiti della configurazione:

- Nelle regole di flowspec non è consentito usare una combinazione di famiglie di indirizzi.

- In uno scenario di corrispondenza multipla, viene applicata solo la prima regola flowspec corrispondente.

- È supportato un massimo di 3000 regole flowspec per sistema.

Configurazione

Nell'esempio, ASR9K è stato configurato come controller e ASR1K come client PE, RR e Flowspec.

Questa è la configurazione minima necessaria per il funzionamento di IPv6 Flowspec.

On controller to push the policy to PE/client:

class-map type traffic match-all FLOWSPEC

match destination-address ipv6 2001:db8::/32   <<<<< Match destination address/subnet.

end-class-map

!

policy-map type pbr FS_P

class type traffic FLOWSPEC                    <<<<< Apply class-map under policy-map.

drop

!

flowspec

address-family ipv4

service-policy type pbr FSP_V4

!

address-family ipv6

service-policy type pbr FS_P                  <<<<< Apply policy-map inside Flowspec under AF.

!

On PE/client is to enable IPv6 flowspec AF under BGP.

address-family ipv6 flowspec                   <<<<< Under ipv6 flowspec AF, activate the neighbor.

neighbor 10.192.202.5 activate

neighbor 10.192.202.5 validation off

To apply the flowspec policy on interface, "local-install interface-all" command is must under flowspec.

flowspec

local-install interface-all                    <<<<< Push the policy on interface.

- In base alla configurazione del controller, tutto il traffico destinato a 2001:db8:/32 deve essere eliminato in base ai criteri.

- Disattivare la convalida per il router adiacente nella famiglia di indirizzi IPv6 in modo che ASR1K non controlli l'hop successivo.

- Se il criterio è in azione, il contatore viene visualizzato nel controller, ma se si desidera visualizzarlo in qualsiasi altro dispositivo, installare il criterio flowspec in tutte le interfacce utente per cui è richiesto il comando local-install interface-all in flowspec.

Problematiche durante la risoluzione dei problemi

- Se la rete sottostante è IPv4 e BGP flowspec viene eseguito per IPv6, si verifica un problema di controllo di convalida su ogni hop e causa un problema per il criterio IPv6 Flowspec. Mantenere pertanto disattivata la convalida in modo che il router adiacente non esegua il controllo di convalida.

- Se non si tratta di un controller, il contatore delle corrispondenze/azioni del criterio flowspec non è visibile. Per controllare i contatori, l'interfaccia local-install-all deve trovarsi sotto Flowspec (sotto AF). Questo comando esegue il push della configurazione dei criteri di specifica del flusso su tutte le interfacce di un dispositivo per le famiglie di indirizzi IPv4 e IPv6 e sulle interfacce all'interno di un'istanza VRF.

Esempio di rete

+----------------+              +-----------------+            +------------------+             +-----------------+

|                |              |                 |            |                  |             |                 |

|   Controller   +--------------+     PE/RR1      +------------+      PE/RR2      +-------------+      End-PE     |

|     ASR9K      |              |     CRR01       |            |      CRR02       |             |      DCPR01     |

+----------------+              +-----------------+            +------------------+             +-----------------+

Configurazioni

Questa configurazione è basata sul diagramma di rete, come la configurazione.

Controller:

RP/0/RSP0/CPU0:Controller# show running-config

Mon Apr  8 16:33:36.578 UTC

Building configuration...

!! IOS XR Configuration 5.3.4

!! Last configuration change at Wed Apr  3 17:34:59 2019 by admin

!

hostname Controller

cdp

cdp advertise v1

!

class-map type traffic match-all FLOWSPEC

match destination-address ipv6 2001:db8::/32

end-class-map

!

class-map type traffic match-all V4_FLOWSPEC

match source-address ipv4 102.102.102.102 255.255.255.255

end-class-map

!

policy-map type pbr FS_P

class type traffic FLOWSPEC

drop

!

class type traffic class-default

!

end-policy-map

!

policy-map type pbr FSP_V4

class type traffic V4_FLOWSPEC

set dscp ef

!

class type traffic class-default

!

end-policy-map

!

interface Loopback0

ipv4 address 10.192.202.5 255.255.255.255

!

interface Loopback100

ipv4 address 102.102.102.102 255.255.255.255

ipv6 address 2001:db8::1/32

!

interface TenGigE0/0/0/0

ipv4 address 10.10.12.1 255.255.255.0

ipv6 address 2001:10:10:12::1/64

!

route-policy ALL

pass

end-policy

!

router static

address-family ipv4 unicast

203.202.143.33/32 TenGigE0/0/0/0

!

address-family ipv6 unicast

2003::/64 2001:10:10:12::2

!

!

router ospfv3 1

area 0

interface TenGigE0/0/0/0

network point-to-point

!

!

!

router bgp 64696

bgp router-id 10.192.202.5

address-family ipv4 unicast

network 102.102.102.102/32

!

address-family vpnv4 unicast

!

address-family ipv4 flowspec

!

address-family ipv6 flowspec

!

neighbor 203.202.143.33

remote-as 7474

ebgp-multihop 10

update-source Loopback0

address-family ipv4 unicast

route-policy ALL in

route-policy ALL out

!

address-family vpnv4 unicast

!

address-family ipv4 flowspec

route-policy ALL in

route-policy ALL out

!

address-family ipv6 flowspec

route-policy ALL in

route-policy ALL out

!

!

!

flowspec

local-install interface-all

address-family ipv4

service-policy type pbr FSP_V4

!

address-family ipv6

service-policy type pbr FS_P

!

!

end

PE/RR1:

CRR01#show running-config

Building configuration...

!

ipv6 unicast-routing

mpls label protocol ldp

!

spanning-tree extend system-id

flowspec

local-install interface-all

diagnostic bootup level minimal

!

interface Loopback0

ip address 203.202.143.33 255.255.255.255

ip ospf 1 area 0

!

interface Loopback1010

no ip address

ipv6 address 2001:DB8::10/32

!

interface TenGigabitEthernet0/0/0

ip address 10.10.12.2 255.255.255.0

ip ospf network point-to-point

cdp enable

ipv6 address 2001:10:10:12::2/64

!

interface TenGigabitEthernet0/0/3

ip address 10.10.23.2 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

cdp enable

ipv6 address 2003::1/64

mpls ip

!

router ospf 1

mpls ldp autoconfig

!

router bgp 7474

bgp router-id 203.202.143.33

bgp log-neighbor-changes

neighbor 10.192.202.5 remote-as 64696

neighbor 10.192.202.5 ebgp-multihop 10

neighbor 10.192.202.5 update-source Loopback0

neighbor 2001:10:10:12::1 remote-as 64696

neighbor 203.202.143.44 remote-as 7474

neighbor 203.202.143.44 update-source Loopback0

!

address-family ipv4

neighbor 10.192.202.5 activate

no neighbor 2001:10:10:12::1 activate

neighbor 203.202.143.44 activate

neighbor 203.202.143.44 route-reflector-client

exit-address-family

!

address-family ipv4 flowspec

neighbor 10.192.202.5 activate

neighbor 203.202.143.44 activate

neighbor 203.202.143.44 send-community both

neighbor 203.202.143.44 route-reflector-client

exit-address-family

!

address-family ipv6

neighbor 10.192.202.5 activate

neighbor 203.202.143.44 activate

neighbor 203.202.143.44 route-reflector-client

neighbor 203.202.143.44 send-label

exit-address-family

!

address-family ipv6 flowspec

neighbor 10.192.202.5 activate

neighbor 10.192.202.5 validation off

neighbor 203.202.143.44 activate

neighbor 203.202.143.44 send-community both

neighbor 203.202.143.44 route-reflector-client

neighbor 203.202.143.44 next-hop-self

exit-address-family

!

ip route 10.192.202.5 255.255.255.255 10.10.12.1

!

!

ipv6 route 2001:DB8::1/128 2001:10:10:12::1

!

end

PE/RR2:

CRR02#show running-config

Building configuration...

Current configuration : 7227 bytes

!

! Last configuration change at 18:21:29 UTC Mon Apr 8 2019

!

hostname CRR02

!

boot-start-marker

boot system flash bootflash:asr1000rpx86-universalk9.16.10.01a.SPA.bin

boot-end-marker

!

ipv6 unicast-routing

multilink bundle-name authenticated

!

spanning-tree extend system-id

flowspec

diagnostic bootup level minimal

!

interface Loopback0

ip address 203.202.143.44 255.255.255.255

ip ospf 1 area 0

!

interface TenGigabitEthernet1/0/0

ip address 10.10.23.3 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

cdp enable

ipv6 address 2003::2/64

mpls ip

!

interface TenGigabitEthernet1/0/1

ip address 10.10.34.3 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

cdp enable

!

router ospf 1

mpls ldp autoconfig

!

router bgp 7474

bgp router-id 203.202.143.44

bgp log-neighbor-changes

neighbor 203.202.143.33 remote-as 7474

neighbor 203.202.143.33 update-source Loopback0

neighbor 203.202.143.45 remote-as 7474

neighbor 203.202.143.45 update-source Loopback0

!

address-family ipv4

neighbor 203.202.143.33 activate

neighbor 203.202.143.45 activate

exit-address-family

!

address-family ipv4 flowspec

neighbor 203.202.143.33 activate

neighbor 203.202.143.45 activate

neighbor 203.202.143.45 send-community both

neighbor 203.202.143.45 route-reflector-client

exit-address-family

!

address-family ipv6

neighbor 203.202.143.33 activate

neighbor 203.202.143.33 send-label

exit-address-family

!

address-family ipv6 flowspec

neighbor 203.202.143.33 activate

neighbor 203.202.143.33 validation off

neighbor 203.202.143.45 activate

neighbor 203.202.143.45 send-community both

neighbor 203.202.143.45 route-reflector-client

exit-address-family

!

ipv6 route 2001:10:10:12::/64 2003::1

ipv6 route 2001:DB8::1/128 2003::1

!

end

End-PE:

DCPR01#show running-config

Building configuration...

!

hostname DCPR01

!

subscriber templating

!

ipv6 unicast-routing

!

flowspec

diagnostic bootup level minimal

!

interface Loopback0

ip address 203.202.143.45 255.255.255.255

ip ospf 1 area 0

!

interface TenGigabitEthernet1/3/0

ip address 10.10.34.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

cdp enable

ipv6 address 2001::1/64

!

router ospf 1

mpls ldp autoconfig

!

router bgp 7474

bgp router-id 203.202.143.45

bgp log-neighbor-changes

neighbor 203.202.143.44 remote-as 7474

neighbor 203.202.143.44 update-source Loopback0

!

address-family ipv4 flowspec

neighbor 203.202.143.44 activate

exit-address-family

!

address-family ipv6 flowspec

neighbor 203.202.143.44 activate

neighbor 203.202.143.44 validation off

exit-address-family

!

ipv6 route ::/0 TenGigabitEthernet1/3/0

!

end

Verifica

PE/RR2:

CRR02#ping 2001:db8::1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2001:DB8::1, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

CRR02#

Controller:

RP/0/RSP0/CPU0:Controller#show bgp ipv6 flowspec

Mon Apr  8 17:55:17.041 UTC

BGP router identifier 10.192.202.5, local AS number 64696

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0x0   RD version: 20

BGP main routing table version 20

BGP NSR Initial initsync version 0 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

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

i - internal, r RIB-failure, S stale, N Nexthop-discard

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

Network            Next Hop            Metric LocPrf Weight Path

*> Dest:2001:db8::/0-32/56

::                                     0 i

Processed 1 prefixes, 1 paths

RP/0/RSP0/CPU0:Controller#show flowspec ipv6 detail

Mon Apr  8 17:55:36.786 UTC

AFI: IPv6

Flow           :Dest:2001:db8::/0-32

Actions      :Traffic-rate: 0 bps  (policy.1.FS_P.FLOWSPEC)

Statistics                        (packets/bytes)

Matched             :                  14/1652

Dropped             :                  14/1652

RP/0/RSP0/CPU0:BGL14.1.J.05-ASR-9000-1#

PE/RR1:

CRR01#show bgp ipv6 flowspec

BGP table version is 2, local router ID is 203.202.143.33

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

r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,

x best-external, a additional-path, c RIB-compressed,

t secondary path,

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

RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path

*>   Dest:2001:DB8::/0-32

::                                     0 64696 i

CRR01#

CRR01#show flowspec ipv6 detail

AFI: IPv6

Flow           :Dest:2001:DB8::/0-32

Actions      :Traffic-rate: 0 bps  (bgp.1)

Statistics                        (packets/bytes)

Matched             :                   4/456

Dropped             :                   4/456

CRR01#

Risoluzione dei problemi

Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.

Suggerimento: Se si apre una richiesta con la versione 3.16.5S e si incontra un bug con ID CSCva5510. Anche se non è documentato nel bug, si applica all'IPv6. Questa condizione viene confermata dall'unità BGP di ASR1K e convalidata. Un altro bug CSCvp18767 è stato archiviato anche per il comando show, che è stato risolto nella versione 16.12.1. Tuttavia, la specifica di flusso IPv6 può funzionare in qualsiasi versione 16.x.