Mudanças entre as edições de "Como Ter Seu Proprio Looking Glass"

De Wiki BPF
Ir para: navegação, pesquisa
(10 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
'''''<big>ARTIGO EM DESENVOLVIMENTO</big>'''''
+
== Introdução ==
  
Assim como explicado em detalhes no artigo [[Looking Glass]], ter um LG é fundamental para sua rede, principalmente se o ISP em questão for transito. Mesmo se tratando de casos onde não é transito, ter um LG facilita muito o troubleshoot para seu time técnico.
+
Assim como explicado em detalhes no artigo [[Looking Glass]], ter um LG é fundamental para sua rede, principalmente se o ISP em questão for transito. Mesmo se tratando de casos onde não é transito, ter um LG facilita muito o troubleshooting para o seu time técnico.
  
 
Na tentativa de incentivar todos os ISP's a terem seu próprio Looking Glass, vou explicar passo-a-passo como configurar um utilizando um LG OpenSource Web utilizando Debian 10, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.
 
Na tentativa de incentivar todos os ISP's a terem seu próprio Looking Glass, vou explicar passo-a-passo como configurar um utilizando um LG OpenSource Web utilizando Debian 10, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.
 +
== Tutorial ==
  
 
Após instalar seu Debian 10, atualize seus repositórios com o comando abaixo:
 
Após instalar seu Debian 10, atualize seus repositórios com o comando abaixo:
Linha 20: Linha 21:
  
 
<code>service apache2 restart</code>
 
<code>service apache2 restart</code>
 +
 +
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:
 +
 +
<code>mv /var/www/html/lg/* /var/www/html/</code>
  
 
Por padrão você só conseguirá acessar o LG a partir do momento que copiar o arquivo config.php.example para config.php, e é exatamente o que faremos agora.
 
Por padrão você só conseguirá acessar o LG a partir do momento que copiar o arquivo config.php.example para config.php, e é exatamente o que faremos agora.
Linha 25: Linha 30:
 
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)
 
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)
 
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]
 
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]
<code>cd /var/www/html/lg</code>
+
<code>cd /var/www/html</code>
  
 
<code>cp config.php.example config.php</code>
 
<code>cp config.php.example config.php</code>
Linha 33: Linha 38:
 
<code>ip addr</code>
 
<code>ip addr</code>
  
Supondo que o IP seja 192.168.0.10, acesse com a seguinte URL:
+
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:
  
[http://192.168.0.10/lg <code>http://192.168.0.10/lg</code>]
+
[http://192.168.0.10/lg <code>http://192.0.2.2</code>]
  
 
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.
 
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.
  
<code>nano /var/www/html/lg/config.php</code>
+
<code>nano /var/www/html/config.php</code>
  
 
No arquivo de configuração possuímos alguns campos básicos como:
 
No arquivo de configuração possuímos alguns campos básicos como:
Linha 110: Linha 115:
 
* Utilizará o usuário "lookingglass" para tal;
 
* Utilizará o usuário "lookingglass" para tal;
 
* Com a senha "SENHA-DO-USUARIO-LOOKINGGLASS";
 
* Com a senha "SENHA-DO-USUARIO-LOOKINGGLASS";
* Utilizando SSH;
+
* Utilizará SSH;
* Diremos para o arquivo que ele consultará um Quagga, mas na verdade instalaremos um FRRouting. Como ambos possuem sintaxe Cisco-Like, será totalmente compatível;
+
*O arquivo de configuração não suporta FRRouting como parâmetro, sendo assim, iremos setar como Quagga. Como ambos possuem sintaxes semelhantes (Cisco-Like), será totalmente compatível;
 
* Comentamos a interface de origem;
 
* Comentamos a interface de origem;
 
* A descrição do roteador é "Roteador de Borda".
 
* A descrição do roteador é "Roteador de Borda".
Linha 130: Linha 135:
  
 
<code>usermod -aG frrvty lookingglass</code>
 
<code>usermod -aG frrvty lookingglass</code>
 
Habilite o forwarding IPv4 e IPv6 no linux:
 
 
<code>echo "net.ipv4.conf.all.forwarding=1" | tee -a /etc/sysctl.conf</code>
 
 
<code>echo "net.ipv4.conf.default.forwarding=1" | tee -a /etc/sysctl.conf</code>
 
 
<code>sed 's/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=1/g' /etc/sysctl.conf | tee /etc/sysctl.conf</code>
 
 
<code>echo "net.ipv6.conf.default.forwarding=1" | tee -a /etc/sysctl.conf</code>
 
 
<code>sysctl -p</code>
 
 
<code>echo "net.ipv4.conf.all.mc_forwarding=1" | tee -a /etc/sysctl.conf</code>
 
 
<code>echo "net.ipv4.conf.default.mc_forwarding=1" | tee -a /etc/sysctl.conf</code>
 
 
<code>sysctl -p</code>
 
  
 
Acesse a pasta o arquivo daemons do FRR:
 
Acesse a pasta o arquivo daemons do FRR:
Linha 163: Linha 150:
 
<code>router bgp 65000</code>
 
<code>router bgp 65000</code>
  
<code>neighbor 192.168.0.1 remote-as 65000</code>
+
<code>neighbor 192.0.2.1 remote-as 65000</code>
  
 
<code>neighbor 2001:db8::2 remote-as 65000</code>
 
<code>neighbor 2001:db8::2 remote-as 65000</code>
Linha 171: Linha 158:
 
<code>address-family ipv4 unicast</code>
 
<code>address-family ipv4 unicast</code>
  
<code>  neighbor 192.168.0.1 route-map IMPORT in</code>
+
<code>  neighbor 192.0.2.1 route-map IMPORT in</code>
  
<code>  neighbor 192.168.0.1 route-map EXPORT out</code>
+
<code>  neighbor 192.0.2.1 route-map EXPORT out</code>
  
 
<code>exit-address-family</code>
 
<code>exit-address-family</code>
Linha 197: Linha 184:
 
Após isso, já terá seu Looking Glass em funcionamento, sem ter que se preocupar com integração de vendor, e com total suporte a IPv6.
 
Após isso, já terá seu Looking Glass em funcionamento, sem ter que se preocupar com integração de vendor, e com total suporte a IPv6.
  
'''Autor: André Dias'''
+
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''
 +
[[Categoria:Roteamento]]
 +
[[Categoria:Infraestrutura]]

Edição das 17h26min de 21 de novembro de 2019

Introdução

Assim como explicado em detalhes no artigo Looking Glass, ter um LG é fundamental para sua rede, principalmente se o ISP em questão for transito. Mesmo se tratando de casos onde não é transito, ter um LG facilita muito o troubleshooting para o seu time técnico.

Na tentativa de incentivar todos os ISP's a terem seu próprio Looking Glass, vou explicar passo-a-passo como configurar um utilizando um LG OpenSource Web utilizando Debian 10, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.

Tutorial

Após instalar seu Debian 10, atualize seus repositórios com o comando abaixo:

apt update -y

Instale as dependências:

apt install git apache2 libapache2-mod-php php php-common -y

Faça o clone do LG no GitHub:

git clone https://github.com/respawner/looking-glass.git /var/www/html/lg

Reinicie o serviço do Apache2:

service apache2 restart

Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:

mv /var/www/html/lg/* /var/www/html/

Por padrão você só conseguirá acessar o LG a partir do momento que copiar o arquivo config.php.example para config.php, e é exatamente o que faremos agora.

(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)

LookingGlassDefaultScreen.png

cd /var/www/html

cp config.php.example config.php

Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:

ip addr

Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:

http://192.0.2.2

O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.

nano /var/www/html/config.php

No arquivo de configuração possuímos alguns campos básicos como:

  • Nome;
  • E-mail;
  • Titulo;
  • Logo;
  • Disclaimer.

Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:

LG-Interface-Configurado2.png

$config['contact']['name'] = 'NOC HexaNetworks';

$config['contact']['mail'] = 'andredias@hexanetworks.com.br';

// Frontpage configuration

// Title of the page

$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';

// Logo to display (remove it to not display any logo)

$config['frontpage']['image'] = 'logo.png';

// Disclaimer to inform people using the looking glass

// Set it to null to not display a disclaimer

$config['frontpage']['disclaimer'] = '';

Esse arquivo vem pré-configurado para conversar com varios roteadores. Aqui explicarei um cenário simples, onde o FRRouting estará instalado no mesmo S.O. que o LG. Caso precise que funcione em um ambiente diferente, você terá que adaptar para o cenário de sua rede, utilizando a mesma lógica aqui explicada.

Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao "router1".

Configure mediante o exemplo:

// Authentication based on SSH or Telnet with password

// The hostname or the IP address

$config['routers']['router1']['host'] = '127.0.0.1';

// The user to use to connect to the router

$config['routers']['router1']['user'] = 'lookingglass';

// The password of the given user

$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';

// The authentication mechanism to use (can be ssh-password or telnet)

$config['routers']['router1']['auth'] = 'ssh-password';

// The router type (can be cisco, ios, juniper or junos)

$config['routers']['router1']['type'] = 'quagga';

// The router source interface to be used

//$config['routers']['router1']['source-interface-id'] = 'lo0';

// The router description to be displayed in the router list

LG-Configurado-3.png

$config['routers']['router1']['desc'] = 'Roteador de Borda';

Acima determinamos que:

  • O LG fará consulta local;
  • Utilizará o usuário "lookingglass" para tal;
  • Com a senha "SENHA-DO-USUARIO-LOOKINGGLASS";
  • Utilizará SSH;
  • O arquivo de configuração não suporta FRRouting como parâmetro, sendo assim, iremos setar como Quagga. Como ambos possuem sintaxes semelhantes (Cisco-Like), será totalmente compatível;
  • Comentamos a interface de origem;
  • A descrição do roteador é "Roteador de Borda".

Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.

O proximo passo é instalar o FRRouting:

apt-get install frr

Adicione o usuario "lookingglass" no seu linux, e o adicione ao grupo "frr":

adduser lookingglass

Informe a senha

Repita a senha

usermod -aG frrvty lookingglass

Acesse a pasta o arquivo daemons do FRR:

nano /etc/frr/daemons

Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:

service frr restart

Utilize o comando vtysh para acessar a VTY do frr.

O próximo passo é basicamente fechar uma sessão iBGP entre seu roteador de borda, e o FRR. Caso não esteja habituado com configuração Cisco-Like, segue um exemplo:

router bgp 65000

neighbor 192.0.2.1 remote-as 65000

neighbor 2001:db8::2 remote-as 65000

!

address-family ipv4 unicast

  neighbor 192.0.2.1 route-map IMPORT in

  neighbor 192.0.2.1 route-map EXPORT out

exit-address-family

!

address-family ipv6 unicast

  neighbor 2001:db8::2 route-map IMPORT in

  neighbor 2001:db8::2 route-map EXPORT out

exit-address-family

!

route-map IMPORT permit 10

!

route-map EXPORT deny 1

Após isso, já terá seu Looking Glass em funcionamento, sem ter que se preocupar com integração de vendor, e com total suporte a IPv6.

Autor: André Dias