Esta configuração de exemplo demonstra como executar o Border Gateway Protocol (BGP) em um Security Appliance (PIX/ASA) e como obter redundância em um ambiente de BGP e PIX multihomed. Com um diagrama de rede como exemplo, este documento explica como rotear automaticamente o tráfego para o provedor de serviços de Internet B (ISP-B) quando o AS 64496 perde a conectividade com o ISP-A (ou o inverso), através do uso de protocolos de roteamento dinâmico que são executados entre todos os roteadores no AS 64496.
Como o BGP usa pacotes TCP unicast na porta 179 para se comunicar com seus pares, você pode configurar PIX1 e PIX2 para permitir o tráfego unicast na porta TCP 179. Dessa forma, o peering BGP pode ser estabelecido entre os roteadores que estão conectados pelo firewall. A redundância e as políticas de roteamento desejadas podem ser obtidas através da manipulação dos atributos BGP.
Os leitores deste documento devem estar familiarizados com Configuração de BGP e Configuração Básica de Firewall.
Os cenários de exemplo neste documento são baseados nas seguintes versões de software:
Roteadores Cisco 2600 com Cisco IOS? Software versão 12.2(27)
PIX 515 com Cisco PIX Firewall versão 6.3(3) e posterior
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Esta configuração também pode ser utilizada com estas versões de hardware e software:
Cisco Adaptive Security Appliance (ASA) 5500 Series com versão 7.x e posterior
Cisco Firewall Services Module (FWSM) que executa a versão de software 3.2 e posterior
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Esta seção fornece informações para configurar os recursos descritos neste documento.
Observação: para encontrar informações adicionais sobre os comandos neste documento, use a Command Lookup Tool (somente clientes registrados) .
Este documento utiliza a seguinte configuração de rede:
Nesta configuração de rede, Router12 e Router22 (que pertencem ao AS 64496) são multihomed para Router14 (ISP-A) e Router24 (ISP-B), respectivamente, para redundância. A rede interna 192.168.10.0/24 está no interior do firewall. Router11 e Router21 se conectam ao Router12 e ao Router22 por meio do firewall. PIX1 e PIX2 não estão configurados para executar a NAT (Network Address Translation Conversão de Endereço de Rede).
Neste cenário, o Router12 no AS 64496 faz peering de BGP externo (eBGP) com o Router14 (ISP-A) no AS 64500. O Router12 também faz peering de BGP interno (iBGP) com o Router11 através do PIX1. Se as rotas aprendidas do eBGP do ISP-A estiverem presentes, o Router12 anuncia uma rota padrão 0.0.0.0/0 no iBGP para o Router11. Se o link para o ISP-A falhar, o Roteador12 para de anunciar a rota padrão.
Da mesma forma, o Router22 no AS 64496 faz o peering do eBGP com o Router24 (ISP-B) no AS 64503 e anuncia uma rota padrão no iBGP para o Router21 condicionalmente baseada na presença de rotas ISP-B em sua tabela de roteamento.
Através do uso de uma lista de acesso, PIX1 e PIX2 são configurados para permitir o tráfego BGP (TCP, porta 179) entre os peers iBGP. Isso ocorre porque as interfaces PIX têm um nível de segurança associado. Por padrão, a interface interna (ethernet1) tem um nível de segurança 100 e a interface externa (ethernet0) tem um nível de segurança 0. As conexões e o tráfego são normalmente permitidos de interfaces de nível de segurança mais alto a mais baixo. Para permitir o tráfego de uma interface de nível de segurança mais baixo para uma interface de nível de segurança mais alto, no entanto, você deve definir explicitamente uma lista de acesso no PIX. Além disso, você deve configurar uma conversão de NAT estático em PIX1 e PIX2, para permitir que os roteadores externos iniciem uma sessão de BGP com roteadores no interior do PIX.
O Router11 e o Router21 anunciam condicionalmente a rota padrão no domínio OSPF (Open Shortest Path First) com base na rota padrão aprendida pelo iBGP. O Router11 anuncia a rota padrão no domínio OSPF com uma métrica de 5, o Router21 anuncia a rota padrão com uma métrica de 30 e, portanto, a rota padrão do Router11 é preferencial. Essa configuração ajuda a propagar somente a rota padrão 0.0.0.0/0 para o Roteador11 e o Roteador21, que conserva o consumo de memória nos roteadores internos e alcança o desempenho ideal.
Assim, para resumir essas condições, esta é a política de roteamento para AS 64496:
O AS 64496 prefere o link do Roteador12 ao ISP-A para todo o tráfego de saída (de 192.168.10.0/24 para a Internet).
Se a conectividade com o ISP-A falhar, todo o tráfego é roteado através do link do Roteador 22 para o ISP-B.
Todo o tráfego que vem da Internet para 192.168.10.0/24 usa o link do ISP-A para o Roteador12.
Se o link do ISP-A para o Roteador 12 falhar, todo o tráfego de entrada será roteado através do link do ISP-B para o Roteador 22.
Este cenário usa estas configurações:
Roteador11 |
---|
hostname Router11 ! interface FastEthernet0/0 ip address 192.168.10.1 255.255.255.0 !--- Connected to Router21. ! interface FastEthernet0/1 ip address 172.16.11.1 255.255.255.0 !--- Connected to PIX1. ! router ospf 1 log-adjacency-changes network 192.168.10.0 0.0.0.255 area 0 default-information originate metric 5 route-map check-default !--- A default route is advertised into OSPF conditionally (based on whether the link !--- from Router12 to ISP-A is active), with a metric of 5. router bgp 64496 no synchronization bgp log-neighbor-changes network 192.168.10.0 neighbor 172.16.12.2 remote-as 64496 !--- Configures Router12 as an iBGP peer . distance bgp 20 105 200 !--- Administrative distance of iBGP learned routes is changed from default 200 to 105. no auto-summary ! ip route 172.16.12.0 255.255.255.0 172.16.11.10 !--- Static route to iBGP peer, because it is not directly connected. ! access-list 30 permit 0.0.0.0 access-list 31 permit 172.16.12.2 route-map check-default permit 10 match ip address 30 match ip next-hop 31 |
Roteador12 |
---|
hostname Router12 ! interface FastEthernet0/0 ip address 172.16.13.2 255.255.255.0 !--- Connected to Router14 (ISP-A). ! interface FastEthernet0/1 ip address 172.16.12.2 255.255.255.0 !--- Connected to PIX1. ! router bgp 64496 no synchronization neighbor 172.16.11.1 remote-as 64496 neighbor 172.16.11.1 next-hop-self neighbor 172.16.11.1 default-originate route-map check-ispa-route !--- A default route is advertised to Router11 conditionally (based on whether the link !--- from Router12 to ISP-A is active). neighbor 172.16.11.1 distribute-list 1 out neighbor 172.16.13.4 remote-as 64500 !--- Configures Router14 (ISP-A) as an eBGP peer. neighbor 172.16.13.4 route-map adv-to-ispa out no auto-summary ! ip route 172.16.11.0 255.255.255.0 172.16.12.10 !--- Static route to iBGP peer, because it is not directly connected. ! access-list 1 permit 0.0.0.0 access-list 10 permit 192.168.10.0 access-list 20 permit 10.10.20.0 0.0.0.255 access-list 21 permit 172.16.13.4 ! route-map check-ispa-route permit 10 match ip address 20 match ip next-hop 21 ! route-map adv-to-ispa permit 10 match ip address 10 |
Roteador14 (ISP-A) |
---|
hostname Router14 ! interface Ethernet0/0 ip address 172.16.13.4 255.255.255.0 ! interface Ethernet0/1 ip address 10.10.20.1 255.255.255.0 ! router bgp 64500 network 10.10.20.0 mask 255.255.255.0 neighbor 172.16.13.2 remote-as 64496 !--- Configures Router12 as an eBGP peer. ! |
Roteador21 |
---|
hostname Router21 ! interface FastEthernet0/0 ip address 192.168.10.2 255.255.255.0 !--- Connected to Router11. ! interface FastEthernet0/1 ip address 172.16.21.1 255.255.255.0 !--- Connected to PIX2. ! router ospf 1 network 192.168.10.0 0.0.0.255 area 0 default-information originate metric 30 route-map check-default !--- A default route is advertised into OSPF conditionally (based on whether the link !--- from Router22 to ISP-B is active), with a metric of 30. ! router bgp 64496 no synchronization network 192.168.10.0 neighbor 172.16.22.2 remote-as 64496 !--- Configures Router22 as an iBGP peer. ! ip route 172.16.22.0 255.255.255.0 172.16.21.10 !--- Static route to iBGP peer, because it is not directly connected. ! access-list 30 permit 0.0.0.0 access-list 31 permit 172.16.22.2 route-map check-default permit 10 match ip address 30 match ip next-hop 31 ! |
Roteador22 |
---|
hostname Router22 ! interface FastEthernet0/0 ip address 172.16.23.2 255.255.255.0 !--- Connected to Router24 (ISP-B). ! interface FastEthernet0/1 ip address 172.16.22.2 255.255.255.0 !--- Connected to PIX2. ! router bgp 64496 no synchronization bgp log-neighbor-changes neighbor 172.16.21.1 remote-as 64496 !--- Configure Router21 as an iBGP peer. neighbor 172.16.21.1 next-hop-self neighbor 172.16.21.1 default-originate route-map check-ispb-route !--- A default route is advertised to Router21 conditionally (based on whether the link !--- from Router22 to ISP-B is active). ! neighbor 172.16.21.1 distribute-list 1 out neighbor 172.16.23.4 remote-as 64503 neighbor 172.16.23.4 route-map adv-to-ispb out ! ip route 172.16.21.0 255.255.255.0 172.16.22.10 !--- Static route to iBGP peer, because it is not directly connected. ! access-list 1 permit 0.0.0.0 access-list 10 permit 192.168.10.0 access-list 20 permit 10.10.30.0 0.0.0.255 access-list 21 permit 172.16.23.4 ! route-map check-ispb-route permit 10 match ip address 20 match ip next-hop 21 ! route-map adv-to-ispb permit 10 match ip address 10 set as-path prepend 10 10 10 !--- Route map used to change the AS path attribute of outgoing updates. |
Roteador24 (ISP-B) |
---|
hostname Router24 ! interface Loopback0 ip address 10.10.30.1 255.255.255.0 ! interface FastEthernet0/0 ip address 172.16.23.4 255.255.255.0 ! router bgp 64503 bgp log-neighbor-changes network 10.10.30.0 mask 255.255.255.0 neighbor 172.16.23.2 remote-as 64496 !--- Configures Router22 as an eBGP peer. ! |
PIX1 |
---|
nameif ethernet0 outside security0 nameif ethernet1 inside security100 ip address outside 172.16.12.10 255.255.255.0 ip address inside 172.16.11.10 255.255.255.0 !--- Configures the IP addresses for the inside and outside interfaces. access-list acl-1 permit tcp host 172.16.12.2 host 172.16.11.1 eq bgp !--- Access list allows BGP traffic to pass from outside to inside. access-list acl-1 permit icmp any any !--- Allows ping to pass through for testing purposes only. access-group acl-1 in interface outside nat (inside) 0 0.0.0.0 0.0.0.0 0 0 !--- No NAT translation, to allow Router11 on the inside to initiate a BGP session !--- to Router12 on the outside of PIX. static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255 !--- Static NAT translation, to allow Router12 on the outside to initiate a BGP session !--- to Router11 on the inside of PIX. route outside 0.0.0.0 0.0.0.0 172.16.12.2 1 route inside 192.168.10.0 255.255.255.0 172.16.11.1 1 |
PIX2 |
---|
nameif ethernet0 outside security0 nameif ethernet1 inside security100 ip address outside 172.16.22.10 255.255.255.0 ip address inside 172.16.21.10 255.255.255.0 !--- Configures the IP addresses for the inside and outside interfaces. access-list acl-1 permit tcp host 172.16.22.2 host 172.16.21.1 eq bgp !--- Access list allows BGP traffic to pass from outside to inside. access-list acl-1 permit icmp any any !--- Allows ping to pass through for testing purposes only. access-group acl-1 in interface outside route outside 0.0.0.0 0.0.0.0 172.16.22.2 1 route inside 192.168.10.0 255.255.255.0 172.16.21.1 1 nat (inside) 0 0.0.0.0 0.0.0.0 0 0 !--- No NAT translation, to allow Router21 on the inside to initiate a BGP session !--- to Router22 on the outside of PIX. static (inside,outside) 172.16.21.1 172.16.21.1 netmask 255.255.255.255 ! -- Static NAT translation, to allow Router22 on the outside to initiate a BGP session !--- to Router21 on the inside of PIX. |
Use esta seção para confirmar se a sua configuração funciona corretamente.
A Output Interpreter Tool ( somente clientes registrados) (OIT) oferece suporte a determinados comandos show. Use a OIT para exibir uma análise da saída do comando show.
Quando ambas as sessões de BGP estão ativas, você pode esperar que todos os pacotes sejam roteados via ISP-A. Considere a tabela BGP no Router11. Ele aprende uma rota padrão 0.0.0.0/0 do Roteador12 com o salto seguinte 172.16.12.2.
Router11# show ip bgp BGP table version is 14, local router ID is 192.168.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i0.0.0.0 172.16.12.2 100 0 i *> 192.168.10.0 0.0.0.0 0 32768 i
A rota padrão 0.0.0.0/0 que é aprendida via BGP é instalada na tabela de roteamento, como mostrado na saída de show ip route no Router11.
Router11# show ip route Codes: C - connected, S - static, I - IGRP, 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, E - EGP i - IS-IS, 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 Gateway of last resort is 172.16.12.2 to network 0.0.0.0 C 192.168.10.0/24 is directly connected, FastEthernet0/0 172.16.0.0/24 is subnetted, 2 subnets S 172.16.12.0 [1/0] via 172.16.11.10 C 172.16.11.0 is directly connected, FastEthernet0/1 B* 0.0.0.0/0 [105/0] via 172.16.12.2, 00:27:24
Agora, considere a tabela BGP no Roteador21. Ele também aprende a rota padrão via Router22.
Router21# show ip bgp BGP table version is 8, local router ID is 192.168.10.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i0.0.0.0 172.16.22.2 100 0 i *> 192.168.10.0 0.0.0.0 0 32768
Agora, veja se essa rota padrão aprendida por BGP é instalada na tabela de roteamento do Router21.
Router21# show ip route Codes: C - connected, S - static, I - IGRP, 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, E - EGP i - IS-IS, 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 Gateway of last resort is 192.168.10.1 to network 0.0.0.0 C 192.168.10.0/24 is directly connected, FastEthernet0/0 172.16.0.0/24 is subnetted, 2 subnets C 172.16.21.0 is directly connected, FastEthernet0/1 S 172.16.22.0 [1/0] via 172.16.21.10 O*E2 0.0.0.0/0 [110/5] via 192.168.10.1, 00:27:06, FastEthernet0/0
A rota padrão no Router21 é aprendida via OSPF (observe o prefixo O na rota 0.0.0.0/0). É interessante observar que há uma rota padrão aprendida via BGP do Roteador22, mas a saída show ip route mostra a rota padrão aprendida via OSPF.
A rota padrão OSPF foi instalada no Roteador21 porque o Roteador21 aprende a rota padrão de duas fontes: Roteador22 via iBGP e Roteador11 via OSPF. O processo de seleção de rota instala a rota com uma distância administrativa melhor na tabela de roteamento. A distância administrativa do OSPF é 110, enquanto a distância administrativa do iBGP é 200. Portanto, a rota padrão aprendida com OSPF é instalada na tabela de roteamento, porque 110 é menor que 200. Para obter mais informações sobre a seleção de rotas, consulte Seleção de rotas em Cisco Routers.
Use esta seção para resolver problemas de configuração.
Reduza a sessão BGP entre o Roteador12 e o ISP-A.
Router12(config)# interface fas 0/0 Router12(config-if)# shut 1w0d: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down 1w0d: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
O Router11 não tem a rota padrão aprendida via BGP do Router12.
Router11# show ip bgp BGP table version is 16, local router ID is 192.168.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.10.0 0.0.0.0 0
Verifique a tabela de roteamento no Roteador11. A rota padrão é aprendida via OSPF (distância administrativa de 110) com um próximo salto do Roteador21.
Router11# show ip route !--- Output suppressed. Gateway of last resort is 192.168.10.2 to network 0.0.0.0 C 192.168.10.0/24 is directly connected, FastEthernet0/0 172.16.0.0/24 is subnetted, 2 subnets S 172.16.12.0 [1/0] via 172.16.11.10 C 172.16.11.0 is directly connected, FastEthernet0/1 O*E2 0.0.0.0/0 [110/30] via 192.168.10.2, 00:00:09, FastEthernet0/0
Essa saída é esperada de acordo com as políticas predefinidas. Neste ponto, no entanto, é importante entender o comando de configuração distance bgp 20 105 200 no Router11 e como ele influencia a seleção de rota no Router11.
Os valores padrão desse comando são distance bgp 20 200 200, onde as rotas aprendidas pelo eBGP têm uma distância administrativa de 20, as rotas aprendidas pelo iBGP têm uma distância administrativa de 200 e as rotas locais do BGP têm uma distância administrativa de 200.
Quando o link entre o Router12 e o ISP-A é ativado novamente, o Router11 aprende a rota padrão via iBGP do Router12. No entanto, como a distância administrativa padrão dessa rota aprendida com iBGP é 200, ela não substituirá a rota aprendida com OSPF (porque 110 é menor que 200). Isso força todo o tráfego de saída para o link do Roteador 21 para o Roteador 22 para o ISP-B, mesmo que o link do Roteador 12 para o ISP-A esteja ativo novamente. Para resolver esse problema, altere a distância administrativa da rota aprendida pelo iBGP para um valor menor que o IGP (Interior Gateway Protocol) usado. Neste exemplo, o IGP é o OSPF, portanto foi escolhida uma distância de 105 (porque 105 é menor que 110).
Para obter mais informações sobre o comando distance bgp, consulte Comandos BGP. Para obter mais informações sobre multihoming com BGP, consulte Compartilhamento de Carga com BGP em Ambientes Single e Multihomed: Exemplo de configurações.
Neste cenário, o Router11 é diretamente o peering eBGP com o Router 14 (ISP-A), e o Router21 é diretamente o peering eBGP com o Router24 (ISP-B). Router12 e Router22 não participam do peering de BGP, mas fornecem a conectividade IP aos ISPs. Como os peers do eBGP não são vizinhos diretamente conectados, o comando neighbor ebgp-multihop é usado nos roteadores participantes. O comando neighbor ebgp-multihop permite que o BGP substitua o limite padrão de eBGP de um salto porque altera o Tempo de Vida (TTL) dos pacotes de eBGP do valor padrão de 1. Nesse cenário, o vizinho eBGP está a 3 saltos de distância, portanto, o vizinho ebgp-multihop 3 é configurado nos roteadores participantes para que o valor TTL seja alterado para 3. Além disso, as rotas estáticas são configuradas nos roteadores e no PIX para garantir que o Router11 possa fazer ping no endereço 172.16.13.4 do Router14 (ISP-A) e para garantir que o Router21 possa fazer ping no endereço 172.16.23.4 do Router24.
Por padrão, o PIX não permite a passagem de pacotes ICMP (Internet Control Message Protocol) (enviados quando você emite o comando ping). Para permitir pacotes ICMP, use o comando access-list conforme mostrado na próxima configuração do PIX. Para obter mais informações sobre o comando access-list, consulte os Comandos PIX Firewall A a B.
A política de roteamento é a mesma do cenário 1: o link entre o Router12 e o ISP-A é preferencial em relação ao link entre o Router22 e o ISP-B, e quando o link ISP-A é desativado, o link ISP-B é usado para todo o tráfego de entrada e saída.
Este cenário usa estas configurações:
Roteador11 |
---|
hostname Router11 ! interface FastEthernet0/0 ip address 192.168.10.1 255.255.255.0 !--- Connected to Router21. ! interface FastEthernet0/1 ip address 172.16.11.1 255.255.255.0 !--- Connected to PIX1. ! router bgp 64496 no synchronization bgp log-neighbor-changes network 192.168.10.0 neighbor 172.16.13.4 remote-as 64500 neighbor 172.16.13.4 ebgp-multihop 3 !--- To accept and attempt BGP connections to external peers that reside on networks that !--- are not directly connected. neighbor 172.16.13.4 route-map set-pref in !--- Sets higher local-preference for learned routes. neighbor 172.16.13.4 route-map adv_to_ispa out neighbor 192.168.10.2 remote-as 64496 neighbor 192.168.10.2 next-hop-self no auto-summary ! ip route 172.16.12.0 255.255.255.0 172.16.11.10 ip route172.16.13.4 255.255.255.255 172.16.11.10 !--- Static route to eBGP peer, because it is not directly connected. ! access-list 20 permit 192.168.10.0 ! route-map set-pref permit 10 set local-preference 200 ! route-map adv_to_ispa permit 10 match ip address 20 ! |
Roteador12 |
---|
hostname Router12 ! interface FastEthernet0/0 ip address 172.16.13.2 255.255.255.0 !--- Connected to ISP-A. ! interface FastEthernet0/1 ip address 172.16.12.2 255.255.255.0 !--- Connected to PIX1. ! ip route 172.16.11.0 255.255.255.0 172.16.12.10 ip route 192.168.10.0 255.255.255.0 172.16.12.10 |
Roteador14 (ISP-A) |
---|
hostname Router14 ! interface Ethernet0/0 ip address 172.16.13.4 255.255.255.0 ! interface Ethernet0/1 ip address 10.10.20.1 255.255.255.0 ! router bgp 64500 no synchronization network 10.10.20.0 mask 255.255.255.0 neighbor 172.16.11.1 remote-as 64496 neighbor 172.16.11.1 ebgp-multihop 3 !--- To accept and attempt BGP connections to external peers that reside on networks that !--- are not directly connected. neighbor 172.16.11.1 default-originate !--- Advertises a default route to Router11. no auto-summary ! ip route 172.16.11.1 255.255.255.255 172.16.13.2 !--- Static route to eBGP peers, because it is not directly connected. |
Roteador21 |
---|
hostname Router21 ! interface FastEthernet0/0 ip address 192.168.10.2 255.255.255.0 !--- Connected to Router11. ! interface FastEthernet0/1 ip address 172.16.21.1 255.255.255.0 !--- Connected to PIX2. ! router bgp 64496 no synchronization network 192.168.10.0 neighbor 172.16.23.4 remote-as 64503 neighbor 172.16.23.4 ebgp-multihop 3 !--- To accept and attempt BGP connections to external peers that reside on networks that !--- are not directly connected. neighbor 172.16.23.4 route-map adv_to_ispb out neighbor 192.168.10.1 remote-as 64496 neighbor 192.168.10.1 next-hop-self no auto-summary ! ip route 172.16.22.0 255.255.255.0 172.16.21.10 ip route172.16.23.4 255.255.255.255 172.16.21.10 !--- Static routes configured to reach BGP peer. ! access-list 20 permit 192.168.10.0 ! route-map adv_to_ispb permit 10 match ip address 20 set as-path prepend 10 10 10 |
Roteador22 |
---|
hostname Router22 ! interface FastEthernet0/0 ip address 172.16.23.2 255.255.255.0 !--- Connected to Router24 (ISP-B). ! interface FastEthernet0/1 ip address 172.16.22.2 255.255.255.0 !--- Connected to PIX2. ! ip route 172.16.21.0 255.255.255.0 172.16.22.10 ip route 192.168.10.0 255.255.255.0 172.16.22.10 |
Roteador24 (ISP-B) |
---|
hostname Router24 ! interface Loopback0 ip address 10.10.30.1 255.255.255.0 ! interface FastEthernet0/0 ip address 172.16.23.4 255.255.255.0 !--- Connected to Router22. ! router bgp 64503 no synchronization bgp log-neighbor-changes network 10.10.30.0 mask 255.255.255.0 neighbor 172.16.21.1 remote-as 64496 neighbor 172.16.21.1 ebgp-multihop 3 !--- To accept and attempt BGP connections to external peers that reside on networks that !--- are not directly connected. neighbor 172.16.21.1 default-originate !--- Advertises a default route to Router21. no auto-summary ! ip route 172.16.21.1 255.255.255.255 172.16.23.2 !--- Static route for BGP peer Router11, because it is not directly connected. |
PIX1 |
---|
nameif ethernet0 outside security0 nameif ethernet1 inside security100 ip address outside 172.16.12.10 255.255.255.0 ip address inside 172.16.11.10 255.255.255.0 access-list acl-1 permit tcp host 172.16.13.4 host 172.16.11.1 eq bgp !-- Access list allows BGP traffic to pass from outside to inside. access-list acl-1 permit icmp any any !-- Allows ping to pass through for testing purposes only. access-group acl-1 in interface outside nat (inside) 0 0.0.0.0 0.0.0.0 0 0 static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255 route outside 0.0.0.0 0.0.0.0 172.16.12.2 1 route inside 192.168.10.0 255.255.255.0 172.16.11.1 1 |
PIX2 |
---|
nameif ethernet0 outside security0 nameif ethernet1 inside security100 ip address outside 172.16.22.10 255.255.255.0 ip address inside 172.16.21.10 255.255.255.0 access-list acl-1 permit tcp host 172.16.23.4 host 172.16.21.1 eq bgp !-- Access list allows BGP traffic to pass from outside to inside. access-list acl-1 permit icmp any any !-- Allows ping to pass through for testing purposes only. access-group acl-1 in interface outside route outside 0.0.0.0 0.0.0.0 172.16.22.2 1 route inside 192.168.10.0 255.255.255.0 172.16.21.1 1 nat (inside) 0 0.0.0.0 0.0.0.0 0 0 static (inside,outside) 172.16.21.1 172.16.21.1 netmask 255.255.255.255 |
Comece com a situação em que os links para ISP-A e ISP-B estão ativos. A saída do comando show ip bgp summary no Router11 e Router21 confirma as sessões BGP estabelecidas com ISP-A e ISP-B, respectivamente.
Router11# show ip bgp summary BGP router identifier 192.168.10.1, local AS number 10 BGP table version is 13, main routing table version 13 4 network entries and 5 paths using 568 bytes of memory 7 BGP path attribute entries using 420 bytes of memory 2 BGP AS-PATH entries using 48 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 activity 43/264 prefixes, 75/70 paths, scan interval 15 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.13.4 4 64500 1627 1623 13 0 0 02:13:36 2 192.168.10.2 4 64496 1596 1601 13 0 0 02:08:47 2 Router21# show ip bgp summary !--- Output suppressed. Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.23.4 4 64503 1610 1606 8 0 0 02:06:22 2 192.168.10.1 4 64496 1603 1598 8 0 0 02:10:16 3
A tabela de BGP no Router11 mostra a rota padrão (0.0.0.0/0) em direção ao próximo salto ISP-A 172.16.13.4.
Router11# show ip bgp BGP table version is 13, local router ID is 192.168.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 172.16.13.4 200 0 20 i *> 10.10.20.0/24 172.16.13.4 0 200 0 64500 i *>i10.10.30.0/24 192.168.10.2 0 100 0 64503 i * i192.168.10.0 192.168.10.2 0 100 0 i *> 0.0.0.0 0 32768 i
Agora, verifique a tabela BGP no Roteador21. Ele tem duas rotas 0.0.0.0/0: um aprendeu com o ISP-B com um salto seguinte de 172.16.23.4 no eBGP, e o outro aprendeu através do iBGP com uma preferência local de 200. O Router21 prefere rotas aprendidas pelo iBGP devido ao atributo de preferência local mais alto, de modo que ele instala essa rota na tabela de roteamento. Para obter mais informações sobre a seleção de caminho BGP, consulte o algoritmo de seleção de melhor caminho BGP.
Router21# show ip bgp BGP table version is 8, local router ID is 192.168.10.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 0.0.0.0 172.16.23.4 0 64503 i *>i 192.168.10.1 200 0 64500 i *>i10.10.20.0/24 192.168.10.1 0 200 0 64500 i *> 10.10.30.0/24 172.16.23.4 0 0 64503 i *> 192.168.10.0 0.0.0.0 0 32768 i * i 192.168.10.1 0 100 0 i
Desative a sessão do Roteador11 e do BGP do ISP-A.
Router11(config)# interface fas 0/1 Router11(config-if)# shut 4w2d: %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down 4w2d: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down 4w2d: %BGP-5-ADJCHANGE: neighbor 172.16.13.4 Down BGP Notification sent 4w2d: %BGP-3-NOTIFICATION: sent to neighbor 172.16.13.4 4/0 (hold time expired)0 bytes
A sessão eBGP para ISP-A cai quando o temporizador holddown (180 segundos) expira.
Router11# show ip bgp summary !--- Output suppressed. Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.13.4 4 64500 1633 1632 0 0 0 00:00:58 Active 192.168.10.2 4 64496 1609 1615 21 0 0 02:18:09
Com o link para ISP-A inativo, o Roteador11 instala 0.0.0.0/0 com um salto seguinte de 192.168.10.2 (Roteador21), que é aprendido via iBGP em sua tabela de roteamento. Isso envia todo o tráfego de saída através do Roteador21 e depois para o ISP-B, como mostrado nesta saída:
Router11# show ip bgp BGP table version is 21, local router ID is 192.168.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i0.0.0.0 192.168.10.2 100 0 64503 i *>i10.10.30.0/24 192.168.10.2 0 100 0 64503 i * i192.168.10.0 192.168.10.2 0 100 0 i *> 0.0.0.0 0 32768 i Router21# show ip bgp BGP table version is 14, local router ID is 192.168.10.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 172.16.23.4 0 64503 i *> 10.10.30.0/24 172.16.23.4 0 0 64503 i *> 192.168.10.0 0.0.0.0 0 32768 i * i 192.168.10.1 0 100 0 i
Assim como qualquer outro protocolo de roteamento, o BGP pode ser configurado para autenticação. Você pode configurar a autenticação MD5 entre dois peers BGP, o que significa que cada segmento enviado na conexão TCP entre os peers é verificado. A autenticação MD5 deve ser configurada com a mesma senha em ambos os peers BGP; caso contrário, a conexão entre eles não será feita. A configuração da autenticação MD5 faz com que o software Cisco IOS gere e verifique o resumo MD5 de cada segmento enviado na conexão TCP. Se a autenticação for chamada e um segmento falhar na autenticação, uma mensagem de erro será gerada.
Quando você está configurando peers BGP com autenticação MD5 que passam por um firewall PIX, é importante configurar o PIX entre os vizinhos BGP para que os números de sequência para os fluxos TCP entre os vizinhos BGP não sejam aleatórios. Isso ocorre porque o recurso TCP random sequence number no PIX firewall está ativado por padrão e altera o número de sequência TCP dos pacotes recebidos antes de encaminhá-los.
A autenticação MD5 é aplicada no cabeçalho TCP psuedo-IP, no cabeçalho TCP e nos dados (consulte RFC 2385 ). O TCP usa esses dados—que incluem a sequência TCP e os números ACK—juntamente com a senha do vizinho BGP para criar um número de hash de 128 bits. O número de hash é incluído no pacote em um campo de opção de cabeçalho TCP. Por padrão, o PIX compensa o número de sequência por um número aleatório, por fluxo TCP. No peer BGP emissor, o TCP usa o número de sequência original para criar o número de hash MD5 de 128 bits e inclui esse número de hash no pacote. Quando o peer BGP receptor recebe o pacote, o TCP usa o número de sequência modificado pelo PIX para criar um número de hash MD5 de 128 bits e o compara ao número de hash que está incluído no pacote.
O número de hash é diferente porque o valor da sequência TCP foi alterado pelo PIX, e o TCP no vizinho BGP descarta o pacote e registra uma mensagem de falha MD5 semelhante a esta:
%TCP-6-BADAUTH: Invalid MD5 digest from 172.16.11.1:1778 to 172.16.12.2:179
Use a palavra-chave norandomseq com o comando static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.0 norandomseq para resolver esse problema e parar a sequência PIX de desconfigurar o TCP número. Este exemplo ilustra o uso da palavra-chave norandomseq:
Roteador11 |
---|
hostname Router11 ! interface FastEthernet0/0 ip address 192.168.10.1 255.255.255.0 !--- Connected to Router21. ! interface FastEthernet0/1 ip address 172.16.11.1 255.255.255.0 !--- Connected to PIX1. ! router ospf 1 log-adjacency-changes network 192.168.10.0 0.0.0.255 area 0 default-information originate metric 5 route-map check-default !--- A default route is originated conditionally, with a metric of 5. ! router bgp 64496 no synchronization bgp log-neighbor-changes network 192.168.10.0 neighbor 172.16.12.2 remote-as 64496 neighbor 172.16.12.2 password 7 08345C5A001A1511110D04 !--- Configures MD5 authentication on BGP. distance bgp 20 105 200 !--- Administrative distance of iBGP-learned routes is changed from default 200 to 105. !--- MD5 authentication is configured for BGP. no auto-summary ! ip route 172.16.12.0 255.255.255.0 172.16.11.10 !--- Static route to iBGP peer, because it is not directly connected. ! access-list 30 permit 0.0.0.0 access-list 31 permit 172.16.12.2 route-map check-default permit 10 match ip address 30 match ip next-hop 31 |
Roteador12 |
---|
hostname Router12 ! interface FastEthernet0/0 ip address 172.16.13.2 255.255.255.0 !--- Connected to ISP-A. ! interface FastEthernet0/1 ip address 172.16.12.2 255.255.255.0 !--- Connected to PIX1. ! router bgp 64496 no synchronization neighbor 172.16.11.1 remote-as 64496 neighbor 172.16.11.1 next-hop-self neighbor 172.16.11.1 default-originate route-map neighbor 172.16.11.1 password 7 08345C5A001A1511110D04 !--- Configures MD5 authentication on BGP. check-ispa-route !--- Originate default to Router11 conditionally if check-ispa-route is a success. !--- MD5 authentication is configured for BGP. neighbor 172.16.11.1 distribute-list 1 out neighbor 172.16.13.4 remote-as 64500 neighbor 172.16.13.4 route-map adv-to-ispa out no auto-summary ! ip route 172.16.11.0 255.255.255.0 172.16.12.10 !--- Static route to iBGP peer, because it is not directly connected. ! access-list 1 permit 0.0.0.0 access-list 10 permit 192.168.10.0 access-list 20 permit 10.10.20.0 0.0.0.255 access-list 21 permit 172.16.13.4 ! route-map check-ispa-route permit 10 match ip address 20 match ip next-hop 21 ! route-map adv-to-ispa permit 10 match ip address 10 |
PIX1 |
---|
nameif ethernet0 outside security0 nameif ethernet1 inside security100 ip address outside 172.16.12.10 255.255.255.0 ip address inside 172.16.11.10 255.255.255.0 access-list acl-1 permit tcp host 172.16.13.4 host 172.16.11.1 eq bgp !--- Access list allows BGP traffic to pass from outside to inside. access-list acl-1 permit icmp any any !--- Allows ping to pass through for testing purposes only. access-group acl-1 in interface outside nat (inside) 0 0.0.0.0 0.0.0.0 0 0 static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255 norandomseq !--- Stops the PIX from offsetting the TCP sequence number. route outside 0.0.0.0 0.0.0.0 172.16.12.2 1 route inside 192.168.10.0 255.255.255.0 172.16.11.1 1 |
Essa seção utiliza esta configuração de rede.
O PIX/ASA versão 7.x e posterior apresenta um desafio adicional quando você tenta estabelecer uma sessão de peering BGP com autenticação MD5. Por padrão, o PIX/ASA versão 7.x e posterior regrava qualquer opção TCP MD5 incluída em um datagrama TCP que passa pelo dispositivo e substitui o tipo, o tamanho e o valor da opção por bytes de opção NOP. Isso efetivamente quebra a autenticação MD5 do BGP e resulta em mensagens de erro como essa em cada roteador de peering:
000296 : Abr 7 2010 15:13:22.221 EDT: %TCP-6-BADAUTH: Nenhum resumo MD5 de 172.16.11.1(28894) a 172.16.12.2(179)
Para que uma sessão BGP com autenticação MD5 seja estabelecida com êxito, esses três problemas devem ser resolvidos:
Desativar aleatorização do número de sequência TCP
Desativar a reescrita da opção TCP MD5
Desativar NAT entre pares
Um mapa de classe e uma lista de acesso são usados para selecionar o tráfego entre os peers que devem estar isentos do recurso de aleatorização do número de sequência TCP e ter permissão para transportar uma opção MD5 sem reescrever. Um mapa tcp é usado para especificar o tipo de opção a ser permitida, nesse caso, o tipo de opção 19 (opção TCP MD5). O mapa de classes e o mapa tcp estão vinculados por meio de um mapa de políticas, parte da infraestrutura da Estrutura de Política Modular. A configuração é ativada com o comando service-policy.
Observação: a necessidade de desabilitar o NAT entre os peers é tratada pelo comando no nat-control.
Na versão 7.0 e posterior, a natureza padrão de um ASA não é nenhum controle de nat, que afirma que cada conexão através do ASA, por padrão, não precisa passar no teste de NAT. Pressupõe-se que o ASA tem uma configuração padrão de sem controle de nat. Consulte nat-control para obter mais informações. Se nat-control for imposto, você deve desativar explicitamente o NAT para os peers BGP. Isso pode ser feito com o comando static entre interfaces internas e externas.
static (inside, outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255
PIX/ASA 7.x/8.x |
---|
ciscoasa# sh run : Saved : ASA Version 8.2(1) ! hostname ciscoasa domain-name example.com enable password 8Ry2YjIyt7RRXU24 encrypted passwd 2KFQnbNIdI.2KYOU encrypted names ! !--- Configure the outside interface. interface Ethernet0/0 nameif outside security-level 0 ip address 172.16.12.10 255.255.255.0 ! !--- Configure the inside interface. interface Ethernet0/1 nameif inside security-level 100 ip address 172.16.11.10 255.255.255.0 ! !-- Output suppressed. !--- Access list to allow incoming BGP sessions !--- from the outside peer to the inside peer access-list OUTSIDE-ACL-IN extended permit tcp host 172.16.12.2 host 172.16.11.1 eq bgp !--- Access list to match BGP traffic. !--- The next line matches traffic from the inside peer to the outside peer access-list BGP-MD5-ACL extended permit tcp host 172.16.11.1 host 172.16.12.2 eq bgp !--- The next line matches traffic from the outside peer to the inside peer access-list BGP-MD5-ACL extended permit tcp host 172.16.12.2 host 172.16.11.1 eq bgp ! !--- TCP-MAP to allow MD5 Authentication. tcp-map BGP-MD5-OPTION-ALLOW tcp-options range 19 19 allow ! !--- Apply the ACL that allows traffic !--- from the outside peer to the inside peer access-group OUTSIDE-ACL-IN in interface outside ! asdm image disk0:/asdm-621.bin no asdm history enable arp timeout 14400 route outside 0.0.0.0 0.0.0.0 172.16.12.2 1 route inside 192.168.10.0 255.255.255.0 172.16.11.1 1 http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart crypto ipsec security-association lifetime seconds 28800 crypto ipsec security-association lifetime kilobytes 4608000 telnet timeout 5 ssh timeout 5 console timeout 0 threat-detection basic-threat threat-detection statistics access-list no threat-detection statistics tcp-intercept ! class-map inspection_default match default-inspection-traffic class-map BGP-MD5-CLASSMAP match access-list BGP-MD5-ACL ! ! policy-map type inspect dns preset_dns_map parameters message-length maximum 512 policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect netbios inspect rsh inspect rtsp inspect skinny inspect esmtp inspect sqlnet inspect sunrpc inspect tftp inspect sip inspect xdmcp class BGP-MD5-CLASSMAP set connection random-sequence-number disable set connection advanced-options BGP-MD5-OPTION-ALLOW ! service-policy global_policy global prompt hostname context Cryptochecksum:64ea55d7271e19eea87c8603ab3768a2 : end |
Roteador11 |
---|
Router11#sh run hostname Router11 ! ip subnet-zero ! interface Loopback0 no ip address shutdown ! interface Loopback1 ip address 192.168.10.1 255.255.255.0 ! interface Ethernet0 ip address 172.16.11.1 255.255.255.0 ! interface Serial0 no ip address shutdown no fair-queue ! interface Serial1 no ip address shutdown ! interface BRI0 no ip address encapsulation hdlc shutdown ! router bgp 64496 no synchronization bgp log-neighbor-changes network 192.168.10.0 neighbor 172.16.12.2 remote-as 64496 !--- Configures MD5 authentication on BGP. neighbor 172.16.12.2 password 7 123456789987654321 !--- Administrative distance of iBGP-learned routes is changed from default 200 to 105. !--- MD5 authentication is configured for BGP. distance bgp 20 105 200 no auto-summary ! ip classless !--- Static route to iBGP peer, because it is not directly connected. ip route 172.16.12.0 255.255.255.0 172.16.11.10 ip http server ! !--- Output suppressed |
Roteador12 |
---|
Router12#sh run hostname Router12 ! aaa new-model ! ip subnet-zero ! interface Ethernet0 ip address 172.16.13.2 255.255.255.0 ! interface Ethernet1 ip address 172.16.12.2 255.255.255.0 ! interface Serial0 no ip address no fair-queue ! interface Serial1 no ip address shutdown ! router bgp 64496 no synchronization bgp log-neighbor-changes neighbor 172.16.11.1 remote-as 64496 !--- Configures MD5 authentication on BGP. neighbor 172.16.11.1 password 7 123456789987654321 neighbor 172.16.11.1 next-hop-self !--- Originate default to Router11 conditionally if check-ispa-route is a success neighbor 172.16.11.1 default-originate route-map check-ispa-route neighbor 172.16.11.1 distribute-list 1 out neighbor 172.16.13.4 remote-as 64500 no auto-summary ! ip classless !--- Static route to iBGP peer, because it is not directly connected. ip route 172.16.11.0 255.255.255.0 172.16.12.10 ip http server ! access-list 1 permit 0.0.0.0 access-list 10 permit 192.168.10.0 access-list 20 permit 10.10.20.0 0.0.0.255 access-list 21 permit 172.16.13.4 route-map check-ispa-route permit 10 match ip address 20 match ip next-hop 21 ! route-map adv-to-ispa permit 10 match ip address 10 ! !--- Output suppressed |
Roteador14 (ISP-A) |
---|
Router14#sh run hostname Router14 ! ! ip subnet-zero ! interface Ethernet0 ip address 172.16.13.4 255.255.255.0 ! interface Ethernet1 ip address 10.10.20.1 255.255.255.0 ! interface Serial0 no ip address shutdown no fair-queue ! interface Serial1 no ip address shutdown ! router bgp 64500 bgp log-neighbor-changes network 10.10.20.0 mask 255.255.255.0 !--- Configures Router12 as an eBGP peer. neighbor 172.16.13.2 remote-as 64496 ! !--- Output suppressed ip classless |
A saída do comando show ip bgp summary indica que a autenticação foi bem-sucedida e que a sessão BGP foi estabelecida no Router11.
Router11#show ip bgp summary BGP router identifier 192.168.10.1, local AS number 64496 BGP table version is 8, main routing table version 8 3 network entries using 360 bytes of memory 3 path entries using 156 bytes of memory 2/2 BGP path/bestpath attribute entries using 248 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 764 total bytes of memory BGP activity 25/22 prefixes, 26/23 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.13.2 4 64496 137 138 8 0 0 02:01:16 1 Router11#