Configurando o BGP usando o Quagga on Vultr (CentOS 7)

A funcionalidade Bring Your IP Space da Vultr permite uma liberdade sem precedentes na atribuição de seus próprios recursos IP aos servidores na nuvem Vultr. Geralmente, recomendamos o uso do BIRD para anunciar seu espaço IP. Existem algumas alternativas sólidas para o BIRD, caso você não consiga algo com o BIRD (embora isso seja muito raro) ou você simplesmente queira usar outro software.

Devido às despesas administrativas e técnicas, desencorajamos o uso do BIRD e Quagga (ou qualquer outro software) na mesma infraestrutura e / ou rede. Lembre-se de que a configuração a seguir forneceria um SPOF, pois a instância que anuncia sua sub-rede sobreposta não é redundante. Você deve observar, no entanto, que o Vultr possui vários roteadores BGP em cada rack.

Embora este guia tenha sido escrito com o CentOS 7 em mente e testado apenas nesta versão do CentOS, provavelmente funcionará em versões mais antigas, como o CentOS 6. No entanto, naturalmente desencorajamos fortemente o uso de software desatualizado e é altamente recomendável atualizar para uma versão mais recente e mais recente (e suportada) como o CentOS 7.

Não há limite prático para a quantidade de sub-redes ou seu tamanho que você pode anunciar em uma instância executando o Quagga (ou qualquer roteador BGP), embora em qualquer topologia de rede você deva ter algum tipo de risco a se espalhar. Isso significa que você deve criar uma configuração redundante ou anunciar sub-redes diferentes de diferentes servidores, seguindo o guia abaixo em vários servidores.

Para seguir este guia, você precisará de:

  • O ASN que você deseja / precisa usar;
  • O espaço IP (sub-rede) que você deseja anunciar;
  • BGP ativado em sua conta Vultr

PÁSSARO ou Quagga?

Para iniciantes, escolher entre BIRD ou Quagga pode ser muito difícil. Ambos são bem conhecidos e provaram ser muito estáveis ​​e robustos para muitos casos de uso, incluindo ambientes e infra-estruturas de alto tráfego, onde a confiabilidade desempenha um papel fundamental. A principal diferença entre o BIRD e o Quagga é que a configuração do BIRD é separada do daemon e discernível, mais voltada para uma estrutura semelhante a código.

Por exemplo, com o BIRD, se você deseja obter uma configuração de failover, usaria o seguinte bloco no bird.confarquivo de configuração:

export filter {
    bgp_path.prepend(asnumber);
    accept;
};

Como você pode ver, a configuração parece um bloco de código, como seria com uma linguagem de programação. Com o Quagga, você acrescentaria ou alteraria configurações usando um programa no próprio daemon.

No final, tudo se resume à preferência pessoal e não há 'vencedor' ou software que você deva usar. Em geral, o BIRD é mais fácil de configurar devido ao seu modo de configuração fácil de aprender e é amplamente suportado pela comunidade.

Além disso, em favor do Quagga, geralmente, em um ambiente de produção em execução, o Quagga é mais fácil de reconfigurar. Com o BIRD, você precisará editar os arquivos de configuração apropriados e fazer com que o daemon recarregue suas configurações. Com o Quagga, você pode inserir seu shell, reconfigurar as configurações sem muito trabalho ou barulho extra. A continuidade desempenha um grande papel aqui, mas, na prática, a sobrecarga é mínima. Na maioria das infra-estruturas, você não precisará reconfigurar muito essas configurações; portanto, provavelmente é uma boa ideia julgar por outros aspectos do software, e não apenas por esses detalhes.

Assim como o BIRD, o Quagga é compatível com várias distribuições. Se você quiser alterar a (s) distribuição (ões) usada (s) para os roteadores, em teoria você pode simplesmente mover suas configurações e nada precisaria ser alterado ou será alterado.

Neste guia, descreveremos o processo de instalação e configuração do Quagga. Caso você queira experimentar o BIRD, tente seguir o guia " Configurando o BGP no Vultr ".

Como mencionado, existem algumas outras boas alternativas por aí, mas a maior parte delas tem algumas falhas, impedindo que elas sejam usadas em um ambiente de produção. Por exemplo, a implementação de BGP do XORP está relativamente desatualizada, o que geralmente não é um bom começo para configurar uma infraestrutura totalmente nova (embora sua implementação de BGP seja estável).

Comparado a muitas alternativas, o BIRD possui um baixo consumo de memória e não consome muitos recursos. Por outro lado, girar ou atualizar para uma instância de nuvem Vultr mais poderosa leva apenas alguns cliques no painel de controle do Vultr.

IPv4 e IPv6

O Vultr suporta o anúncio de espaço IP IPv4 e IPv6. A implementação do BGP do Quagga está relativamente atualizada, permitindo a capacidade de anunciar o espaço IPv6 também.

Embora este guia tenha como objetivo anunciar o espaço IPv4, você pode usar a implementação IPv6 do Quagga e usar as instruções deste artigo. No entanto, isso não está explicitamente documentado; portanto, consulte uma fonte alternativa para isso.

Nota importante

Para poder sobreviver sem um roteador BGP para passar o tráfego, a melhor maneira de anunciar seu espaço IP é a seguinte:

  • Anuncie seu / 24 (ou maior) de uma instância dedicada do Quagga;
  • Anunciar indivíduos / 32's (ou maiores) das instâncias em que o tráfego deve ser roteado para si mesmos

Dessa forma, você teria uma configuração de instância para anunciar a sub-rede sobreposta para todos os IPs que você dividir em indivíduos / 32 ou maiores. Com esse design, você pode anunciar rapidamente IPs e rotear o tráfego para as instâncias corretas.

Naturalmente, você pode experimentar várias abordagens para anunciar seu espaço IP ao seu gosto. Em teoria, o uso é ilimitado e não conhece fronteiras. Observe que os servidores da Vultr são autogerenciados e não podemos ajudá-lo com nenhum problema que possa surgir. Além disso, não custa nada usar uma solução suportada pelo Vultr e pela comunidade; portanto, se surgirem problemas, você poderá identificar rapidamente a causa raiz.

Etapa 1: Desativando o SELinux

É altamente recomendável desativar o SELinux, a fim de impedir que o Quagga funcione. Temos um guia para desativar o SELinux, siga-o e retorne a este tutorial após a desativação do SELinux : Desativando o SELinux no CentOS 7 .

Etapa 2: Instalando o Quagga

Podemos continuar instalando o Quagga usando yum:

yum install quagga

Se você receber um erro, especialmente em uma instância recém-implantada, tente:

yum update

Configure systemdpara que o Zebra (o daemon principal) seja iniciado automaticamente na inicialização:

systemctl enable zebra

Por fim, inicie o Zebra:

systemctl start zebra

Temos que repetir o processo para o BGPd, ​​da seguinte maneira:

systemctl start bgpd
systemctl enable bgpd

Zebra e BGPd

O Quagga consiste em uma variedade de daemons, permitindo o roteamento. Como faremos uso do BGP, precisaremos usar os daemon Zebra e BGPd. Zebra e BGPd trabalham juntos. Quando um deles parar de funcionar, suas rotas não serão mais anunciadas, tornando indisponível todo o seu espaço IP.

O Quagga suporta vários protocolos de roteamento, entre outros OSPF e BGP. O núcleo da topologia de suas implementações é o Zebra. O Zebra é o daemon principal, que é uma camada que cuida da comunicação do kernel UNIX (TCP) com os clientes Quagga. No back-end, a Zebra apresenta a API Zserv, que permite que esses protocolos de roteamento comuniquem atualizações de roteamento. Uma das implementações com a API do Zserv é o BGP.

A versão padrão usada pelo Quagga para BGP é o BGPv4 +, que inclui o suporte da família de endereços para multicast e IPv6.

Etapa 3: configurando o roteador BGP

Para configurar o roteador BGP ao seu gosto, usaremos o vtyshshell. Primeiro, copie o arquivo de configuração BGP de amostra:

cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf

Após a cópia do arquivo, digite o shell:

vtysh

Em algumas versões mais antigas do Quagga, você pode encontrar uma configuração com o AS7675. Não precisamos disso, pois ele só entrará em conflito com a nossa configuração; portanto, precisamos excluí-lo, se existir. Verifique se esta configuração existe na sua instalação do Quagga executando o seguinte comando dentro do shell :

show running-config

Se isso retornar uma string com ou incluindo "router bgp 7675", exclua-a executando:

configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization

Agora você deve inserir as informações de BGP que a Vultr forneceu.

neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"

Provavelmente, você precisa de uma senha para estabelecer a sessão BGP. Digite:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

Por fim, se tiver certeza de que deseja escrever essas alterações (aplicável apenas se estiver trabalhando em uma configuração de produção), execute o seguinte para permitir que as alterações entrem em vigor:

write

Verifique se as alterações foram bem-sucedidas executando:

show ip bgp summary

Agora deveríamos ter estabelecido com sucesso uma sessão BGP.

Etapa 4: anunciando seu espaço IP

Embora tenhamos estabelecido uma sessão BGP, ainda não estamos anunciando nenhuma rota ou endereço IP; portanto, isso não terá efeito na prática. Felizmente, definir o espaço IP para anunciar é um processo relativamente fácil.

Em vtysh, execute os seguintes comandos para conseguir isso:

configure terminal
router bgp YOURAS

Agora você está na configuração. Certifique-se de ter em mãos o espaço IP que deseja anunciar e digite-o:

network YOURSUBNET/CIDR

Por exemplo, a entrada válida seria:

network 185.92.220.0/23

Naturalmente, isso não funcionará em sua configuração específica, pois o espaço IP acima pertence ao Vultr. Substitua isso e tudo deve funcionar bem.

Saia e salve as alterações:

exit
write

Verifique se seus prefixos foram anunciados com sucesso:

show ip bgp neighbors NEIGHBORIP advertised-routes

Tente executar ping em um endereço IP da sub-rede e tente executar um traceroute de fora da rede.

Solução de problemas

A solução de problemas do Quagga está amplamente fora do escopo deste artigo, mas se você estiver enfrentando dificuldades, poderá sempre tentar parar sua instância do Quagga e tentar anunciar novamente o espaço IP via BIRD para poder excluir uma série de causas possíveis.

Quando o BGP não funciona corretamente no Quagga e no BIRD, é possível que seu firewall não tenha sido configurado corretamente. A porta 179 deve estar aberta. No CentOS 7, tente desativar temporariamente o firewall:

systemctl stop firewalld

Se você usa o iptables, tente:

service iptables stop

Em seguida, tente iniciar a sessão BGP novamente. Se travar em 'Idle', 'Connect' ou 'Active', existe a possibilidade de a porta ainda estar bloqueada. Com o estado 'Estabelecido', a sessão do BGP foi configurada com sucesso e as rotas anunciadas são mostradas.

O Quagga agora foi instalado no seu servidor e deve funcionar. Durante os primeiros dias de anúncio de seu próprio espaço IP, você deve monitorar sua funcionalidade para impedir que toda a infraestrutura não funcione.

Isso conclui o tutorial do Quagga, obrigado pela leitura. Para saber mais sobre o recurso Bring Your IP Space da Vultr, acesse a página BGP .



Leave a Comment

Configure sua própria rede privada com o OpenVPN

Configure sua própria rede privada com o OpenVPN

O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes

Como instalar e configurar o CyberPanel no servidor CentOS 7

Como instalar e configurar o CyberPanel no servidor CentOS 7

Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi

Instale o eSpeak no CentOS 7

Instale o eSpeak no CentOS 7

Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade

Como usar o Sudo no Debian, CentOS e FreeBSD

Como usar o Sudo no Debian, CentOS e FreeBSD

Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud

Como instalar o RabbitMQ no CentOS 7

Como instalar o RabbitMQ no CentOS 7

Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens

Configurar o Nginx-RTMP no CentOS 7

Configurar o Nginx-RTMP no CentOS 7

Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i

Como instalar o Gradle no CentOS 7

Como instalar o Gradle no CentOS 7

Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.

Instalando o Netdata no CentOS 7

Instalando o Netdata no CentOS 7

Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos

Como instalar o servidor Starbound no CentOS 7

Como instalar o servidor Starbound no CentOS 7

Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo

Instalando e configurando o ZNC no CentOS 7

Instalando e configurando o ZNC no CentOS 7

O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi

Como instalar o Django no CentOS 7

Como instalar o Django no CentOS 7

O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você

Como instalar o CMS de outubro no CentOS 7

Como instalar o CMS de outubro no CentOS 7

Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.