O BGP efetua troca de informações sobre a topologia para encontrar o melhor caminho para um prefixo de IP a decisão do melhor caminho é feita utilizando atributos (BGP path attributes ou PAs).

Antes de efetuar qualquer troca de informação o BGP utiliza a famosa maquina de estado para estabelecer uma conexão TCP na porta 179 e fechar um relacionamento com um neighbor.
No entando alguns requerimentos são necessário para se fechar um peering BGP

1- O roteador necessita receber uma solicitação TCP de uma origem que seja seu neighbor, caso contrário a conexão é recusada, por exemplo, se você usa uma loopback como neighbor o endereço de origem será a interface diretamente conectada e o roteador não reconhecera esse endereço, pois espera receber como origem o endereço de loopback do router remoto, então você configura o BGP do router remoto para enviar como endereço de origem o endereço da loopback.
2- O endereço de AS tem que ser igual com o configurado, senão eles não se tornarão neighbors.
3-O BGP RID tem que ser diferentes.
4-Se a autenticação MD5 estiver configurada ela precisa acontecer.
Comandos BGP
router bgp 123
##Os 3 proximos comandos são defaults em IOS > =12.3##no synchronization
bgp log neighbor-changes
no auto-summary
## O comando no synchronization divulga rotas a um outro AS mesmo que o IGP não tenha as mesmas rotas que o BGP, caso contrário ele aguarda a sincronização, Maiores detalhes aqui ( http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800c95bb.shtml#synch )bgp router-id 10.10.10.10
#Configura o RID ou o maior endereço UP/UP de loopback, depois maior endereço de interface UP/UP (No momento do estabelecimento do processo).neighbor 2.2.2.2 remote-as 123
#Configura um iBGP devido ao mesmo AS* neighbor 2.2.2.2 update-source Loopback1
#Indica que o end de origem deve ser da Loopback1* neighbor 2.2.2.2 password Minhasenha
#Habilita a autenticaçào entre neighbors (MD5)neighbor 3.3.3.3 remote-as 456
#Configura o eBGP devido ao AS diferente* neighbor 3.3.3.3 password Minhasenha
* neighbor 3.3.3.3 update-source Loopback1
Percerbam que os comandos marcados com * são os mesmos depois do endereço do neighbor, se tiver que configurar diversos neighbors com os mesmo parametros basta criar um peer-group com as configurações que são iguais e aplicar no neighbor, as configurações diferentes podem ser adicionadas normalmente. Ex:
neighbor MEUGRUPO peer-group
neighbor MEUGRUPO update-source Loopback1
neighbor MEUGRUPO password Minhasenha
neighbor 2.2.2.2 peer-group MEUGRUPO
neighbor 2.2.2.2 remote-as 123
neighbor 3.3.3.3 peer-group MEUGRUPO
neighbor 3.3.3.3 remote-as 456
E pra relembrar, a maquina de estados do BGP:
