#  > Geral >  > Tutoriais >  >  [Tutorial] - Instalação e Configuração do OpenBGP no FreeBSD

## 4networks

Bom dia Pessoal,

Vou focar este tutorial somente na Instalação e Configuração do *OpenBGP*.

Para Instalação do FreeBSD indico este tutorial:

http://pplware.sapo.pt/linux/aprenda...passo-a-passo/

Para BGP aconselho também fazer Kernel Tuning no FreeBSD.

Após a Instalação do FreeBSD faça o seguinte passo a passo:

*1) Baixe o Ports do FreeBSD*



```
portsnap fetch extract
```

 
*2) Atualize o Ports*


```
portsnap fetch update
```

 
*3) Baixar Pacotes do OpenBGP e suas dependências recursivamente.*


```
  cd /usr/ports/net/openbgpd ; make fetch-recursive ;
```

 
*4) Configurar o OpenBGP e suas dependências recursivamente.*


```
  cd /usr/ports/net/openbgpd ; make config-recursive ;
```

 
*5) Instalar o OpenBGP e suas dependências recursivamente.*


```
  make install clean ; rehash ;
```

 
*6) Configure o OpenBGP para inicialização ao iniciar o Sistema Operacional*


```
 echo 'openbgpd_enable="YES"' >> /etc/rc.conf
```

 
*7) Inicie o Serviço do OpenBGP*


```
 service openbgpd start
```

 ou


```
/usr/local/etc/rc.d/openbgpd start
```

 

*8) Ocorrerá um erro por falta do arquivo de configuração bgpd.conf que deve ser criado em /usr/local/etc/*

Acesse meu tópico anterior sobre um exemplo do arquivo de configuração do OpenBGP bgpd.conf


```
 https://under-linux.org/showthread.php?t=177414
```

 
*9) Após criar o arquivo de configuração, tente novamente iniciar o serviço:*


```
 service openbgpd stop ; service openbgpd start
```

 ou


```
 service openbgpd restart
```

 

*10) Alguns erros podem ocorrer, por exemplo de permissões erradas ou erros no arquivo de configuração:*

*# Para Verificar se houveram erros:*


```
tail -f /var/log/messages
```

 
*# Erro de Permissão*


```
 Feb  4 11:43:41 FREEBSD bgpd[8755]: /usr/local/etc/bgpd.conf: group/world readable/writeable
```

 *# Correção*


```
 chmod 400 bgpd.conf
```

 
*# Erro de Configuração*


```
Feb  4 11:43:41 FREEBSD bgpd[8755]: config file /usr/local/etc/bgpd.conf has errors, not reloading
```

 
*# Correção, Acesse o arquivo bgpd.conf e reveja toda sua configuração*


```
 ee /usr/local/etc/bgpd.conf
```

 
*11) Após todas correções feitas, reinicie o serviço e veja se houveram erros* 

*# Verifique como estão as sessões BGP*


```
 bgpctl show
```

 
*# Caso esteja funcionando aparecerá desta forma:*


```
 
([email protected])[/usr/local/etc]# bgpctl show
 
 
Neighbor               AS               MsgRcvd    MsgSent  OutQ Up/Down  State/PrfRcvd
OPERADORA 1             65534          0               0            0       Never       Active
```

 

Pessoal espero ter ajudado quem tinha dúvidas na instalação e configuração do OpenBGP no FreeBSD.

Postem suas dúvidas, críticas e elogios.

Qualquer detalhe mais a fundo sobre o arquivo de configuração ou serviços profissionais de consultoria em BGP me adicionem no Skype.

Se ajudou clica ali na estrelinha e agradeça.

Abraço.

----------


## 4networks

> Parabéns pelo tópico @alissonx.
> Eu reparei que no seu tópico anterior sobre o arquivo "bgpd.conf" e reparei que tem um filtro básico de anúncio para as operadoras (allow e deny), como fica o uso de atributos do BGP como o "local_pref" e "as-path-prepend"?



Opa amigo, é simples...


Dentro do Peer ou do Grupo você simplesmente utiliza os atributos normalmente, como no exemplo abaixo:




```
group "OPERADORA"
{
        multihop 255 
        set localpref 400
        remote-as 65535
        local-address 10.0.0.1
        softreconfig in yes
        set prepend-self 3
        neighbor 10.0.0.2 {
                descr   "OPERADORA 1 "
                announce all
        }
}
```

 






> Reparei bastante que no RouterOS o "set bgp prepend" é dado em número qualquer: Ex: Se eu quero "prependar" 3 vezes o LINK2 por exemplo eu coloco o número 3 e no VyOS é preciso colocar o número do meu AS três vezes: set policy route-map LINK2-OUT set as-path-prepend "65550 65550 65550" e no OpenBGP, como seria?



Como descrito acima, basta utilizar set prepend-self [Número]





> Outra dúvida que eu queria trazer é: O "bgpd.conf" permite o uso de um grupo de "remote-as", como ficaria o uso de atributos nesse caso? Ainda não sou um expert em BGP, estou estudando mas são algumas dúvidas básicas que tenho.



Você utilizaria para sessões de Backup que utilizam o mesmo ASN, como por Exemplo sessões com PTT que possui RS1... RS2 e etc.


Veja que estamos utilizando para o grupo a variável $asn_ptt que seria o ASN para RS1...RS2... e etc.


Nos Peers RS1 e RS2 como não temos o atributo remote-as ele utilizará o do grupo.


Já o Peer do LG (Looking Glass) tem o atributo remote-as então será lido o do próprio Peer.




```
group "PTT"
{
        remote-as $asn_ptt  # ASN PTT RS1 e RS2
        enforce neighbor-as no
        set localpref 500
        announce all
        local-address $meuip_ptt
        softreconfig in yes
 
 
        neighbor $ptt_lg {
                remote-as $ptt_lg  # ASN PTT LOOKING GLASS
                descr   "AS65534-PTT-LG"
        }
        neighbor $ptt_rs1 {
                descr   "AS65535-PTT-RS1"
        }
 
 
        neighbor $ptt_rs2 {
                descr   "AS65535-PTT-RS2"
        }
 
 
}
```

----------


## 4networks

> Perfeito Alisson. Outra dúvida, nas plataformas que conheço o "prepend" deve ser definido em "out" e o "local_pref" em "in", no OpenBGP não precisa disso?


Você define para o Peer.

----------


## sonia

Boa tarde amigos,

Muito bacana esse tópico. Está sendo extremamente Útil.

Fiz os procedimentos, agora está apresentando um erro como se faltasse um outro arquivo. 
Criei o arquivo bgpd.conf, porém ao fazer os comandos para verificar a sessão bgpctl show ou bgpctl s rib nei x.x.x.x out aparece esse erro abaixo

bgpctl: connect: /var/run/bgpd.sock: No such file or directory

Deixei de fazer alguma coisa?

----------


## 4networks

> Boa tarde amigos,
> 
> Muito bacana esse tópico. Está sendo extremamente Útil.
> 
> Fiz os procedimentos, agora está apresentando um erro como se faltasse um outro arquivo. 
> Criei o arquivo bgpd.conf, porém ao fazer os comandos para verificar a sessão bgpctl show ou bgpctl s rib nei x.x.x.x out aparece esse erro abaixo
> 
> bgpctl: connect: /var/run/bgpd.sock: No such file or directory
> 
> Deixei de fazer alguma coisa?


Boa tarde,

Provavelmente o openbgpd não levantou.

veja o erro em:

tail -f /var/log/messages

----------


## sonia

Bom dia,

Obrigada por responder.

Ao verificar as configurações, aparece o erro de permissão
[email protected]:~ # /usr/local/sbin/bgpd -n
/usr/local/etc/bgpd.conf: group/world readable/writeable

Conforme você especificou no tópico, mas ao usar o comando de resolução aparece o erro como se o arquivo não existisse.

[email protected]:~ # chmod 400 bgpd.conf
chmod: bgpd.conf: No such file or directory

Mas o arquivo aparece na lista 

[email protected]:~ # vi /usr/local/etc/
bash_completion.d/ periodic/ pkg.conf.sample
bgpd.conf* pkg.conf rc.d/



Seria um erro de configuração do arquivo que criei?

Ao verificar as mensagens, aparecem esses erros, mas não entendi.

[email protected]:~ # tail -f /var/log/messages
Aug 18 16:06:35 bgp2 sm-mta[1085]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon Daemon0: cannot bind: Can't assign requested address
Aug 18 16:06:35 bgp2 sm-mta[1085]: daemon Daemon0: problem creating SMTP socket
Aug 18 16:06:40 bgp2 sm-mta[1085]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon Daemon0: cannot bind: Can't assign requested address
Aug 18 16:06:40 bgp2 sm-mta[1085]: daemon Daemon0: problem creating SMTP socket
Aug 18 16:06:46 bgp2 sm-mta[1085]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon Daemon0: cannot bind: Can't assign requested address
Aug 18 16:06:46 bgp2 sm-mta[1085]: daemon Daemon0: problem creating SMTP socket
Aug 18 16:06:51 bgp2 sm-mta[1085]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon Daemon0: cannot bind: Can't assign requested address
Aug 18 16:06:51 bgp2 sm-mta[1085]: daemon Daemon0: problem creating SMTP socket
Aug 18 16:06:51 bgp2 sm-mta[1085]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon Daemon0: server SMTP socket wedged: exiting

----------


## sonia

Boa tarde,

Encontrei o erro. Ao aparecer essa mensagem de permissão
[email protected]:~ # /usr/local/sbin/bgpd -n
/usr/local/etc/bgpd.conf: group/world readable/writeable

Eu tinha colocado o comando *chmod 400 bgpd.conf* 
e tinha apresentado erro, porque eu não não tinha colocado o caminho correto
*chmod 400 /usr/local/sbin/bgpd.conf*
Depois disso deu certinho..

Para o padrão bgpd.conf usei o arquivo padrão do outro tutorial e funcionou também. Obrigada

----------

