Mudanças entre as edições de "Como Ter Seu Proprio Looking Glass"
Linha 113: | Linha 113: | ||
* 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"; | ||
− | * | + | * Utilizará SSH; |
*O arquivo de configuração não suporta FRRouting como parâmetro, iremos setar como Quagga. Como ambos possuem sintaxes semelhantes (Cisco-Like), será totalmente compatível.; | *O arquivo de configuração não suporta FRRouting como parâmetro, 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; |
Edição das 01h19min de 4 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 troubleshoot para 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
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)
cd /var/www/html/lg
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:
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/lg/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:
$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
$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, 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
Habilite o forwarding IPv4 e IPv6 no linux:
echo "net.ipv4.conf.all.forwarding=1" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.forwarding=1" | tee -a /etc/sysctl.conf
sed 's/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=1/g' /etc/sysctl.conf | tee /etc/sysctl.conf
echo "net.ipv6.conf.default.forwarding=1" | tee -a /etc/sysctl.conf
sysctl -p
echo "net.ipv4.conf.all.mc_forwarding=1" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.mc_forwarding=1" | tee -a /etc/sysctl.conf
sysctl -p
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