![SilesiodeCarvalho_1-1688130733914.png SilesiodeCarvalho_1-1688130733914.png](https://community.cisco.com/t5/image/serverpage/image-id/189047i0CEA984CE8D6B8D2/image-size/large?v=v2&px=999)
No post anterior você aprendeu o que é o BGP, como configurá-lo e os seus diferentes atributos.
Nest post, veremos de forma prática, como estes atributos podem influenciar o roteamento das redes mas primeiro, um pouco de teoria.
Quando dois routers estabelecem uma sessão BGP, eles trocam entre si as seguintes mensagens:
OPEN - primeira mensagem enviada após a sessão TCP ser estabelecida. Usada para enviar informações como ASN e BGP router-id.
KEEPALIVE - enviado periodicamente para garantir que a sessão se mantenha ativa. Caso a mensagem não seja enviado no tempo esperado (hold-timer), a sessão é terminada.
NOTIFICATION - envianda quando ocorre algum problema ou alguma condição em particular.
UPDATE - enviada para atualizar informações como PATH Attributes associado a determinados prefixos/redes.
Alguns atributos BGP são enviados quando dois routers pretendem estabelecer sessão, ou após a sessão já ter sido estabelecida. Os atributos podem ser categorizados da seguinte forma:
Well known, Mandatory - precisam aparecer em toda mensagem UPDATE. É suportado por todos os vendors. Como exemplo temos NEXT_HOP, AS_PATH.
Well-Known, Discretionary - podem ou não aparecer em todas as mensagens UPDATE mas devem ser suportados por todos os vendors. Como exemplo temos LOCAL_PREF e AT_AGGREGATE.
Optional, Transitive - pode ou não ser suportado por todos os vendors. Vai ser ignorado se não for reconhecido pelo receptor. Como exemplo temos AGGREGATOR COMMUNITY.
Optional, Non-Transitive - pode ou não ser suportado por todos os vendors. Não é necessário reencaminhar, pode ser ignorado pelo router vizinho.
Os atributos Transitive, podem ser enviados de um AS para outro. Os Non-Transitive não são anunciados para fora do AS. Vamos ver alguns exemplos práticos.
NEXT_HOP
É um atributo well-known, mandatory, transitive e deve estar presente em todas as mensagens update. É o IP do router vizinho para redes aprendidas remotamente. Poderá ser 0.0.0.0 para redes anunciadas usando o comando network ou aggregate. O NEXT_HOP precisa ser alcançável (estar na tabela de routing) e é alterado quando passa por AS diferentes.
![SilesiodeCarvalho_1-1688128526783.png SilesiodeCarvalho_1-1688128526783.png](https://community.cisco.com/t5/image/serverpage/image-id/189039i98E3D85CB411F9DD/image-size/large?v=v2&px=999)
Weight
É um atributo proprietário da Cisco, non-transitive e local. Quanto mais alto for o valor melhor será preferência. Para redes anunciadas localmente terão um valor 32678 e 0 para redes aprendidas remotamente. Pode ser alterado por vizinho ou usando route-maps.
R4
ip prefix-list WEIGHT permit 10.102.0.0/24 le 32
route-map SET_WEIGHT permit 10
match ip address prefix-list WEIGHT
set weight 30
route-map SET_WEIGHT permit 99
router bgp 65105
neighbor 192.168.4.23 remote-as 64512
add ipv4
neighbor 192.168.4.23 route-map SET_WEIGHT in
ou
router bgp 65105
neighbor 192.168.4.23 remote-as 64512
add ipv4
neighbor 192.168.4.23 weight 30
![SilesiodeCarvalho_2-1688129430455.png SilesiodeCarvalho_2-1688129430455.png](https://community.cisco.com/t5/image/serverpage/image-id/189040i248B857055AB06BC/image-size/large?v=v2&px=999)
LOCAL_PREF
É um atributo well-known, discretionary, non-transitive e deve ser suportado por todos os vendors mas não precisa aparecer em todas as mensagens UPDATE. Usado para influenciar o AS em que inserido, quanto maior o valor melhor será a preferência, tendo 100 como valor padrão. É o atributo mais recomendado para influenciar rotas anunciadas pelo routers externos, influenciado o tráfego com destino as redes anunciadas. Pode ser alterado usando route-maps.
R4
ip prefix-list LOCAL_PREF permit 10.102.0.0/24 le 32
route-map SET_LOCAL_PREF permit 10
match ip address prefix-list LOCAL_PREF
set local-preference 200
route-map SET_LOCAL_PREF permit 99
router bgp 65105
neighbor 192.168.4.23 remote-as 64512
add ipv4
neighbor 192.168.4.23 route-map SET_LOCAL_PREF in
![SilesiodeCarvalho_3-1688129506162.png SilesiodeCarvalho_3-1688129506162.png](https://community.cisco.com/t5/image/serverpage/image-id/189041i6BEA197880D2ED21/image-size/large?v=v2&px=999)
AS_PATH
É um atributo well-known, mandatory, transitive e deve estar presente em todas as mensagens UPDATE. É visto como uma lista ordenada (AS_SEQUENCE), sendo lida da direita para a esquerda. Por vezes também pode ser uma lista desordenada (AS_SET). Usada para prevenção de loop, quanto menor for o valor melhor será a preferência. Pode ser alterada usando route-maps.
Sem manipulação
![SilesiodeCarvalho_5-1688129791033.png SilesiodeCarvalho_5-1688129791033.png](https://community.cisco.com/t5/image/serverpage/image-id/189043i0B6D04A85606E5FA/image-size/large?v=v2&px=999)
Usando route-map.
ip prefix-list AS_PATH permit 10.102.0.0/24 le 32
route-map SET_AS_PATH permit 10
match ip address prefix-list AS_PATH
set as-path prepend 65102 65102 65102
route-map SET_AS_PATH permit 99
router bgp 65105
bgp log-neighbor-changes
neighbor 192.168.4.23 remote-as 64512
!
address-family ipv4
neighbor 192.168.4.23 route-map SET_AS_PATH in
![SilesiodeCarvalho_0-1688130591266.png SilesiodeCarvalho_0-1688130591266.png](https://community.cisco.com/t5/image/serverpage/image-id/189046i19814360B6CC87A0/image-size/large?v=v2&px=999)
Leitura adicional
https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13753-25.html