Comitê Gestor da Internet no Brasil
Grupo de Trabalho Formação de Recursos Humanos

 
CURSOS ONLINE - ROTEAMENTO
 
 

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.

 
   
Apresentação | Conteúdo | Contato | Créditos
anterior
  próximo
2003 - GTRH - Comitê Gestor da Internet no Brasil