|
Módulo
4:
Protocolos de Roteamento EGP
Estados de uma conexão BGP
A negociação de uma sessão BGP passa por diversos
estados até o momento que é propriamente estabelecida e
é iniciada a troca de anúncios de prefixos de cada vizinho
BGP. Para demonstrar os estados possíveis na negociação,
apresentamos a Figura 2 que ilustra a máquina de estados finitos:
Figura 2: Máquina de estados finitos para sessões
BGP |
A
seguir são apresentados a discutidos os 6 estados possíveis
desta máquina de estados finitos:
-
IDLE:
Este estado identifica o primeiro estágio de uma conexão
BGP, onde o protocolo está aguardando por uma conexão
de um peer remoto. Esta conexão deve ter sido previamente
configurada pelo administrador do sistema. O próximo estado
é o de CONNECT e no caso da tentativa ser mal sucedida, volta
ao estado IDLE.
-
CONNECT:
Nesta estado o BGP aguarda pela conexão no nível de
transporte, com destino na porta 179. Quando a conexão a este
nível estiver estabelecida, ou seja, com o recebimento da mensagem
de OPEN, passa-se ao estado de OPENSENT. Se a conexão nível
de transporte não for bem sucedida, o estado vai para ACTIVE.
No caso do tempo de espera ter sido ultrapassado, o estado volta para
CONNECT. Em qualquer outro evento, é retorna-se para IDLE.
-
ACTIVE:
O BGP tenta estabelecer comunicação com um peer inicializando
uma conexão no nível de transporte. Caso esta seja bem
sucedida, passa-se ao estado OPENSENT. Se esta tentativa não
for bem sucedida, pelo motivo de expiração do tempo,
por exemplo, o estado passa para CONNECT. Em cada de interrupção
pelo sistema ou pelo administrador, volta ao estado IDLE. Geralmente
as transições entre o estado de CONNECT e ACTIVE refletem
problemas com a camada de transporte TCP.
-
OPENSENT:
Neste estado o BGP aguarda pela mensagem de OPEN e faz uma checagem
de seu conteúdo. Caso seja encontrado algum erro como número
de AS incoerente ao esperado ou a própria versão do
BGP, envia-se uma mensagem tipo NOTIFICATION e volta ao estado de
IDLE. Caso não ocorram erros na checagem, inicia-se o envio
de mensagens KEEPALIVE. Em seguida, acerta-se o tempo de Hold
Time, sendo optado o menor tempo entre os dois peers.
Depois deste acerto, compara-se o número AS local e o número
AS enviado pelo peer, com o intuito de detectar se trata-se de uma
conexão iBGP (números de AS iguais) ou eBGP (números
de AS diferentes). Em caso de desconexão a nível de
protocolo de transporte, o estado passa para ACTIVE. Para as demais
situações de erro, como expiração do Hold
Time, envia-se uma mensagem de NOTIFICATION com o código de
erro correspondente e retorna-se ao estado de IDLE. No caso de intervenção
do administrador ou o próprio sistema, também retorna-se
o estado IDLE.
-
OPENCONFIRM:
Neste estado o BGP aguarda pela mensagem de KEEPALIVE e quando esta
for recebida, o estado segue para ESTABLISHED e a negociação
do peer é finalmente completa. Com o recebimento da mensagem
de KEEPALIVE, é acertado o valor negociado de Hold Time entre
os peers. Se o sistema receber uma mensagem tipo NOTIFICATION, retorna-se
ao estado de IDLE. O sistema também envia periodicamente, segundo
o tempo negociado, mensagens de KEEPALIVE. No caso da ocorrência
de eventos como desconexão ou intervenção do
operador, retorna-se ao estado de IDLE também. Por fim, na
ocorrência de eventos diferentes aos citados, envia-se uma mensagem
NOTIFICATION, retornando ao estado de IDLE.
-
ESTABLISHED:
Neste estado, o BGP inicia a troca de mensagens de UPDATE ou KEEPALIVE,
de acordo com o Hold Time negociado. Caso seja recebida alguma mensagem
tipo NOTIFICATION, retorna-se ao estado IDLE. No recebimento de cada
mensagem tipo UPDATE, aplica-se uma checagem por atributos incorretos
ou em falta, atributos duplicados e caso algum erro seja detectado,
envia-se uma mensagem de NOTIFICATION, retornando ao estado IDLE.
Por fim, se o Hold Time expirar ou for detectada desconexão
ou intervenção do administrador, também retorna-se
ao estado de IDLE.
A
partir da máquina de estados apresentada anteriormente, é
possível saber qual o status de uma sessão BGP
entre dois roteadores, podendo também iniciar uma investigação
sobre qual problema pode estar ocorrendo em alguma sessão. O objetivo
esperado é que todas as sessões BGP de um roteador mantenham-se
no estado ESTABLISHED, visto que somente neste estado ocorre a troca de
anúncios com o roteador vizinho. |
|