<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.brasilpeeringforum.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andredias</id>
	<title>Wiki BPF - Contribuições do(a) usuário(a) [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.brasilpeeringforum.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andredias"/>
	<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/w/Especial:Contribui%C3%A7%C3%B5es/Andredias"/>
	<updated>2026-05-30T16:40:05Z</updated>
	<subtitle>Contribuições do(a) usuário(a)</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3854</id>
		<title>Usuário:Andredias</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3854"/>
		<updated>2024-12-12T23:17:34Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Quem é André Dias?==&lt;br /&gt;
André Dias é um engenheiro de redes com mais de 12 anos de experiência, reconhecido como referência em consultoria e soluções avançadas em tecnologia. Conhecido principalmente por sua expertise em MPLS e RSVP-TE, ele atua desde operações simples até cenários mais complexos e críticos, demonstrando profundo conhecimento e habilidade técnica nesses protocolos.&lt;br /&gt;
&lt;br /&gt;
Como fundador e diretor da Hexa Networks, empresa de consultoria e tecnologia destacada por sua expertise técnica, capacidade de inovação e compromisso com a excelência, André lidera uma equipe dedicada a oferecer soluções de ponta no mercado. Ele possui o sonho de levar conectividade de qualidade para os lugares mais remotos, contribuindo para a inclusão digital e o desenvolvimento dessas regiões.&lt;br /&gt;
&lt;br /&gt;
Além de suas funções executivas, André é um entusiasta assíduo por IPv6, promovendo ativamente a adoção e implementação desse protocolo em diversas organizações. Sua paixão pelo IPv6 reflete-se em seus projetos e treinamentos, onde enfatiza a importância de estar preparado para o futuro da internet.&lt;br /&gt;
&lt;br /&gt;
Ele é também um dos instrutores dos treinamentos da Hexa Networks, ministrando cursos de BGP e MPLS ao lado de Wallace Andrade. Sua dedicação ao ensino tem contribuído para o sucesso de centenas de provedores de internet em todo o Brasil.&lt;br /&gt;
&lt;br /&gt;
André possui certificações renomadas, incluindo Juniper JNCIA e JNCIS-SP, Nokia NRS-I, e várias da Mikrotik como MTCNA, MTCRE, MTCINE e MTCIPv6E. Como consultor oficial da MikroTik, também trabalha com diversos fabricantes como Juniper, Huawei, Cisco e Extreme Networks.&lt;br /&gt;
&lt;br /&gt;
Seu trabalho tem impacto além das fronteiras nacionais, com projetos realizados em todo o continente americano e na Europa. É também conhecido por seus cases de sucesso em monitoramento utilizando Zabbix com Grafana, implementados em diversas empresas pelo país.&lt;br /&gt;
&lt;br /&gt;
Com vasta experiência em protocolos de roteamento intra e inter-AS, MPLS, RSVP-TE, servidores e monitoramento, André Dias continua a influenciar positivamente o campo das redes de computadores, combinando inovação, expertise técnica e visão estratégica.&lt;br /&gt;
&lt;br /&gt;
==Artigos Escritos==&lt;br /&gt;
[[Arquivo:André Dias.jpg|alt=|miniaturadaimagem]]&lt;br /&gt;
[[Como Ter Seu Proprio Looking Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Como Monitorar 95th percentile|Como Monitorar 95 percentil]]&lt;br /&gt;
&lt;br /&gt;
[[Unicast Reverse Path Forwarding]]&lt;br /&gt;
==Contatos==&lt;br /&gt;
'''LinkedIn:''' https://www.linkedin.com/in/andrelrdias/&lt;br /&gt;
&lt;br /&gt;
'''E-mail profissional:''' andredias@hexanetworks.com.br&lt;br /&gt;
&lt;br /&gt;
'''WhatsAPP:''' +55 (17) 99670-0482&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3853</id>
		<title>Usuário:Andredias</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3853"/>
		<updated>2024-12-12T23:16:52Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Quem é André Dias?==&lt;br /&gt;
André Dias é um engenheiro de redes com mais de 12 anos de experiência, reconhecido como referência em consultoria e soluções avançadas em tecnologia. Conhecido principalmente por sua expertise em MPLS e RSVP-TE, ele atua desde operações simples até cenários mais complexos e críticos, demonstrando profundo conhecimento e habilidade técnica nesses protocolos.&lt;br /&gt;
&lt;br /&gt;
Como fundador e diretor da Hexa Networks, empresa de consultoria e tecnologia destacada por sua expertise técnica, capacidade de inovação e compromisso com a excelência, André lidera uma equipe dedicada a oferecer soluções de ponta no mercado. Ele possui o sonho de levar conectividade de qualidade para os lugares mais remotos, contribuindo para a inclusão digital e o desenvolvimento dessas regiões.&lt;br /&gt;
&lt;br /&gt;
Além de suas funções executivas, André é um entusiasta assíduo por IPv6, promovendo ativamente a adoção e implementação desse protocolo em diversas organizações. Sua paixão pelo IPv6 reflete-se em seus projetos e treinamentos, onde enfatiza a importância de estar preparado para o futuro da internet.&lt;br /&gt;
&lt;br /&gt;
Ele é também um dos instrutores dos treinamentos da Hexa Networks, ministrando cursos de BGP e MPLS ao lado de Wallace Andrade. Sua dedicação ao ensino tem contribuído para o sucesso de centenas de provedores de internet em todo o Brasil.&lt;br /&gt;
&lt;br /&gt;
André possui certificações renomadas, incluindo Juniper JNCIA e JNCIS-SP, Nokia NRS-I, e várias da Mikrotik como MTCNA, MTCRE, MTCINE e MTCIPv6E. Como consultor oficial da MikroTik, também trabalha com diversos fabricantes como Juniper, Huawei, Cisco e Extreme Networks.&lt;br /&gt;
&lt;br /&gt;
Seu trabalho tem impacto além das fronteiras nacionais, com projetos realizados em todo o continente americano e na Europa. É também conhecido por seus cases de sucesso em monitoramento utilizando Zabbix com Grafana, implementados em diversas empresas pelo país.&lt;br /&gt;
&lt;br /&gt;
Com vasta experiência em protocolos de roteamento intra e inter-AS, MPLS, RSVP-TE, servidores e monitoramento, André Dias continua a influenciar positivamente o campo das redes de computadores, combinando inovação, expertise técnica e visão estratégica.&lt;br /&gt;
&lt;br /&gt;
==Artigos Escritos==&lt;br /&gt;
[[Arquivo:André Dias.jpg|alt=|miniaturadaimagem]]&lt;br /&gt;
[[Como Ter Seu Proprio Looking Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Como Monitorar 95th percentile|Como Monitorar 95 percentil]]&lt;br /&gt;
&lt;br /&gt;
[[Unicast Reverse Path Forwarding]]&lt;br /&gt;
==Contatos==&lt;br /&gt;
'''LinkedIn:''' https://www.linkedin.com/in/andrelrdias/&lt;br /&gt;
&lt;br /&gt;
'''E-mail profissional:''' andredias@hexanetworks.com.br&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Instalar_PHPIPAM&amp;diff=3845</id>
		<title>Como Instalar PHPIPAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Instalar_PHPIPAM&amp;diff=3845"/>
		<updated>2024-12-06T23:03:31Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Criou página com 'Neste tutorial, você configurará o PHPIPAM rapidamente utilizando Docker Compose, clonando o repositório oficial.  Passo 1: Atualize o sistema e instale o Docker Atualize o...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neste tutorial, você configurará o PHPIPAM rapidamente utilizando Docker Compose, clonando o repositório oficial.&lt;br /&gt;
&lt;br /&gt;
Passo 1: Atualize o sistema e instale o Docker&lt;br /&gt;
Atualize o sistema e instale o Docker com os comandos abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
apt update -y &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
apt install curl -y&lt;br /&gt;
curl -fsSL https://get.docker.com | sh&lt;br /&gt;
Passo 2: Clone o repositório oficial do PHPIPAM Docker&lt;br /&gt;
Use o comando abaixo para clonar o repositório oficial do PHPIPAM Docker:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/phpipam-docker/phpipam-docker&lt;br /&gt;
cd phpipam-docker&lt;br /&gt;
Passo 3: Edite o arquivo docker-compose.yml&lt;br /&gt;
O repositório já inclui o arquivo docker-compose.yml. Se necessário, edite-o para ajustar configurações como senha do banco de dados ou timezone:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nano docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
Certifique-se de configurar as variáveis de ambiente adequadas, como IPAM_DATABASE_PASS e MYSQL_ROOT_PASSWORD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
version: '3'&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
  phpipam-web:&lt;br /&gt;
    image: phpipam/phpipam-www:latest&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;80:80&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      - TZ=America/Sao_Paulo&lt;br /&gt;
      - IPAM_DATABASE_HOST=phpipam-mariadb&lt;br /&gt;
      - IPAM_DATABASE_PASS=SENHA&lt;br /&gt;
      - IPAM_DATABASE_WEBHOST=%&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - phpipam-mariadb&lt;br /&gt;
&lt;br /&gt;
  phpipam-cron:&lt;br /&gt;
    image: phpipam/phpipam-cron:latest&lt;br /&gt;
    environment:&lt;br /&gt;
      - TZ=America/Sao_Paulo&lt;br /&gt;
      - IPAM_DATABASE_HOST=phpipam-mariadb&lt;br /&gt;
      - IPAM_DATABASE_PASS=SENHA&lt;br /&gt;
      - SCAN_INTERVAL=1h&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - phpipam-mariadb&lt;br /&gt;
&lt;br /&gt;
  phpipam-mariadb:&lt;br /&gt;
    image: mariadb:latest&lt;br /&gt;
    environment:&lt;br /&gt;
      - MYSQL_ROOT_PASSWORD=SENHA&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    volumes:&lt;br /&gt;
      - phpipam-db-data:/var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  phpipam-db-data:&lt;br /&gt;
&lt;br /&gt;
Substitua SENHA pelo valor desejado para as senhas do banco de dados.&lt;br /&gt;
&lt;br /&gt;
Passo 4: Inicie os containers&lt;br /&gt;
Dentro do diretório do repositório clonado, inicie os serviços com o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
docker compose up -d&lt;br /&gt;
Passo 5: Acesse o PHPIPAM pela Web&lt;br /&gt;
No navegador, acesse o endereço da máquina onde o Docker está rodando:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://&amp;lt;IP_DO_SERVIDOR&amp;gt;&lt;br /&gt;
Passo 6: Configuração inicial&lt;br /&gt;
Siga o assistente de configuração do PHPIPAM para finalizar a instalação.&lt;br /&gt;
&lt;br /&gt;
Conclusão&lt;br /&gt;
O PHPIPAM agora está configurado e rodando! 🎉&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3835</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3835"/>
		<updated>2024-11-30T22:30:31Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR - Leitura Rapida Obrigatória =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e DDoS. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento. Você tem obrigação de ter uRPF implementado.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''[[MANRS]]:''' Um dos pré-requisitos do [[MANRS]] é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf strict&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XE ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XR ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nokia ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autor:&lt;br /&gt;
&lt;br /&gt;
[[Usuário:Andredias|André Dias - Hexa Networks]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3834</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3834"/>
		<updated>2024-11-30T22:28:11Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e DDoS. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento. Você tem obrigação de ter uRPF implementado.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''[[MANRS]]:''' Um dos pré-requisitos do [[MANRS]] é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf strict&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XE ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XR ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nokia ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autor:&lt;br /&gt;
&lt;br /&gt;
[[Usuário:Andredias|André Dias - Hexa Networks]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3833</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3833"/>
		<updated>2024-11-30T22:25:49Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''[[MANRS]]:''' Um dos pré-requisitos do [[MANRS]] é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf strict&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XE ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XR ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nokia ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autor:&lt;br /&gt;
&lt;br /&gt;
[[Usuário:Andredias|André Dias - Hexa Networks]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3832</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3832"/>
		<updated>2024-11-30T22:22:59Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf strict&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ipv6 urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet6 rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XE ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XR ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv6 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nokia ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autor:&lt;br /&gt;
&lt;br /&gt;
[[Usuário:Andredias|André Dias - Hexa Networks]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3831</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3831"/>
		<updated>2024-11-30T22:17:18Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XE ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XR ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ipv4 verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nokia ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;configure router interface &amp;quot;nome-da-interface&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;sap sap-id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  ingress&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;   filter&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;    ip-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;     urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mikrotik ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/ip settings set rp-filter=loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Autor:&lt;br /&gt;
&lt;br /&gt;
[[Usuário:Andredias|André Dias - Hexa Networks]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3830</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3830"/>
		<updated>2024-11-30T22:12:36Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cisco IOS-XE ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via rx&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip verify unicast source reachable-via any&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3829</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3829"/>
		<updated>2024-11-30T22:10:03Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3828</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3828"/>
		<updated>2024-11-30T22:09:28Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Strict: ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose: ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
==== Strict: ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Loose: ====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;set interfaces ge-0/0/0 unit 0 family inet rpf-check loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3827</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3827"/>
		<updated>2024-11-30T22:07:55Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
Strict:&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf strict&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;Loose:&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;interface GigabitEthernet0/0/0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;ip urpf loose&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3826</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3826"/>
		<updated>2024-11-30T22:05:26Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
&lt;br /&gt;
=== Huawei VRP ===&lt;br /&gt;
&lt;br /&gt;
==== Modo Strict ====&lt;br /&gt;
&lt;br /&gt;
==== Modo Loose ====&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3825</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3825"/>
		<updated>2024-11-30T22:04:13Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados saiam da (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teríamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede originar trafego endereços IP de origem falsos;&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem;&lt;br /&gt;
* '''MANRS:''' Um dos pré-requisitos do MANRS é que não tenha spoofing vindo da rede.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
A seguir, apresentamos exemplos de como configurar o uRPF em diferentes plataformas:&lt;br /&gt;
&lt;br /&gt;
=== --- ===&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3824</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3824"/>
		<updated>2024-11-30T21:51:19Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!! Caso contrario o uRPF dropará pacotes licitos!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Strict:''' Garante simetria de trafego. Prefira usar esse cara em BNG, caso você não tenha nenhum tipo de ECMP no equipamento ou algo que não garantirá a simetria;&lt;br /&gt;
* '''Loose:''' Não garante simetria de trafego. Prefira usar esse cara em router de borda.&lt;br /&gt;
&lt;br /&gt;
Recomendo fortemente a leitura abaixo. Mas caso queira pular logo para os comandos, basta usar o índice para tal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados entrem na rede (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma, internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teriamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede que pacotes com endereços IP de origem falsos entrem na rede.&lt;br /&gt;
* '''Mitigação de Ataques DoS/DDoS''': Reduz o impacto de ataques baseados em falsificação de endereço.&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem.&lt;br /&gt;
&lt;br /&gt;
== Limitações do uRPF ==&lt;br /&gt;
* '''Roteamento Assimétrico''': No modo strict, pode bloquear tráfego legítimo em redes com caminhos de entrada e saída diferentes.&lt;br /&gt;
* '''Carga de Processamento''': Pode aumentar o uso de CPU em dispositivos, afetando o desempenho.&lt;br /&gt;
* '''Dependência da Tabela de Roteamento''': Requer que as rotas estejam corretamente configuradas e atualizadas.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
A seguir, apresentamos exemplos de como configurar o uRPF em diferentes plataformas:&lt;br /&gt;
&lt;br /&gt;
=== --- ===&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3823</id>
		<title>Unicast Reverse Path Forwarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Unicast_Reverse_Path_Forwarding&amp;diff=3823"/>
		<updated>2024-11-30T21:44:53Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Criou página com '= TL;DR = O uRPF (Unicast Reverse Path Forwarding) é um mecanismo de segurança de rede que ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TL;DR =&lt;br /&gt;
O uRPF (Unicast Reverse Path Forwarding) é um mecanismo de segurança de rede que ajuda a prevenir spoofing de endereços IP e ataques de negação de serviço. Ele verifica se os pacotes recebidos têm uma rota válida de retorno na tabela de roteamento. Este artigo explora o funcionamento do uRPF, seus modos de operação, benefícios, limitações e fornece exemplos de configuração em diversos equipamentos de rede.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Unicast Reverse Path Forwarding (uRPF) =&lt;br /&gt;
&lt;br /&gt;
== Introdução ==&lt;br /&gt;
O crescimento das redes IP trouxe desafios significativos em termos de segurança, especialmente no que diz respeito à falsificação de endereços IP (IP spoofing) e ataques de negação de serviço (DoS/DDoS). O '''Unicast Reverse Path Forwarding (uRPF)''' é uma técnica usada para mitigar esses riscos, verificando a validade dos endereços IP de origem dos pacotes que entram na rede.&lt;br /&gt;
&lt;br /&gt;
== O que é uRPF? ==&lt;br /&gt;
O uRPF é um mecanismo que ajuda a evitar que pacotes com endereços IP de origem falsificados entrem na rede (spoofing). Ele faz isso verificando se existe uma rota de retorno válida para o endereço IP de origem na tabela de roteamento, garantindo que o tráfego possa ser encaminhado de volta ao remetente.&lt;br /&gt;
&lt;br /&gt;
== Quem precisa ter uRPF na rede? ==&lt;br /&gt;
Absolutamente toda empresa que prove, de alguma forma, internet, seja ou não um sistema autonomo (AS).&lt;br /&gt;
&lt;br /&gt;
A internet é uma obra coletiva, logo se todos tivessem uRPF rodando, teriamos uma diminuição absurda de ataques DDoS com origens spoofadas.&lt;br /&gt;
&lt;br /&gt;
== Modos de Operação do uRPF ==&lt;br /&gt;
&lt;br /&gt;
=== Modo Strict (Rigoroso) - Cuidado com ele! ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo verifica se a melhor rota de retorno para o endereço IP de origem está pela mesma interface em que o pacote foi recebido.&lt;br /&gt;
* '''Vantagens''': Oferece o mais alto nível de segurança contra spoofing.&lt;br /&gt;
* '''Desvantagens''': Pode descartar tráfego legítimo em redes com roteamento assimétrico.  &amp;lt;u&amp;gt;'''Não''' use '''strict''' em ambientes que voce nao garanta que o upload e download serão pelo mesmo lugar! Nesse caso, utilize '''Loose'''!!!!&amp;lt;/u&amp;gt;&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento simétrico.&lt;br /&gt;
&lt;br /&gt;
=== Modo Loose (Flexível) ===&lt;br /&gt;
* '''Funcionamento''': O dispositivo aceita o pacote se houver qualquer rota de retorno para o endereço IP de origem, independentemente da interface.&lt;br /&gt;
* '''Vantagens''': Mais flexível, adequado para redes com múltiplos caminhos.&lt;br /&gt;
* '''Desvantagens''': Menos seguro que o modo strict.&lt;br /&gt;
* '''Uso Ideal''': Redes com roteamento assimétrico ou múltiplos links de entrada e saída.&lt;br /&gt;
&lt;br /&gt;
== Benefícios do uRPF ==&lt;br /&gt;
* '''Prevenção de Spoofing''': Impede que pacotes com endereços IP de origem falsos entrem na rede.&lt;br /&gt;
* '''Mitigação de Ataques DoS/DDoS''': Reduz o impacto de ataques baseados em falsificação de endereço.&lt;br /&gt;
* '''Conformidade com BCP 38''': Alinha-se às melhores práticas recomendadas para filtragem de endereços de origem.&lt;br /&gt;
&lt;br /&gt;
== Limitações do uRPF ==&lt;br /&gt;
* '''Roteamento Assimétrico''': No modo strict, pode bloquear tráfego legítimo em redes com caminhos de entrada e saída diferentes.&lt;br /&gt;
* '''Carga de Processamento''': Pode aumentar o uso de CPU em dispositivos, afetando o desempenho.&lt;br /&gt;
* '''Dependência da Tabela de Roteamento''': Requer que as rotas estejam corretamente configuradas e atualizadas.&lt;br /&gt;
&lt;br /&gt;
== Exemplos de Configuração ==&lt;br /&gt;
A seguir, apresentamos exemplos de como configurar o uRPF em diferentes plataformas:&lt;br /&gt;
&lt;br /&gt;
=== --- ===&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3822</id>
		<title>Usuário:Andredias</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3822"/>
		<updated>2024-11-30T21:29:32Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Quem é André Dias?==&lt;br /&gt;
André Dias é um engenheiro de redes com mais de 12 anos de experiência, reconhecido como referência em consultoria e soluções avançadas em tecnologia. Conhecido principalmente por sua expertise em MPLS e RSVP-TE, ele atua desde operações simples até cenários mais complexos e críticos, demonstrando profundo conhecimento e habilidade técnica nesses protocolos.&lt;br /&gt;
&lt;br /&gt;
Como fundador e diretor da Hexa Networks, empresa de consultoria e tecnologia destacada por sua expertise técnica, capacidade de inovação e compromisso com a excelência, André lidera uma equipe dedicada a oferecer soluções de ponta no mercado. Ele possui o sonho de levar conectividade de qualidade para os lugares mais remotos, contribuindo para a inclusão digital e o desenvolvimento dessas regiões.&lt;br /&gt;
&lt;br /&gt;
Além de suas funções executivas, André é um entusiasta assíduo por IPv6, promovendo ativamente a adoção e implementação desse protocolo em diversas organizações. Sua paixão pelo IPv6 reflete-se em seus projetos e treinamentos, onde enfatiza a importância de estar preparado para o futuro da internet.&lt;br /&gt;
&lt;br /&gt;
Ele é também um dos instrutores dos treinamentos da Hexa Networks, ministrando cursos de BGP e MPLS ao lado de Wallace Andrade. Sua dedicação ao ensino tem contribuído para o sucesso de centenas de provedores de internet em todo o Brasil.&lt;br /&gt;
&lt;br /&gt;
André possui certificações renomadas, incluindo Juniper JNCIA e JNCIS-SP, Nokia NRS-I, e várias da Mikrotik como MTCNA, MTCRE, MTCINE e MTCIPv6E. Como consultor oficial da MikroTik, também trabalha com diversos fabricantes como Juniper, Huawei, Cisco e Extreme Networks.&lt;br /&gt;
&lt;br /&gt;
Seu trabalho tem impacto além das fronteiras nacionais, com projetos realizados em todo o continente americano e na Europa. É também conhecido por seus cases de sucesso em monitoramento utilizando Zabbix com Grafana, implementados em diversas empresas pelo país.&lt;br /&gt;
&lt;br /&gt;
Com vasta experiência em protocolos de roteamento intra e inter-AS, MPLS, RSVP-TE, servidores e monitoramento, André Dias continua a influenciar positivamente o campo das redes de computadores, combinando inovação, expertise técnica e visão estratégica.&lt;br /&gt;
&lt;br /&gt;
==Artigos Escritos==&lt;br /&gt;
[[Arquivo:André Dias.jpg|alt=|miniaturadaimagem]]&lt;br /&gt;
[[Como Ter Seu Proprio Looking Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Como Monitorar 95th percentile|Como Monitorar 95 percentil]]&lt;br /&gt;
==Contatos==&lt;br /&gt;
'''LinkedIn:''' https://www.linkedin.com/in/andrelrdias/&lt;br /&gt;
&lt;br /&gt;
'''E-mail profissional:''' andredias@hexanetworks.com.br&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Andr%C3%A9_Dias.jpg&amp;diff=3821</id>
		<title>Arquivo:André Dias.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Andr%C3%A9_Dias.jpg&amp;diff=3821"/>
		<updated>2024-11-30T21:29:20Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Palestra GTER51&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3820</id>
		<title>Usuário:Andredias</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3820"/>
		<updated>2024-11-30T21:25:49Z</updated>

		<summary type="html">&lt;p&gt;Andredias: atualização :D&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Quem é André Dias?==&lt;br /&gt;
André Dias é um engenheiro de redes com mais de 12 anos de experiência, reconhecido como referência em consultoria e soluções avançadas em tecnologia. Conhecido principalmente por sua expertise em MPLS e RSVP-TE, ele atua desde operações simples até cenários mais complexos e críticos, demonstrando profundo conhecimento e habilidade técnica nesses protocolos.&lt;br /&gt;
&lt;br /&gt;
Como fundador e diretor da Hexa Networks, empresa de consultoria e tecnologia destacada por sua expertise técnica, capacidade de inovação e compromisso com a excelência, André lidera uma equipe dedicada a oferecer soluções de ponta no mercado. Ele possui o sonho de levar conectividade de qualidade para os lugares mais remotos, contribuindo para a inclusão digital e o desenvolvimento dessas regiões.&lt;br /&gt;
&lt;br /&gt;
Além de suas funções executivas, André é um entusiasta assíduo por IPv6, promovendo ativamente a adoção e implementação desse protocolo em diversas organizações. Sua paixão pelo IPv6 reflete-se em seus projetos e treinamentos, onde enfatiza a importância de estar preparado para o futuro da internet.&lt;br /&gt;
&lt;br /&gt;
Ele é também um dos instrutores dos treinamentos da Hexa Networks, ministrando cursos de BGP e MPLS ao lado de Wallace Andrade. Sua dedicação ao ensino tem contribuído para o sucesso de centenas de provedores de internet em todo o Brasil.&lt;br /&gt;
&lt;br /&gt;
André possui certificações renomadas, incluindo Juniper JNCIA e JNCIS-SP, Nokia NRS-I, e várias da Mikrotik como MTCNA, MTCRE, MTCINE e MTCIPv6E. Como consultor oficial da MikroTik, também trabalha com diversos fabricantes como Juniper, Huawei, Cisco e Extreme Networks.&lt;br /&gt;
&lt;br /&gt;
Seu trabalho tem impacto além das fronteiras nacionais, com projetos realizados em todo o continente americano e na Europa. É também conhecido por seus cases de sucesso em monitoramento utilizando Zabbix com Grafana, implementados em diversas empresas pelo país.&lt;br /&gt;
&lt;br /&gt;
Com vasta experiência em protocolos de roteamento intra e inter-AS, MPLS, RSVP-TE, servidores e monitoramento, André Dias continua a influenciar positivamente o campo das redes de computadores, combinando inovação, expertise técnica e visão estratégica.&lt;br /&gt;
&lt;br /&gt;
==Artigos Escritos==&lt;br /&gt;
[[Arquivo:Andre Dias.jpg|miniaturadaimagem]]&lt;br /&gt;
[[Como Ter Seu Proprio Looking Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Como Monitorar 95th percentile|Como Monitorar 95 percentil]]&lt;br /&gt;
==Contatos==&lt;br /&gt;
'''LinkedIn:''' https://www.linkedin.com/in/andrelrdias/&lt;br /&gt;
&lt;br /&gt;
'''E-mail profissional:''' andredias@hexanetworks.com.br&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3694</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3694"/>
		<updated>2024-03-24T19:57:06Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Mudança da segunda SS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml composer -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remova o arquivo index.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rm index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rode o composer para instalar o remanescente. Esse passo é necessário desde a versão 2.3.0. Caso a pagina fique quebrada, provavelmente está faltando esse passo!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;composer install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
[[Arquivo:Lg.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
Outra forma é subir um FFRouting e mandar o PHP checar diretamente nele. Dessa forma precisará subir um iBGP do FRR para seus roteadores de borda. A vantagem é que é agnostico a vendor, e a desvantagem é que conseguirá checar apenas a FIB dos roteadores de borda.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Seguindo a mesma logica do anterior, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:Lg-roteador-de-borda.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Lg-roteador-de-borda.png&amp;diff=3693</id>
		<title>Arquivo:Lg-roteador-de-borda.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Lg-roteador-de-borda.png&amp;diff=3693"/>
		<updated>2024-03-24T19:56:28Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LG Configurado&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3692</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3692"/>
		<updated>2024-03-24T19:52:16Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Mudança da SS referente ao front&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml composer -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remova o arquivo index.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rm index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rode o composer para instalar o remanescente. Esse passo é necessário desde a versão 2.3.0. Caso a pagina fique quebrada, provavelmente está faltando esse passo!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;composer install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
[[Arquivo:Lg.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
Outra forma é subir um FFRouting e mandar o PHP checar diretamente nele. Dessa forma precisará subir um iBGP do FRR para seus roteadores de borda. A vantagem é que é agnostico a vendor, e a desvantagem é que conseguirá checar apenas a FIB dos roteadores de borda.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Seguindo a mesma logica do anterior, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Lg.png&amp;diff=3691</id>
		<title>Arquivo:Lg.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Lg.png&amp;diff=3691"/>
		<updated>2024-03-24T19:50:33Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Front LG&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3690</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3690"/>
		<updated>2024-03-24T19:41:15Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Update para a versão 2.3.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml composer -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remova o arquivo index.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rm index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rode o composer para instalar o remanescente. Esse passo é necessário desde a versão 2.3.0. Caso a pagina fique quebrada, provavelmente está faltando esse passo!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;composer install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
Outra forma é subir um FFRouting e mandar o PHP checar diretamente nele. Dessa forma precisará subir um iBGP do FRR para seus roteadores de borda. A vantagem é que é agnostico a vendor, e a desvantagem é que conseguirá checar apenas a FIB dos roteadores de borda.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Seguindo a mesma logica do anterior, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3667</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3667"/>
		<updated>2024-01-10T16:56:56Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remova o arquivo index.html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rm index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
Outra forma é subir um FFRouting e mandar o PHP checar diretamente nele. Dessa forma precisará subir um iBGP do FRR para seus roteadores de borda. A vantagem é que é agnostico a vendor, e a desvantagem é que conseguirá checar apenas a FIB dos roteadores de borda.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Seguindo a mesma logica do anterior, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Looking_Glass&amp;diff=3659</id>
		<title>Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Looking_Glass&amp;diff=3659"/>
		<updated>2023-12-01T20:08:28Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Tirando a URL f7wa.com que estava na sessão de Destaques por fazer nenhum sentido com o tópico dessa Wiki.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A ferramenta Looking Glass, ou em uma tradução livre em português &amp;quot;espelho&amp;quot;, é muito utilizada por operadores de rede Internet no mundo todo para visualizar suas rotas BGP e prefixos na tabela de roteamento de outros participantes.&lt;br /&gt;
&lt;br /&gt;
O uso do Looking Glass pode ser muito útil para entender como suas rotas estão sendo tratadas, anunciadas, alteradas, bloqueadas, etc. Os melhores Looking Glass são aqueles que são roteadores reais (com acesso público somente leitura). Alguns inclusive permitem o usuário dar comandos como PING e TRACEROUTE (entenda aqui como o [[traceroute]] funciona).&lt;br /&gt;
&lt;br /&gt;
Esta ferramenta pode ser muito útil ao solucionar problemas de roteamento da Internet; seja para o seu site,seu ASN ou para prefixos de parceiros e clientes. Abaixo segue uma lista não extensiva dos principais Looking Glass do Brasil e alguns mundiais:&lt;br /&gt;
&lt;br /&gt;
== Lista de Looking Glass ==&lt;br /&gt;
'''Atualizada em 17/06/2023'''&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Nacionais (Brasil)&lt;br /&gt;
!Rede&lt;br /&gt;
!ASN&lt;br /&gt;
!Looking Glass&lt;br /&gt;
!IPv4&lt;br /&gt;
!IPv6&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Algar Telecom&lt;br /&gt;
|16735&lt;br /&gt;
|telnet://201.48.0.2&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|IX.br São Paulo&lt;br /&gt;
|Vários&lt;br /&gt;
|telnet://lg.sp.ptt.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|IX.br Rio de Janeiro&lt;br /&gt;
|Vários&lt;br /&gt;
|telnet://lg.rj.ix.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|IX.br ALICE&lt;br /&gt;
|Vários&lt;br /&gt;
|https://lg.ix.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Br.digital (Antiga Commcorp)&lt;br /&gt;
|14840&lt;br /&gt;
|https://lg.br.digital/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|BitCom&lt;br /&gt;
|28169&lt;br /&gt;
|http://lg.bitcom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Sumicity&lt;br /&gt;
|28210&lt;br /&gt;
|https://lg.sumicity.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|G8&lt;br /&gt;
|28329&lt;br /&gt;
|https://lg.g8.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Wirelink&lt;br /&gt;
|28368&lt;br /&gt;
|http://lg.wirelink.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|OpenX&lt;br /&gt;
|263444&lt;br /&gt;
|http://lg.openx.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UPX Technologies&lt;br /&gt;
|52863&lt;br /&gt;
|http://lg.upx.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Internexa&lt;br /&gt;
|262589&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;ssh bgp_view@177.84.161.226 | senha bgp_view&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Inforbarra Telecom&lt;br /&gt;
|263903&lt;br /&gt;
|https://lg.inforbarra.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Eletronet&lt;br /&gt;
|267613&lt;br /&gt;
|http://looking-glass.eletronet.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Sebratel Tecnologia&lt;br /&gt;
|53167&lt;br /&gt;
|https://lg.sebratel.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|GOX Internet&lt;br /&gt;
|263623&lt;br /&gt;
|https://lg.goxinternet.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Ultrawave&lt;br /&gt;
|262659&lt;br /&gt;
|https://lg.ultrawave.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|ITS Telecom&lt;br /&gt;
|28186&lt;br /&gt;
|https://lg.itsbrasil.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|W8 Telecom&lt;br /&gt;
|267469&lt;br /&gt;
|http://lg.w8telecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|K2 Telecom&lt;br /&gt;
|53181&lt;br /&gt;
|https://lg.k2telecom.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|GVT&lt;br /&gt;
|18881&lt;br /&gt;
|telnet://route-server.gvt.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Forte Telecom&lt;br /&gt;
|263009&lt;br /&gt;
|https://lg.fortetelecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Net&amp;amp;Com&lt;br /&gt;
|263324&lt;br /&gt;
|http://lg.netecom.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Adylnet&lt;br /&gt;
|28283&lt;br /&gt;
|http://lg.adyl.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|RNV Corp&lt;br /&gt;
|266201&lt;br /&gt;
|https://lg.rnv.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Conect Internet&lt;br /&gt;
|265066&lt;br /&gt;
|https://lg.conectrj.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Wixnet&lt;br /&gt;
|53013&lt;br /&gt;
|[http://lg.wixnet.com.br http://lg.wixnet.com.br/]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Aloo&lt;br /&gt;
|61568&lt;br /&gt;
|http://lg.alootelecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Altarede&lt;br /&gt;
|28260&lt;br /&gt;
|http://lg.altarede.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Asap Telecom&lt;br /&gt;
|264144&lt;br /&gt;
|http://lg.asaptelecom.com.br:8002/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Turbozone Internet&lt;br /&gt;
|264479&lt;br /&gt;
|https://lg.as264479.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|N4 Telecom&lt;br /&gt;
|262505&lt;br /&gt;
|http://looking-glass.n4telecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Junto Telecom&lt;br /&gt;
|262596&lt;br /&gt;
|http://lg.juntotelecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|NBS Telecom&lt;br /&gt;
|61745&lt;br /&gt;
|http://lg.nbstelecom.psi.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|MCD Telecom&lt;br /&gt;
|265144&lt;br /&gt;
|[https://lg.mcdtelecom.com.br/ https://lg.mcdtelecom.com.br]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Linnkweb Telecom&lt;br /&gt;
|265954&lt;br /&gt;
|[https://lg.linnkweb.com.br/ https://lg.linnkweb.com.br]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Infortel&lt;br /&gt;
|53180&lt;br /&gt;
|https://lg.infortel.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Softdados Telecom&lt;br /&gt;
|52873&lt;br /&gt;
|https://lg.softdados.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|DigitalNet MS&lt;br /&gt;
|61588&lt;br /&gt;
|http://lg.idl.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|TJ NET&lt;br /&gt;
|266130&lt;br /&gt;
|https://lg.redetjnet.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Flextel Network&lt;br /&gt;
|263959&lt;br /&gt;
|https://lg.flextel.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|GGNET &lt;br /&gt;
|53062&lt;br /&gt;
|http://lg.as53062.net.br/lg&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Hokinet&lt;br /&gt;
|61587&lt;br /&gt;
|http://lg.hokinet.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Webby Internet&lt;br /&gt;
|262493&lt;br /&gt;
|[https://lg.webbyinternet.com.br/ https://lookingglass.webbyinternet.com.br/]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Maxihost&lt;br /&gt;
|262287&lt;br /&gt;
|https://lg.maxihost.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|IVR NET&lt;br /&gt;
|262611&lt;br /&gt;
|[http://lg.ivrnet.com.br http://lg.ivrnet.com.br/#]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Kinghost&lt;br /&gt;
|28299&lt;br /&gt;
|https://lg.kinghost.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Internet Way&lt;br /&gt;
|263470 &lt;br /&gt;
|https://lg.internetway.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Vero Internet&lt;br /&gt;
|53184 &lt;br /&gt;
|http://lg.verointernet.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Ferenz Networks&lt;br /&gt;
|266400&lt;br /&gt;
|https://lg.as266400.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Fasternet&lt;br /&gt;
|28580&lt;br /&gt;
|https://lg.fasternet.com.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Intercol&lt;br /&gt;
|53047&lt;br /&gt;
|http://lg.intercol.com.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|4WNET Telecom&lt;br /&gt;
|268707&lt;br /&gt;
|http://lg.4wnet.net.br:8001&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Araujo SAT&lt;br /&gt;
|263024&lt;br /&gt;
|http://lg.araujosat.com.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Net Express Brasil&lt;br /&gt;
|265482&lt;br /&gt;
|https://lg.netexpressbrasil.com&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Telfo Telecom&lt;br /&gt;
|265038&lt;br /&gt;
|http://lg.telfo.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Sitelbra&lt;br /&gt;
|265171&lt;br /&gt;
|http://lg.sitelbra.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|}&lt;br /&gt;
* &lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Internacionais&lt;br /&gt;
!Rede&lt;br /&gt;
!ASN&lt;br /&gt;
!Looking Glass&lt;br /&gt;
!IPv4&lt;br /&gt;
!IPv6&lt;br /&gt;
|-&lt;br /&gt;
|Seabone / Sparkle&lt;br /&gt;
|6762&lt;br /&gt;
|https://gambadilegno.noc.seabone.net/lg/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Lumen&lt;br /&gt;
|3356&lt;br /&gt;
|https://lookingglass.centurylink.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|NTT&lt;br /&gt;
|2914&lt;br /&gt;
|https://www.gin.ntt.net/looking-glass-landing/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Sprint&lt;br /&gt;
|1239&lt;br /&gt;
|https://www.sprint.net/lg&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Tata&lt;br /&gt;
|6453&lt;br /&gt;
|http://lg.as6453.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Telia/Arelion&lt;br /&gt;
|1299&lt;br /&gt;
|https://lg.twelve99.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|HE&lt;br /&gt;
|6939&lt;br /&gt;
|http://lg.he.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Cogent&lt;br /&gt;
|174&lt;br /&gt;
|http://www.cogentco.com/en/network/looking-glass&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Zayo&lt;br /&gt;
|6461&lt;br /&gt;
|http://lg.zayo.com&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|NLNOG&lt;br /&gt;
|Vários&lt;br /&gt;
|http://lg.ring.nlnog.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|SoftLayer&lt;br /&gt;
|36351&lt;br /&gt;
|http://lg.softlayer.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|AT&amp;amp;T&lt;br /&gt;
|7018&lt;br /&gt;
|telnet://12.0.1.28&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|GTT (via Ginernet)&lt;br /&gt;
|3257&lt;br /&gt;
|http://gtt.lg.ginernet.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Telxius/TIWS&lt;br /&gt;
|12956&lt;br /&gt;
|https://telxius.com/looking-glass/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Orange (Opentransit)&lt;br /&gt;
|5511&lt;br /&gt;
|https://looking-glass.opentransit.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Worldstream&lt;br /&gt;
|49981&lt;br /&gt;
|https://lg.worldstream.nl&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|OVH&lt;br /&gt;
|16276&lt;br /&gt;
|https://lg.ovh.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|PJSC ROSTELECOM&lt;br /&gt;
|12389&lt;br /&gt;
|http://lg.ip.rt.ru/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|G-Core Labs&lt;br /&gt;
|199524&lt;br /&gt;
|https://lg.gcorelabs.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Leaseweb&lt;br /&gt;
|30633&lt;br /&gt;
|https://lg.leasewebstatus.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Angola Cables&lt;br /&gt;
|37468&lt;br /&gt;
|https://lg.angolacables.co.ao/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|EdgeUno&lt;br /&gt;
|7195&lt;br /&gt;
|https://lg.edgeuno.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Seaborn&lt;br /&gt;
|13786&lt;br /&gt;
|https://lg.as13786.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|MEO&lt;br /&gt;
|8657&lt;br /&gt;
|http://glass.cprm.net/bgp.html&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Globenet&lt;br /&gt;
|52320&lt;br /&gt;
|https://lg.globenet.net/lg/lg.cgi&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Colt&lt;br /&gt;
|8220&lt;br /&gt;
|https://portal.colt.net/lg&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Destaques&amp;lt;/big&amp;gt; ====&lt;br /&gt;
* Looking Glass da Fasternet que exibe validação RPKI e mostra um mapa interativo da rota (https://lg.fasternet.com.br)&lt;br /&gt;
* Looking Glass da Gcore que mostra um mapa visual da rota (https://lg.gcorelabs.com/)&lt;br /&gt;
* Looking Glass ALICE do IX.br, que agrega várias tabelas de IXs em diferentes cidades (https://lg.ix.br)&lt;br /&gt;
&lt;br /&gt;
* Looking Glass da NLNOG que mostra uma visão de múltiplos route-servers (http://lg.ring.nlnog.net)   &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Looking Glass mais aguardado&amp;lt;/big&amp;gt; ====&lt;br /&gt;
* ISPTools em http://www.isptools.com.br/lg  &lt;br /&gt;
[[Arquivo:Kisspng-emoji-sadness-emoticon-smiley-clip-art-sad-emoji-png-clipart-5a73fc019d1bb8.4272949715175505936435.png|esquerda|semmoldura|66x66px]]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ausências importantes:&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Redes importantes que &amp;lt;u&amp;gt;'''não disponibilizam'''&amp;lt;/u&amp;gt; um Looking Glass BGP:&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
* Telefônica Vivo&lt;br /&gt;
* Claro/Embratel&lt;br /&gt;
* TIM&lt;br /&gt;
* Oi&lt;br /&gt;
* Copel&lt;br /&gt;
* Amazon&lt;br /&gt;
* Google&lt;br /&gt;
* Microsoft&lt;br /&gt;
* Akamai&lt;br /&gt;
[[Categoria:Interconexão]]&lt;br /&gt;
__INDEXAR__&lt;br /&gt;
[[Categoria:Roteamento]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3583</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3583"/>
		<updated>2023-09-21T17:05:23Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
Outra forma é subir um FFRouting e mandar o PHP checar diretamente nele. Dessa forma precisará subir um iBGP do FRR para seus roteadores de borda. A vantagem é que é agnostico a vendor, e a desvantagem é que conseguirá checar apenas a FIB dos roteadores de borda.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Seguindo a mesma logica do anterior, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3582</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3582"/>
		<updated>2023-09-21T17:00:35Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3581</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3581"/>
		<updated>2023-09-21T16:58:25Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3580</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3580"/>
		<updated>2023-09-21T16:56:53Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
// Authentication based on SSH or Telnet with password&lt;br /&gt;
&lt;br /&gt;
// The hostname or the IP address&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['host'] = 'r1.example.net';&lt;br /&gt;
&lt;br /&gt;
// The user to use to connect to the router&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['user'] = 'readonlyuser';&lt;br /&gt;
&lt;br /&gt;
// The password of the given user&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['pass'] = 'readonlypassword';&lt;br /&gt;
&lt;br /&gt;
// The authentication mechanism to use (can be ssh-password or telnet)&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
&lt;br /&gt;
// The router type (can be cisco, ios, juniper or junos)&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['type'] = 'juniper';&lt;br /&gt;
&lt;br /&gt;
// The router source interface to be used&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = 'lo0';&lt;br /&gt;
&lt;br /&gt;
// The router description to be displayed in the router list&lt;br /&gt;
&lt;br /&gt;
$config['routers']['router1']['desc'] = 'Example\'s Router 1';&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3579</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3579"/>
		<updated>2023-09-21T16:55:09Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Método 01 - Inputando comandos no seu roteador de borda&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
// Authentication based on SSH or Telnet with password&lt;br /&gt;
// The hostname or the IP address&lt;br /&gt;
$config['routers']['router1']['host'] = 'r1.example.net';&lt;br /&gt;
// The user to use to connect to the router&lt;br /&gt;
$config['routers']['router1']['user'] = 'readonlyuser';&lt;br /&gt;
// The password of the given user&lt;br /&gt;
$config['routers']['router1']['pass'] = 'readonlypassword';&lt;br /&gt;
// The authentication mechanism to use (can be ssh-password or telnet)&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
// The router type (can be cisco, ios, juniper or junos)&lt;br /&gt;
$config['routers']['router1']['type'] = 'juniper';&lt;br /&gt;
// The router source interface to be used&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = 'lo0';&lt;br /&gt;
// The router description to be displayed in the router list&lt;br /&gt;
$config['routers']['router1']['desc'] = 'Example\'s Router 1';&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o método que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
Nesse método o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, além de poder realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario. O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
// IP ou dominio do seu roteador de borda;&lt;br /&gt;
$config['routers']['router1']['host'] = '192.0.2.100';&lt;br /&gt;
// Usuario criado no equipamento;&lt;br /&gt;
$config['routers']['router1']['user'] = 'lookingglass';&lt;br /&gt;
// Senha do usuario que foi criado;&lt;br /&gt;
$config['routers']['router1']['pass'] = 'SenhaChuckNorris';&lt;br /&gt;
// Metodo de autenticação utilizada, podendo ser ssh-password ou telnet. Recomendamos utilização de SSH!&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
// Por padrão ele consultará na porta 22 do SSH. Caso tenha sua porta alterada, pode especificar através da linha abaixo. Essa linha é opcional.&lt;br /&gt;
$config['routers']['router1']['port'] = '22';&lt;br /&gt;
// Fabricante do equipamento. No exemplo utilizaremos huawei;&lt;br /&gt;
$config['routers']['router1']['type'] = 'huawei';&lt;br /&gt;
// IP ou interface que originará ping e traceroute&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = '192.0.2.100';&lt;br /&gt;
// Nome do equipamento que aparecerá na interface Web. Sugiro especificar a cidade, POP ou algo que fique facil para o usuario identificar. Abaixo é um exemplo do que usamos:&lt;br /&gt;
$config['routers']['router1']['desc'] = 'HEXANETWORKS-RT-NE8000F1A-BGP01-SPO-SP4';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Caso já esteja tudo pronto do lado do roteador, já deverá conseguir consultar informações através da interface Web!&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3578</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3578"/>
		<updated>2023-09-21T16:42:55Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
// Authentication based on SSH or Telnet with password&lt;br /&gt;
// The hostname or the IP address&lt;br /&gt;
$config['routers']['router1']['host'] = 'r1.example.net';&lt;br /&gt;
// The user to use to connect to the router&lt;br /&gt;
$config['routers']['router1']['user'] = 'readonlyuser';&lt;br /&gt;
// The password of the given user&lt;br /&gt;
$config['routers']['router1']['pass'] = 'readonlypassword';&lt;br /&gt;
// The authentication mechanism to use (can be ssh-password or telnet)&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
// The router type (can be cisco, ios, juniper or junos)&lt;br /&gt;
$config['routers']['router1']['type'] = 'juniper';&lt;br /&gt;
// The router source interface to be used&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = 'lo0';&lt;br /&gt;
// The router description to be displayed in the router list&lt;br /&gt;
$config['routers']['router1']['desc'] = 'Example\'s Router 1';&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o metodo que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 é onde o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario.&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3577</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3577"/>
		<updated>2023-09-21T16:40:52Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o metodo que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
* Support the following router types:&lt;br /&gt;
** Arista&lt;br /&gt;
** BIRD (v1 and v2)&lt;br /&gt;
** Cisco (IOS and IOS-XR)&lt;br /&gt;
** Extreme/Brocade NetIron&lt;br /&gt;
** FRRouting&lt;br /&gt;
** Huawei (VRP)&lt;br /&gt;
** Juniper&lt;br /&gt;
** Mikrotik/RouterOS&lt;br /&gt;
** Nokia&lt;br /&gt;
** OpenBGPd&lt;br /&gt;
** Quagga&lt;br /&gt;
** Vyatta/VyOS/EdgeOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 é onde o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario.&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3576</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3576"/>
		<updated>2023-09-21T16:40:18Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = 'r1.example.net';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'readonlyuser';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'readonlypassword';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'juniper';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
Esse além de ser o metodo que recomendamos, é o método mais convencional visto de Looking Glass. Ele é interessante pois conseguirá ver além das rotas que foram eleitas para a FIB, também rotas que permanecem acomodadas apenas na RIB.&lt;br /&gt;
&lt;br /&gt;
O detalhe desse método que que depende do projeto ter suporte a fabricante do roteador que você utiliza, onde no git deles consta os seguintes vendors suportados:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 é onde o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario.&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, vamos configurar um exemplo para se comunicar com um roteador Huawei NE:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3575</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3575"/>
		<updated>2023-09-21T16:35:56Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image_width'] = '35%';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comunicação com Roteadores ==&lt;br /&gt;
&lt;br /&gt;
Para que o Looking Glass consiga coletar as informações que serão expostas na tela, ele precisará se comunicar com alguém. Isso pode acontecer inputando comandos dentro dos seus roteadores de borda, ou inputando comando em um daemon de BGP local (FRRouting por exemplo) que tenha um iBGP fechado com seus roteadores de borda. Ambos os metodos são explicados mais a baixo.&lt;br /&gt;
&lt;br /&gt;
Para que isso aconteça, é necessario configurar essas informações diretamente no arquivo config.php, informando com quem o PHP se comunicará. O exemplo abaixo já vem pronto no arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&lt;br /&gt;
// The hostname or the IP address&lt;br /&gt;
$config['routers']['router1']['host'] = 'r1.example.net';&lt;br /&gt;
// The user to use to connect to the router&lt;br /&gt;
$config['routers']['router1']['user'] = 'readonlyuser';&lt;br /&gt;
// The password of the given user&lt;br /&gt;
$config['routers']['router1']['pass'] = 'readonlypassword';&lt;br /&gt;
// The authentication mechanism to use (can be ssh-password or telnet)&lt;br /&gt;
$config['routers']['router1']['auth'] = 'ssh-password';&lt;br /&gt;
// The router type (can be cisco, ios, juniper or junos)&lt;br /&gt;
$config['routers']['router1']['type'] = 'juniper';&lt;br /&gt;
// The router source interface to be used&lt;br /&gt;
$config['routers']['router1']['source-interface-id'] = 'lo0';&lt;br /&gt;
// The router description to be displayed in the router list&lt;br /&gt;
$config['routers']['router1']['desc'] = 'Example\'s Router 1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível informar diversos roteadores, apenas mudando o numero do equipamento. No exemplo acima pode reparar que está sendo usado como ['router'''1'''']. Caso queria ter mais equipamentos, basta copiar e adicionar abaixo router2, router 3 etc.&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
O método mais convencional visto de Looking Glass é onde o LG roda comandos em seu roteador de borda com intuito de ver como determinadas rotas são aprendidas, realizar pings e traceroutes. Após isso, o retorno desses comandos é exposto na tela do usuario.&lt;br /&gt;
&lt;br /&gt;
Para que isso seja possível, é necessario que seu roteador de borda tenha um usuario criado com permissão para esse tipo de comando. '''Inclusive, não é necessario ter acesso de escrita no equipamento!'''. Sugiro inclusive que, caso possível, limite os comandos que esse usuario conseguirá dar na caixa por motivos de segurança.&lt;br /&gt;
&lt;br /&gt;
Tendo isso em mente, &lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3574</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3574"/>
		<updated>2023-09-21T16:26:09Z</updated>

		<summary type="html">&lt;p&gt;Andredias: $config['frontpage']['image_width'] = '35%';&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Instalações Iniciais ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Caso precise redimensionar a logo, pode colocar a linha abaixo e organizar a porcentagem mediante o que precisar.&lt;br /&gt;
&lt;br /&gt;
$config['frontpage']['image_width'] = '35%';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3573</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3573"/>
		<updated>2023-09-21T16:22:36Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam: ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
== VRF: ==&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['vrfs']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3572</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3572"/>
		<updated>2023-09-21T16:21:45Z</updated>

		<summary type="html">&lt;p&gt;Andredias: AntiSpam e VRF&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam: ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. Como nesse tutorial não utilizaremos essa função, apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso essa linha não for adicionada, o seguinte erro aparecerá na tela:&lt;br /&gt;
&lt;br /&gt;
'''Error!''' &lt;br /&gt;
 Unable to open database: SQLSTATE[HY000] [14] unable to open database file&lt;br /&gt;
&lt;br /&gt;
VRF:&lt;br /&gt;
&lt;br /&gt;
VRF (Virtual Routing and Forwarding) são tabelas de roteamento virtuais que podem ser criadas nos equipamentos. Pensando em cenários em que os fullroutes são recebidos em uma VRF, foi adicionado essa função no projeto.&lt;br /&gt;
&lt;br /&gt;
No nosso caso também não utilizaremos VRF, sendo assim, encontre a seguinte linha no final do arquivo config.php:&lt;br /&gt;
&lt;br /&gt;
$config['vrfs']['enabled'] = true;&lt;br /&gt;
&lt;br /&gt;
Altere para false, ficando da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
$config['vrfs']['enabled'] = false;&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3571</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3571"/>
		<updated>2023-09-21T15:46:59Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AntiSpam: ==&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. No tutorial não utilizaremos essa função, então apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['antispam']['enabled'] = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Método 01 - Inputando comandos no seu roteador de borda ==&lt;br /&gt;
&lt;br /&gt;
== Método 02 - Utilizando FFRouting ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3570</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3570"/>
		<updated>2023-09-21T15:44:12Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Atualizando o artigo para Debian 12 e devido a updates que ocorreram no projeto.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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 e também para outros profissionais que precisem fazer troubleshoot em outras redes.&lt;br /&gt;
&lt;br /&gt;
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 12, caso tenha preferencia por outra distribuição, apenas adapte conforme sua necessidade.&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 12 em minimal-install, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-xml -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AntiSpam:&lt;br /&gt;
&lt;br /&gt;
Caso queira utilizar a função de anti-spam, precisará instalar o modulo de SQLITE para o PHP. No tutorial não utilizaremos essa função, então apenas adicione a linha abaixo no arquivo de configuração:&lt;br /&gt;
&lt;br /&gt;
$config['antispam']['enabled'] = false;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3248</id>
		<title>Como Ter Seu Proprio Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Ter_Seu_Proprio_Looking_Glass&amp;diff=3248"/>
		<updated>2022-09-08T18:33:30Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Correção da distribuição linux, alterando de 10 para 11, e correção do acesso ao LG.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introdução ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Após instalar seu Debian 11, atualize seus repositórios com o comando abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instale as dependências:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install git apache2 libapache2-mod-php php php-common -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faça o clone do LG no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/respawner/looking-glass.git /var/www/html/lg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reinicie o serviço do Apache2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mova os arquivos da pasta /var/www/html/lg para /var/www/html/ , de forma que consiga acessar sem especificar um folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv /var/www/html/lg/* /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
(Prefira copiar a mover/renomear, para que possa ter backup da configuração padrão)&lt;br /&gt;
[[Arquivo:LookingGlassDefaultScreen.png|miniaturadaimagem|295x295px]]&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/www/html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp config.php.example config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso tenha deixado seu linux em DHCP, verifique qual o IP recebido utilizando seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supondo que o IP seja 192.0.2.2, acesse com a seguinte URL:&lt;br /&gt;
&lt;br /&gt;
[http://192.0.2.2/lg &amp;lt;code&amp;gt;http://192.0.2.2&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
O próximo passo é editar o arquivo de configuração que copiamos, para isso, utilize o editor de texto de sua preferencia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /var/www/html/config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No arquivo de configuração possuímos alguns campos básicos como:&lt;br /&gt;
* Nome;&lt;br /&gt;
* E-mail;&lt;br /&gt;
* Titulo;&lt;br /&gt;
* Logo;&lt;br /&gt;
* Disclaimer.&lt;br /&gt;
Esses campos deverão ser preenchidos mediante suas informações, segue um exemplo:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:LG-Interface-Configurado2.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['name'] = 'NOC HexaNetworks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['contact']['mail'] = 'andredias@hexanetworks.com.br';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Frontpage configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Title of the page&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['title'] = 'Looking Glass - Hexa Networks';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Logo to display (remove it to not display any logo)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['image'] = 'logo.png';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Disclaimer to inform people using the looking glass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Set it to null to not display a disclaimer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['frontpage']['disclaimer'] = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Da linha 38 em diante, teremos as configuraçoes relacionadas aos roteadores, vamos editar apenas as linhas relacionadas ao &amp;quot;router1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Configure mediante o exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// Authentication based on SSH or Telnet with password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The hostname or the IP address&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['host'] = '127.0.0.1';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The user to use to connect to the router&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['user'] = 'lookingglass';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The password of the given user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['pass'] = 'SENHA-DO-USUARIO-LOOKINGGLASS';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The authentication mechanism to use (can be ssh-password or telnet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['auth'] = 'ssh-password';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router type (can be cisco, ios, juniper or junos)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['type'] = 'quagga';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router source interface to be used&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;//$config['routers']['router1']['source-interface-id'] = 'lo0';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;// The router description to be displayed in the router list&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Arquivo:LG-Configurado-3.png|miniaturadaimagem]]&lt;br /&gt;
&amp;lt;code&amp;gt;$config['routers']['router1']['desc'] = 'Roteador de Borda';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acima determinamos que:&lt;br /&gt;
* O LG fará consulta local;&lt;br /&gt;
* Utilizará o usuário &amp;quot;lookingglass&amp;quot; para tal;&lt;br /&gt;
* Com a senha &amp;quot;SENHA-DO-USUARIO-LOOKINGGLASS&amp;quot;;&lt;br /&gt;
* Utilizará SSH;&lt;br /&gt;
*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;&lt;br /&gt;
* Comentamos a interface de origem;&lt;br /&gt;
* A descrição do roteador é &amp;quot;Roteador de Borda&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Caso queira remover o restante dos roteadores que aparecem, basta apagar ou comentar (//) as linhas referente aos outros roteadores.&lt;br /&gt;
&lt;br /&gt;
O proximo passo é instalar o FRRouting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install frr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adicione o usuario &amp;quot;lookingglass&amp;quot; no seu linux, e o adicione ao grupo &amp;quot;frr&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;adduser lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Informe a senha&lt;br /&gt;
&lt;br /&gt;
Repita a senha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usermod -aG frrvty lookingglass&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesse a pasta o arquivo daemons do FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/frr/daemons&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Altere a linha bgpd=no para bgpd=yes e reinicie o FRR:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service frr restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilize o comando vtysh para acessar a VTY do frr.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;router bgp 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 192.0.2.1 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;neighbor 2001:db8::2 remote-as 65000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv4 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 192.0.2.1 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;address-family ipv6 unicast&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map IMPORT in&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  neighbor 2001:db8::2 route-map EXPORT out&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exit-address-family&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map IMPORT permit 10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;route-map EXPORT deny 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Autor: [https://wiki.brasilpeeringforum.org/w/Usuário:Andredias André Dias]'''&lt;br /&gt;
[[Categoria:Roteamento]]&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3222</id>
		<title>Usuário:Andredias</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=3222"/>
		<updated>2022-05-21T20:53:32Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Resumo==&lt;br /&gt;
André Dias é um profissional com mais de 6 anos na área de redes de computadores, possui vasta experiencia em protocolos de roteamento intra e inter-AS, MPLS, servidores e monitoramento.&lt;br /&gt;
&lt;br /&gt;
É fundador e diretor da [https://hexanetworks.com.br/ Hexa Networks], empresa de consultoria de redes.&lt;br /&gt;
&lt;br /&gt;
Certificado JNCIA, MTCNA, MTCRE , MTCINE e MTCIPv6E, é um consultor oficial da MikroTik, porém trabalha também com diversos fabricantes como Juniper, Huawei, Cisco, Extreme e etc.&lt;br /&gt;
&lt;br /&gt;
Conhecido também pelos seus cases de monitoramento de Zabbix com Grafana, tendo diversos casos de sucesso em diversas fabricantes pelo Brasil.&lt;br /&gt;
&lt;br /&gt;
==Artigos Escritos==&lt;br /&gt;
[[Arquivo:Andre Dias.jpg|miniaturadaimagem]]&lt;br /&gt;
[[Como Ter Seu Proprio Looking Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Como Monitorar 95th percentile|Como Monitorar 95 percentil]]&lt;br /&gt;
==Contatos==&lt;br /&gt;
'''LinkedIn:''' https://www.linkedin.com/in/andrelrdias/&lt;br /&gt;
&lt;br /&gt;
'''E-mail profissional:''' andredias@hexanetworks.com.br&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=2896</id>
		<title>Como Monitorar 95th percentile</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=2896"/>
		<updated>2021-03-17T16:56:45Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introdução ===&lt;br /&gt;
Link burstable é grandemente falado e procurado por sua flexibilidade e facilidade. Fernando Frediani realizou um [https://www.youtube.com/watch?v=WjSps5huDGU&amp;amp;t=157s painel] na GTER explicando sobre seus conceitos e utilidades.&lt;br /&gt;
&lt;br /&gt;
Uma dificuldade que impede de alguns upstreams a ofertar esse serviço é o monitoramento de tal serviço, justamente por ser complexo determinar quanto o cliente deverá pagar por aquela fatura por se tratar de um valor variável, e não mais um valor fixo.&lt;br /&gt;
&lt;br /&gt;
Leve em consideração que o provedor XPTO realizou a contratação de um link burstable com a operadora Z com commit de 500M e burst de 1G, sendo assim, o valor inicial que ele pagará será referente a 500M.&lt;br /&gt;
&lt;br /&gt;
Porém como estamos nos referindo a 95 percentile, poderá acontecer de esse cliente ultrapassar os 500M de trafego durante mais do que 36 horas, passando assim a ter que pagar por uma capacidade superior utilizada além do mínimo contratado.&lt;br /&gt;
&lt;br /&gt;
Nesse caso em questão, o upstream devera excluir 5% dos picos de trafego que esse cliente utilizou, e cobrar pelo valor subsequente.&lt;br /&gt;
[[Arquivo:Zabbix logo.png|miniaturadaimagem|Zabbix]]&lt;br /&gt;
&lt;br /&gt;
=== Monitoramento Nativo ===&lt;br /&gt;
Alguns sistemas de monitoramento possuem formas simples de fazer isso, um excelente exemplo é o próprio Zabbix, que é o que utilizaremos para demonstrar aqui.&lt;br /&gt;
&lt;br /&gt;
A primeira forma será através de uma forma nativa de monitoramento por parte do Zabbix através do monitoramento via SNMP que já é feito nas interfaces do seu equipamento. Para criar o gráfico relacionado ao 95 percentile, siga os seguintes passos:&lt;br /&gt;
[[Arquivo:Criaçao Grafico 95percentil.png|miniaturadaimagem|Criação do Gráfico no Host]]&lt;br /&gt;
# Entre nos Hosts do Zabbix;&lt;br /&gt;
# Entre nos gráficos do seu host;&lt;br /&gt;
# Crie um novo gráfico;&lt;br /&gt;
# Existem 2 itens chamados de &amp;quot;Item Percentile (left)&amp;quot; e &amp;quot;Item Percentile (right)&amp;quot;, habilite ambos e ao lado coloque 95;&lt;br /&gt;
# Adicione os itens relacionados ao trafego da interface que deseja monitorar (trafego de inbound e de outbound);&lt;br /&gt;
# Para checar se funcionou, entre no menu &amp;quot;Monitoring&amp;quot;, &amp;quot;Graphs&amp;quot;, selecione o grupo que seu host está incluso, selecione seu host, e o gráfico que voce criou;&lt;br /&gt;
# Manipule o Time-Range do gráfico de forma que ele mostre o trafego desde o primeiro dia do mês, até o ultimo;&lt;br /&gt;
# Uma linha aparecerá no gráfico, e uma estatística com um triangulo na frente escrito &amp;quot;95percentile&amp;quot;;&lt;br /&gt;
# O valor seguinte, é o valor que buscamos.&lt;br /&gt;
[[Arquivo:Ready-graph-95percentil.png|miniaturadaimagem|Gráfico pronto de um link 95 percentile.]]&lt;br /&gt;
&lt;br /&gt;
Caso prefira, pode adicionar essa configuração nos gráficos que podem ser criados automaticamente pelo Low Level Discovery do seu template.&lt;br /&gt;
&lt;br /&gt;
=== Relatórios Usando ExternalScripts ===&lt;br /&gt;
Existem casos onde o o transito em questão possui a necessidade de gerar relatórios mais complexos, para tal eu desenvolvi um script para essa finalidade.Esse script faz justamente o que o gráfico realiza, porém de forma que mostre um relatório em texto.&lt;br /&gt;
&lt;br /&gt;
Para utilizarmos esse script, precisaremos inicialmente acessar seu Zabbix via SSH, e após isso  usar o seguinte comando para acessar o diretório onde ficam os scripts para monitoramento externo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /usr/lib/zabbix/externalscripts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos realizar o download das dependências do script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install wget git -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, realize o clone do script que está no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/andrediashexa/95percentil.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv 95percentil/* .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro do script é necessário colocar o usuário e senha do seu database, para isso utilizaremos o nano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edite as primeiras linhas de acordo com suas informações, de forma que sejam coerentes com o acesso de seu database. Apenas dessa forma o script conseguirá buscar as informações que precisaremos para gerar os relatórios.&lt;br /&gt;
&lt;br /&gt;
De permissões ao arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod a+x 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Determine que o dono do arquivo é o usuário zabbix:[[Arquivo:Item Host 95percentil.png|miniaturadaimagem]]&amp;lt;code&amp;gt;chown -R zabbix 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos criar um item no host que deseja monitorar, mandando utilizar o script para gerar relatório de um determinado ItemID.&lt;br /&gt;
&lt;br /&gt;
Todo item de monitoramento no Zabbix possui uma identificação numérica chamada de ItemID, para pegar o ItemID é bastante simples.&lt;br /&gt;
&lt;br /&gt;
Acesse a interface web de seu Zabbix, e entre no item utilizado para monitorar o trafego de uma determinada interface de um host.&lt;br /&gt;
&lt;br /&gt;
Na URL vai reparar que estará algo parecido com isso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://192.0.2.0/zabbix/items.php?form=update&amp;amp;hostid=10260&amp;amp;itemid=29583&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Guarde o numero do ItemID que mostra na sua URL, utilizaremos ele.&lt;br /&gt;
&lt;br /&gt;
Crie um novo item no seu host, utilizando a seguinte configuração:&lt;br /&gt;
&lt;br /&gt;
Substitua o Te0/0/1 pela interface que vai monitorar&lt;br /&gt;
&lt;br /&gt;
'''Name: 95% Te0/0/1'''&lt;br /&gt;
&lt;br /&gt;
'''Type: Monitoramento externo'''&lt;br /&gt;
&lt;br /&gt;
Substitua o ITEMID pelo ID que guardou la atras.&lt;br /&gt;
&lt;br /&gt;
'''Key: 95percentile.sh[report,ITEMID]'''&lt;br /&gt;
&lt;br /&gt;
'''Type of information: TEXT'''&lt;br /&gt;
&lt;br /&gt;
'''Update Interval: 1d'''[[Arquivo:Latest Data.png|miniaturadaimagem]]'''New Application: 95%'''&lt;br /&gt;
&lt;br /&gt;
Clique em update, entre no item que acabou de criar e clique em Check Now.&lt;br /&gt;
&lt;br /&gt;
Ao clicar em Check Now, forçara o monitoramento acontecer naquele instante.&lt;br /&gt;
&lt;br /&gt;
Após isso, vá em Monitoring, Latest Data e procure pelo item que acabou de criar, clique em history e deverá mostrar o relatório de todas as vezes que aquela interface foi monitorada por aquele ItemID, excluindo 5% dos maiores resultados.&lt;br /&gt;
&lt;br /&gt;
O monitoramento foi configurado para acontecer todo dia. Nada impede de manipular para ele acontecer todo dia 1 de cada mês.&lt;br /&gt;
[[Arquivo:DadosRecentes.png|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
=== Outras Funções ===&lt;br /&gt;
Além da função de relatório, o script também possui outras 2 funções:&lt;br /&gt;
&lt;br /&gt;
==== 95current ====&lt;br /&gt;
Realiza a verificação do monitoramento do mês atual, exclui os 5% maiores resultados e informa o maior resultado subsequente.&lt;br /&gt;
&lt;br /&gt;
==== fullreport ====&lt;br /&gt;
Traz o relatório completo, sem excluir os 5% maiores resultados.&lt;br /&gt;
&lt;br /&gt;
=== Dicas e Cuidados ===&lt;br /&gt;
&lt;br /&gt;
==== Timer dos itens ====&lt;br /&gt;
Dependendo da função que utilizará do script, ele coletará todos valores monitorados do ultimo mês, o que poderá ser extremamente oneroso para o DB, e certamente fará o Zabbix dar timeout no script.&lt;br /&gt;
&lt;br /&gt;
Supondo que monitore o trafego de uma determinada interface 1x por minuto, isso causará 108mil registros para o MySQL buscar na tabela.&lt;br /&gt;
&lt;br /&gt;
Recomendo que aumente o tempo de coleta para 5min, o que diminuirá para 21600 itens, e diminuirá a possibilidade de um timeout.&lt;br /&gt;
&lt;br /&gt;
==== LowLevel Discovery ====&lt;br /&gt;
Não recomendo que tente &amp;quot;combar&amp;quot; o script com LLD, pelo mesmo motivo que foi citado acima.&lt;br /&gt;
&lt;br /&gt;
=== Como Colaborar Com o Script? ===&lt;br /&gt;
'''O script em questão foi desenvolvido por mim, e por se tratar de um script OpenSource, está aberto no GitHub para quem quiser colaborar no desenvolvimento dele.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[https://github.com/andrediashexa/95percentil.git https://github.com/andrediashexa/95percentil]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Autor: [[Usuário:Andredias|André Dias]]'''&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Looking_Glass&amp;diff=2794</id>
		<title>Looking Glass</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Looking_Glass&amp;diff=2794"/>
		<updated>2020-12-16T18:38:26Z</updated>

		<summary type="html">&lt;p&gt;Andredias: Adição LG SinalBR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A ferramenta Looking Glass, ou em uma tradução livre em português &amp;quot;espelho&amp;quot;, é muito utilizada por operadores de rede Internet no mundo todo para visualizar suas rotas BGP e prefixos na tabela de roteamento de outros participantes.&lt;br /&gt;
&lt;br /&gt;
O uso do Looking Glass pode ser muito útil para entender como suas rotas estão sendo tratadas, anunciadas, alteradas, bloqueadas, etc. Os melhores Looking Glass são aqueles que são roteadores reais (com acesso público somente leitura). Alguns inclusive permitem o usuário dar comandos como PING e TRACEROUTE (entenda aqui como o [[traceroute]] funciona).&lt;br /&gt;
&lt;br /&gt;
Esta ferramenta pode ser muito útil ao solucionar problemas de roteamento da Internet; seja para o seu site,seu ASN ou para prefixos de parceiros e clientes. Abaixo segue uma lista não extensiva dos principais Looking Glass do Brasil e alguns mundiais:&lt;br /&gt;
&lt;br /&gt;
== Lista de Looking Glass ==&lt;br /&gt;
'''Atualizada em 10/07/2020'''&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Nacionais (Brasil)&lt;br /&gt;
!Rede&lt;br /&gt;
!ASN&lt;br /&gt;
!Looking Glass&lt;br /&gt;
!IPv4&lt;br /&gt;
!IPv6&lt;br /&gt;
|-&lt;br /&gt;
|Equinix&lt;br /&gt;
|16397&lt;br /&gt;
|https://lg.equinix.com.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Algar Telecom&lt;br /&gt;
|16735&lt;br /&gt;
|http://lg.algartelecom.com.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|IX.br São Paulo&lt;br /&gt;
|Vários&lt;br /&gt;
|telnet://lg.sp.ptt.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|IX.br ALICE&lt;br /&gt;
|Vários&lt;br /&gt;
|https://lg.ix.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|NetBotanic&lt;br /&gt;
|28338&lt;br /&gt;
|http://lg.netbotanic.com.br/lg.php&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|BitCom&lt;br /&gt;
|28169&lt;br /&gt;
|http://lg.bitcom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Sumicity&lt;br /&gt;
|28210&lt;br /&gt;
|http://lg.sumicity.net.br/lg&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|G8&lt;br /&gt;
|28329&lt;br /&gt;
|https://lg.g8.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Wirelink&lt;br /&gt;
|28368&lt;br /&gt;
|http://lg.wirelink.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Use Telecom&lt;br /&gt;
|52871&lt;br /&gt;
|http://lg.tascom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Commcorp&lt;br /&gt;
|14840&lt;br /&gt;
|https://lg.commcorp.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Ultrawave Telecomunicações&lt;br /&gt;
|262659&lt;br /&gt;
|https://lg.ultrawave.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|ITS Telecomunicações&lt;br /&gt;
|28186&lt;br /&gt;
|https://lg.itsbrasil.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|KingHost&lt;br /&gt;
|28299&lt;br /&gt;
|https://lg.kinghost.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|W8 Telecom&lt;br /&gt;
|267469&lt;br /&gt;
|http://lg.w8telecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|OpenX&lt;br /&gt;
|263444&lt;br /&gt;
|http://lg.openx.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|K2 Telecom&lt;br /&gt;
|53181&lt;br /&gt;
|https://lg.k2telecom.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UPX Technologies&lt;br /&gt;
|52863&lt;br /&gt;
|http://lg.upx.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Internexa&lt;br /&gt;
|262589&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;ssh bgp_view@177.84.161.226 | senha bgp_view&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Eletronet&lt;br /&gt;
|267613&lt;br /&gt;
|http://looking-glass.eletronet.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|GVT&lt;br /&gt;
|18881&lt;br /&gt;
|telnet://route-server.gvt.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Forte Telecom&lt;br /&gt;
|263009&lt;br /&gt;
|https://lg.fortetelecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Net&amp;amp;Com&lt;br /&gt;
|263324&lt;br /&gt;
|http://lg.netecom.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Adylnet&lt;br /&gt;
|28283&lt;br /&gt;
|http://lg.adyl.net.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Globenet&lt;br /&gt;
|52320&lt;br /&gt;
|http://lg.globenet.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|DMC Telecom&lt;br /&gt;
|268551&lt;br /&gt;
|https://lg.dmctelecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|RNV Corp&lt;br /&gt;
|266201&lt;br /&gt;
|https://lg.rnv.net.br&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Conect Internet&lt;br /&gt;
|265066&lt;br /&gt;
|https://lg.conectrj.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Netway Telecom&lt;br /&gt;
|262403&lt;br /&gt;
|https://lg.netwt.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Wixnet&lt;br /&gt;
|53013&lt;br /&gt;
|http://wixnet.com.br/lg/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Aloo&lt;br /&gt;
|61568&lt;br /&gt;
|http://lg.alootelecom.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Altarede&lt;br /&gt;
|28260&lt;br /&gt;
|http://lg.altarede.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|SinalBR&lt;br /&gt;
|262761&lt;br /&gt;
|http://lg.sinalbr.com.br/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|}&lt;br /&gt;
* &lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
Internacionais&lt;br /&gt;
!Rede&lt;br /&gt;
!ASN&lt;br /&gt;
!Looking Glass&lt;br /&gt;
!IPv4&lt;br /&gt;
!IPv6&lt;br /&gt;
|-&lt;br /&gt;
|Seabone / Sparkle&lt;br /&gt;
|6762&lt;br /&gt;
|https://gambadilegno.noc.seabone.net/lg/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Stackpath&lt;br /&gt;
|12989&lt;br /&gt;
|https://lookingglass.hwng.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|KPN&lt;br /&gt;
|286&lt;br /&gt;
|https://lg2.eurorings.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|CenturyLink&lt;br /&gt;
|209&lt;br /&gt;
|https://lookingglass.centurylink.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|NTT&lt;br /&gt;
|2914&lt;br /&gt;
|https://www.gin.ntt.net/looking-glass-landing/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Sprint&lt;br /&gt;
|1239&lt;br /&gt;
|https://www.sprint.net/lg&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Tata&lt;br /&gt;
|6453&lt;br /&gt;
|http://lg.beta.as6453.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Telia&lt;br /&gt;
|1299&lt;br /&gt;
|https://lg.telia.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|HE&lt;br /&gt;
|6939&lt;br /&gt;
|http://lg.he.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Cogent&lt;br /&gt;
|174&lt;br /&gt;
|http://www.cogentco.com/en/network/looking-glass&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Zayo&lt;br /&gt;
|6461&lt;br /&gt;
|http://lg.zayo.com&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|NLNOG&lt;br /&gt;
|Vários&lt;br /&gt;
|http://lg.ring.nlnog.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|SoftLayer&lt;br /&gt;
|36351&lt;br /&gt;
|http://lg.softlayer.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|AT&amp;amp;T&lt;br /&gt;
|7018&lt;br /&gt;
|telnet://12.0.1.28&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Deutsche Telekom&lt;br /&gt;
|3320&lt;br /&gt;
|https://s-lga1.s.de.net.dtag.de/index.php?pageid=lg&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|GTT (via Ginernet)&lt;br /&gt;
|3257&lt;br /&gt;
|http://gtt.lg.ginernet.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Telxius/TIWS&lt;br /&gt;
|12956&lt;br /&gt;
|https://telxius.com/looking-glass/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Não.png|semmoldura]]&lt;br /&gt;
|-&lt;br /&gt;
|Orange (Opentransit)&lt;br /&gt;
|5511&lt;br /&gt;
|https://looking-glass.opentransit.net/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Worldstream (IPTV)&lt;br /&gt;
|49981&lt;br /&gt;
|https://lg.worldstream.nl&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|OVH&lt;br /&gt;
|16276&lt;br /&gt;
|https://lg.ovh.net&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|PJSC ROSTELECOM&lt;br /&gt;
|12389&lt;br /&gt;
|http://lg.ip.rt.ru/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|G-Core Labs&lt;br /&gt;
|199524&lt;br /&gt;
|https://lg.gcorelabs.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Leaseweb (hospeda SmartOLT)&lt;br /&gt;
|30633&lt;br /&gt;
|https://lg.leasewebstatus.com/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Angola Cables&lt;br /&gt;
|37468&lt;br /&gt;
|https://lg.angolacables.co.ao/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Packet.net&lt;br /&gt;
|54825&lt;br /&gt;
|https://www.packet.com/resources/noc/&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura|ligação=https://wiki.brasilpeeringforum.org/w/Arquivo:Sim.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Destaques&amp;lt;/big&amp;gt; ====&lt;br /&gt;
* Looking Glass da Tata que mostra um mapa visual da rota (http://lg.beta.as6453.net)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Looking Glass ALICE do IX.br, que agrega várias tabelas de IXs em diferentes cidades (https://lg.ix.br)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Looking Glass da NLNOG que mostra uma visão de múltiplos route-servers (http://lg.ring.nlnog.net)&lt;br /&gt;
* &lt;br /&gt;
==== &amp;lt;big&amp;gt;Looking Glass mais aguardado&amp;lt;/big&amp;gt; ====&lt;br /&gt;
* ISPTools em http://www.isptools.com.br/lg&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Kisspng-emoji-sadness-emoticon-smiley-clip-art-sad-emoji-png-clipart-5a73fc019d1bb8.4272949715175505936435.png|esquerda|semmoldura|66x66px]]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ausências importantes:&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Redes importantes que &amp;lt;u&amp;gt;não disponibilizam&amp;lt;/u&amp;gt; um Looking Glass BGP:&lt;br /&gt;
&lt;br /&gt;
* Telefônica Vivo&lt;br /&gt;
* Claro/Embratel&lt;br /&gt;
* TIM&lt;br /&gt;
* Oi&lt;br /&gt;
* Copel&lt;br /&gt;
* Vogel&lt;br /&gt;
* Amazon&lt;br /&gt;
* Google&lt;br /&gt;
* Microsoft&lt;br /&gt;
* Akamai&lt;br /&gt;
[[Categoria:Interconexão]]&lt;br /&gt;
__INDEXAR__&lt;br /&gt;
[[Categoria:Roteamento]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=2672</id>
		<title>Como Monitorar 95th percentile</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=2672"/>
		<updated>2020-09-24T05:31:43Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introdução ===&lt;br /&gt;
Link burstable é grandemente falado e procurado por sua flexibilidade e facilidade. Fernando Frediani realizou um [https://www.youtube.com/watch?v=WjSps5huDGU&amp;amp;t=157s painel] na GTER explicando sobre seus conceitos e utilidades.&lt;br /&gt;
&lt;br /&gt;
Uma dificuldade que impede de alguns upstreams a ofertar esse serviço é o monitoramento de tal serviço, justamente por ser complexo determinar quanto o cliente deverá pagar por aquela fatura por se tratar de um valor variável, e não mais um valor fixo.&lt;br /&gt;
&lt;br /&gt;
Leve em consideração que o provedor XPTO realizou a contratação de um link burstable com a operadora Z com commit de 500M e burst de 1G, sendo assim, o valor inicial que ele pagará será referente a 500M.&lt;br /&gt;
&lt;br /&gt;
Porém como estamos nos referindo a 95 percentile, poderá acontecer de esse cliente ultrapassar os 500M de trafego durante mais do que 36 horas, passando assim a ter que pagar por uma capacidade superior utilizada além do mínimo contratado.&lt;br /&gt;
&lt;br /&gt;
Nesse caso em questão, o upstream devera excluir 5% dos picos de trafego que esse cliente utilizou, e cobrar pelo valor subsequente.&lt;br /&gt;
[[Arquivo:Zabbix logo.png|miniaturadaimagem|Zabbix]]&lt;br /&gt;
&lt;br /&gt;
=== Monitoramento Nativo ===&lt;br /&gt;
Alguns sistemas de monitoramento possuem formas simples de fazer isso, um excelente exemplo é o próprio Zabbix, que é o que utilizaremos para demonstrar aqui.&lt;br /&gt;
&lt;br /&gt;
A primeira forma será através de uma forma nativa de monitoramento por parte do Zabbix através do monitoramento via SNMP que já é feito nas interfaces do seu equipamento. Para criar o gráfico relacionado ao 95 percentile, siga os seguintes passos:&lt;br /&gt;
[[Arquivo:Criaçao Grafico 95percentil.png|miniaturadaimagem|Criação do Gráfico no Host]]&lt;br /&gt;
# Entre nos Hosts do Zabbix;&lt;br /&gt;
# Entre nos gráficos do seu host;&lt;br /&gt;
# Crie um novo gráfico;&lt;br /&gt;
# Existem 2 itens chamados de &amp;quot;Item Percentile (left)&amp;quot; e &amp;quot;Item Percentile (right)&amp;quot;, habilite ambos e ao lado coloque 95;&lt;br /&gt;
# Adicione os itens relacionados ao trafego da interface que deseja monitorar (trafego de inbound e de outbound);&lt;br /&gt;
# Para checar se funcionou, entre no menu &amp;quot;Monitoring&amp;quot;, &amp;quot;Graphs&amp;quot;, selecione o grupo que seu host está incluso, selecione seu host, e o gráfico que voce criou;&lt;br /&gt;
# Manipule o Time-Range do gráfico de forma que ele mostre o trafego desde o primeiro dia do mês, até o ultimo;&lt;br /&gt;
# Uma linha aparecerá no gráfico, e uma estatística com um triangulo na frente escrito &amp;quot;95percentile&amp;quot;;&lt;br /&gt;
# O valor seguinte, é o valor que buscamos.&lt;br /&gt;
[[Arquivo:Ready-graph-95percentil.png|miniaturadaimagem|Gráfico pronto de um link 95 percentile.]]&lt;br /&gt;
&lt;br /&gt;
Caso prefira, pode adicionar essa configuração nos gráficos que podem ser criados automaticamente pelo Low Level Discovery do seu template.&lt;br /&gt;
&lt;br /&gt;
=== Relatórios Usando ExternalScripts ===&lt;br /&gt;
Existem casos onde o o transito em questão possui a necessidade de gerar relatórios mais complexos, para tal eu desenvolvi um script para essa finalidade.Esse script faz justamente o que o gráfico realiza, porém de forma que mostre um relatório em texto.&lt;br /&gt;
&lt;br /&gt;
Para utilizarmos esse script, precisaremos inicialmente acessar seu Zabbix via SSH, e após isso  usar o seguinte comando para acessar o diretório onde ficam os scripts para monitoramento externo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /usr/lib/zabbix/externalscripts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos realizar o download das dependências do script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install wget git -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, realize o clone do script que está no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/andrediashexa/95percentil.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv 95percentil/* .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro do script é necessário colocar o usuário e senha do seu database, para isso utilizaremos o nano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edite as primeiras linhas de acordo com suas informações, de forma que sejam coerentes com o acesso de seu database. Apenas dessa forma o script conseguirá buscar as informações que precisaremos para gerar os relatórios.&lt;br /&gt;
&lt;br /&gt;
De permissões ao arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod a+x 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Determine que o dono do arquivo é o usuário zabbix:[[Arquivo:Item Host 95percentil.png|miniaturadaimagem]]&amp;lt;code&amp;gt;chown -R zabbix 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos criar um item no host que deseja monitorar, mandando utilizar o script para gerar relatório de um determinado ItemID.&lt;br /&gt;
&lt;br /&gt;
Todo item de monitoramento no Zabbix possui uma identificação numérica chamada de ItemID, para pegar o ItemID é bastante simples.&lt;br /&gt;
&lt;br /&gt;
Acesse a interface web de seu Zabbix, e entre no item utilizado para monitorar o trafego de uma determinada interface de um host.&lt;br /&gt;
&lt;br /&gt;
Na URL vai reparar que estará algo parecido com isso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://192.0.2.0/24/zabbix/items.php?form=update&amp;amp;hostid=10260&amp;amp;itemid=29583&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Guarde o numero do ItemID que mostra na sua URL, utilizaremos ele.&lt;br /&gt;
&lt;br /&gt;
Crie um novo item no seu host, utilizando a seguinte configuração:&lt;br /&gt;
&lt;br /&gt;
Substitua o Te0/0/1 pela interface que vai monitorar&lt;br /&gt;
&lt;br /&gt;
'''Name: 95% Te0/0/1'''&lt;br /&gt;
&lt;br /&gt;
'''Type: Monitoramento externo'''&lt;br /&gt;
&lt;br /&gt;
Substitua o ITEMID pelo ID que guardou la atras.&lt;br /&gt;
&lt;br /&gt;
'''Key: 95percentile.sh[report,ITEMID]'''&lt;br /&gt;
&lt;br /&gt;
'''Type of information: TEXT'''&lt;br /&gt;
&lt;br /&gt;
'''Update Interval: 1d'''[[Arquivo:Latest Data.png|miniaturadaimagem]]'''New Application: 95%'''&lt;br /&gt;
&lt;br /&gt;
Clique em update, entre no item que acabou de criar e clique em Check Now.&lt;br /&gt;
&lt;br /&gt;
Ao clicar em Check Now, forçara o monitoramento acontecer naquele instante.&lt;br /&gt;
&lt;br /&gt;
Após isso, vá em Monitoring, Latest Data e procure pelo item que acabou de criar, clique em history e deverá mostrar o relatório de todas as vezes que aquela interface foi monitorada por aquele ItemID, excluindo 5% dos maiores resultados.&lt;br /&gt;
&lt;br /&gt;
O monitoramento foi configurado para acontecer todo dia. Nada impede de manipular para ele acontecer todo dia 1 de cada mês.&lt;br /&gt;
[[Arquivo:DadosRecentes.png|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
=== Outras Funções ===&lt;br /&gt;
Além da função de relatório, o script também possui outras 2 funções:&lt;br /&gt;
&lt;br /&gt;
==== 95current ====&lt;br /&gt;
Realiza a verificação do monitoramento do mês atual, exclui os 5% maiores resultados e informa o maior resultado subsequente.&lt;br /&gt;
&lt;br /&gt;
==== fullreport ====&lt;br /&gt;
Traz o relatório completo, sem excluir os 5% maiores resultados.&lt;br /&gt;
&lt;br /&gt;
=== Dicas e Cuidados ===&lt;br /&gt;
&lt;br /&gt;
==== Timer dos itens ====&lt;br /&gt;
Dependendo da função que utilizará do script, ele coletará todos valores monitorados do ultimo mês, o que poderá ser extremamente oneroso para o DB, e certamente fará o Zabbix dar timeout no script.&lt;br /&gt;
&lt;br /&gt;
Supondo que monitore o trafego de uma determinada interface 1x por minuto, isso causará 108mil registros para o MySQL buscar na tabela.&lt;br /&gt;
&lt;br /&gt;
Recomendo que aumente o tempo de coleta para 5min, o que diminuirá para 21600 itens, e diminuirá a possibilidade de um timeout.&lt;br /&gt;
&lt;br /&gt;
==== LowLevel Discovery ====&lt;br /&gt;
Não recomendo que tente &amp;quot;combar&amp;quot; o script com LLD, pelo mesmo motivo que foi citado acima.&lt;br /&gt;
&lt;br /&gt;
=== Como Colaborar Com o Script? ===&lt;br /&gt;
'''O script em questão foi desenvolvido por mim, e por se tratar de um script OpenSource, está aberto no GitHub para quem quiser colaborar no desenvolvimento dele.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[https://github.com/andrediashexa/95percentil.git https://github.com/andrediashexa/95percentil]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Autor: [[Usuário:Andredias|André Dias]]'''&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Compatibilidade_de_GBICs_e_Cabos_Twinax&amp;diff=2503</id>
		<title>Compatibilidade de GBICs e Cabos Twinax</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Compatibilidade_de_GBICs_e_Cabos_Twinax&amp;diff=2503"/>
		<updated>2020-06-02T17:57:53Z</updated>

		<summary type="html">&lt;p&gt;Andredias: /* Datacom */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introdução ===&lt;br /&gt;
O intuito desta página é reunir informações sobre a compatibilidade de GBICs e cabos Twinax utilizados em Switches e Roteadores mais comuns do mercado e facilitar a avaliação por operadores de rede em geral antes de realizar a aquisição.&lt;br /&gt;
&lt;br /&gt;
Como trata-se de uma Wiki qualquer pessoa pode contribuir com suas experiências de uso inserindo novas informações como novos modelos de GBICs, equipamentos, versões de firmware/software ou adicionando informações complementares às existentes. Um detalhe importante para se atentar é de que é sabido que alguns GBICs funcionam em determinadas versões de firmware/software e não em outras . Nesse casos é importante verificar os detalhes na coluna Observações.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Aviso&amp;lt;/u&amp;gt;''': Por se tratar de uma página aberta e de construção colaborativa é importante deixar claro que &amp;lt;u&amp;gt;o Brasil Peering Forum NÃO se responsabiliza pelas informações aqui contidas&amp;lt;/u&amp;gt; ou pelos efeitos que o uso delas causem. É recomendado que em caso de dúvida antes de fazer a compra solicitar ao seu fornecedor confirmar por escrito a compatibilidade de um modelo especifico para seu hardware. Também é possível que as informações abaixo possam não sejam mais válidas da forma como apresentadas.&lt;br /&gt;
&lt;br /&gt;
A intenção é que seja apenas mais uma referência e que auxilie o trabalho de operadores de rede baseado-se nas contribuições da comunidade.&lt;br /&gt;
&lt;br /&gt;
Caso houver alguma dúvida que esta página não seja capaz de esclarecer envie um email para a Lista de Discussão do BPF.&lt;br /&gt;
&lt;br /&gt;
=== Como contribuir ===&lt;br /&gt;
Para contribuir é simples: verifique na listagem abaixo se existem modelos de GBICs que você possui não listados para cada switch ou roteador, edite a página e adicione os que você utiliza ou já tentou utilizar e observou algum problema descrevendo-o brevemente na coluna Observações. Por exemplo se não funcionou totalmente ou se a princípio funcionou e após colocado em operação houveram problemas e instabilidades. &lt;br /&gt;
&lt;br /&gt;
Para adicionar uma nova linha utilizando o VisualEditor (editor padrão da Wiki) clique na linha acima ou abaixo de onde se deseja inserir um novo modelo e aparecerá uma seta do lado da tabela. Clique na seta e selecione a opção &amp;quot;Inserir acima&amp;quot; ou &amp;quot;Inserir abaixo&amp;quot; para criar uma nova linha na tabela. Para inserir a imagem na columa Status clique com o botão direito na imagem correspondente na seção Legenda, clique em Copiar e na nova linha a ser inserida clique com o botão direito e clique em Colar. &lt;br /&gt;
&lt;br /&gt;
É também válido complementar uma informação já existente por exemplo adicionando uma versão de software ainda não listada.&lt;br /&gt;
&lt;br /&gt;
O mais importante quando for adicionar um novo GBIC é se atentar aos seguintes detalhes:&lt;br /&gt;
* Verificar se o modelo do Switch ou Roteador é &amp;lt;u&amp;gt;exatamente&amp;lt;/u&amp;gt; o mesmo da seção.&lt;br /&gt;
* Part Number do Vendor / Modelo do GBIC (cuidado para não confundir o Part Number do Vendor com a especificação)&lt;br /&gt;
* Adicione também a Revision do GBIC caso houver.&lt;br /&gt;
&lt;br /&gt;
* Versão do firmware / software do switch ou roteador (é possível que alguns GBICs funcionem em versões específicas então caso a versão que você está utilizando não está listada adicione-a dentro da respectiva coluna).&lt;br /&gt;
* Caso existir alguma condição especial descreva-a de maneira resumida na coluna Observações.&lt;br /&gt;
* Procure manter as GBICs de mesma marca juntas na listagem para facilitar a leitura. Se for necessário insira novas linhas no meio da tabela.&lt;br /&gt;
&amp;lt;u&amp;gt;Obs&amp;lt;/u&amp;gt;: Não é necessário reportar GBICs do mesmo fabricante que o switch ou roteador como compatíveis (ex: Switch Juniper e GBIC Juniper). Apenas nos casos onde houver problemas de compatibilidade.&lt;br /&gt;
&lt;br /&gt;
==== Juniper ====&lt;br /&gt;
&amp;lt;u&amp;gt;Router&amp;lt;/u&amp;gt; - show chassis pic pic-slot 1 fpc-slot 0 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Switch&amp;lt;/u&amp;gt; - show chassis pic pic-slot 0 fpc-slot 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Referências&amp;lt;/u&amp;gt;: [https://www.juniper.net/documentation/en_US/release-independent/junos/topics/concept/pic-mx-series-overview.html MX Series FPC and PIC Overview]&lt;br /&gt;
&lt;br /&gt;
==== Cisco ====&lt;br /&gt;
&lt;br /&gt;
==== Huawei ====&lt;br /&gt;
&amp;lt;u&amp;gt;Router&amp;lt;/u&amp;gt; - display optical-module brief&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Switch&amp;lt;/u&amp;gt; - display transciever verbose&lt;br /&gt;
&lt;br /&gt;
==== Mikrotik ====&lt;br /&gt;
&amp;lt;u&amp;gt;Router&amp;lt;/u&amp;gt; - /interface ethernet monitor sfp1 (Substituir sfp1 pela interface com GBIC conectado. Anotar os seguintes detalhes: sfp-vendor-name (Marca), sfp-vendor-part-number (Modelo) e sfp-vendor-revision (Revision))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Verificar versão do software&amp;lt;/u&amp;gt;: /system upgrade export&lt;br /&gt;
&lt;br /&gt;
==== Datacom ====&lt;br /&gt;
&amp;lt;u&amp;gt;Switch EDD&amp;lt;/u&amp;gt; - show hardware-status transceivers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Switches (DM3000, DM4100, DM4004, DM4008)&amp;lt;/u&amp;gt; - show hardware-status transceivers detail&lt;br /&gt;
&lt;br /&gt;
=== Legenda ===&lt;br /&gt;
[[Arquivo:Sim.png|semmoldura]] - GBIC reportado como funcionando sem problemas.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Arquivo:Atencao.png|semmoldura]] - GBIC reportado como funcionando parcialmente ou com restrições. Verificar Observações. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Arquivo:Não.png|semmoldura]] - GBIC reportado como problemático para o equipamento. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lista de Equipamentos ===&lt;br /&gt;
&lt;br /&gt;
==== Roteadores ====&lt;br /&gt;
&lt;br /&gt;
===== Juniper =====&lt;br /&gt;
&lt;br /&gt;
====== MX 5/10/40/80 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP-SX&lt;br /&gt;
|&lt;br /&gt;
|15.1R7-S1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-XFP-SR&lt;br /&gt;
|&lt;br /&gt;
|15.1R7-S1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== MX 104 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP-SX&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP-B53-20&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP10G-SR&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BNL-J1&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8571D3BCL-HW&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== MX 150 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-53LC20D&lt;br /&gt;
|&lt;br /&gt;
|17.4R2.4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8574D3BCL&lt;br /&gt;
|01&lt;br /&gt;
|17.4L20180504_0805&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8574D3BCL-DL&lt;br /&gt;
|&lt;br /&gt;
|17.4L20180504_0805&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== MX 204 ======&lt;br /&gt;
&lt;br /&gt;
====== MX 480 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BCL-EX&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BNL-J1&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8574D3BCL&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8571D3BCL-HW&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTRX-1411D3&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8512D3BCL-J3&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRESFP10G-B23-40&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|SumitomoElectric&lt;br /&gt;
|SXP3101LX-H3-H3C&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|CISCO-OPNEXT&lt;br /&gt;
|TRF5015FN-CB030&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-ER4&lt;br /&gt;
|&lt;br /&gt;
|16.1R4-S9.2&lt;br /&gt;
|40Km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|16.1R4-S9.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Cisco =====&lt;br /&gt;
&lt;br /&gt;
====== ASR920 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|GLC-BX-D &lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|1000BASE BX10-D&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|GLC-BX-U&lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|1000BASE BX10-U&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-LR&lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|SFP+ 10GBASE-LR&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|GBP-2733192-ERC&lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|SFP+ 10GBASE-ER&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== ASR903 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== ASR9000 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|XFP-10GLR-OC192SR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|Multirate 10GBASE-LR and OC-192/STM-64 SR-1 XFP, SMF&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-ER&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|10GBASE-ER 1550nm SMF 40KM&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|XFP-10GER-192IR+&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|Multirate 10GBASE-ER and OC-192/STM-64 IR-2 XFP, SMF&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-LR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|10GBASE-LR SFP+ Module for SMF&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-ZR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|10GBASE-ZR SFP+, SMF 80km&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== NCS540 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|25Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10/25G-LR-S&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.3.3&lt;br /&gt;
|Cisco SFP28 25G LR-S Pluggable Optics Module&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-LR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.3.3&lt;br /&gt;
|Cisco SFP+ 10G LR Pluggable Optics Module&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-ER&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.3.3&lt;br /&gt;
|Cisco SFP+ 10G ER Pluggable Optics Module&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===== Huawei =====&lt;br /&gt;
&lt;br /&gt;
====== NE20-(S2F/S24) ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ 10G LR&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|CAB-10GSFP-P3M&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM13-R20&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G-LR-OEM&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM12 ER&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|10G-SFP-DWDM-D21&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+85DLC03D&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-LX-SM-0210D&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-WDM-SM-0240A&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP+-BIDI-12-10D&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|TP-LINK&lt;br /&gt;
|TL-SM311LS&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Mikrotik =====&lt;br /&gt;
'''CCR 1009-8G-1S-1S+'''&lt;br /&gt;
&lt;br /&gt;
====== CCR 1036-8G-2S+ ======&lt;br /&gt;
&lt;br /&gt;
====== CCR 1036-12G-4S ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-BIDI-20KM&lt;br /&gt;
|11.0&lt;br /&gt;
|6.42.9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-GE-SX&lt;br /&gt;
|A&lt;br /&gt;
|6.42.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1235L-03-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLSS-1085-SR&lt;br /&gt;
|1.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|300m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|03&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+AO0005&lt;br /&gt;
|A&lt;br /&gt;
|6.43.13&lt;br /&gt;
|5m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1253L-10-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|10km&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Switches ====&lt;br /&gt;
&lt;br /&gt;
===== Juniper =====&lt;br /&gt;
&lt;br /&gt;
====== EX4600 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-53LC20D&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+85DLC03D&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BNL-J1&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Fiinsar&lt;br /&gt;
|FTLX1471D3BCL-EX&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Fiinsar&lt;br /&gt;
|FTLX8571D3BCL-HW&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM12-R40&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|GF-SFP+BXU-40D&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Hisense&lt;br /&gt;
|LTF8502-BC+&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP10G-SR&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRESFP10G-B32-20&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== QFX5100 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-ER4&lt;br /&gt;
|&lt;br /&gt;
|17.4R1.16&lt;br /&gt;
|40Km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|17.4R1.16&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== QFX5110 ======&lt;br /&gt;
&lt;br /&gt;
====== QFX5200 ======&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|100Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP28-LR4&lt;br /&gt;
|&lt;br /&gt;
|15.1X53-D233.1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|15.1X53-D233.1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Cisco =====&lt;br /&gt;
&lt;br /&gt;
====== Nexus 3064 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+31DLC10D&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ BX60U-I&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|EOPTOLINK&lt;br /&gt;
|EOLS-1312-10&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-53LC20D &lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-35LC20D&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|WTD&lt;br /&gt;
|RTXM191-418&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|HTSFP-24-1111F&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|HI-OPTEL&lt;br /&gt;
|HTSFP241111F&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-3524L-R10D&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTRJ1319P1BTL-3C&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Huawei =====&lt;br /&gt;
&lt;br /&gt;
====== S6720-(HI/EI/SI/LI) ======&lt;br /&gt;
A listagem abaixo foi reportada como funcional em diferentes modelos de 6720 como S6720-54C-EI-48S, S6720-30C-EI-24S e S6720S-26Q-EI-24S. Adicione outros modelos de 6720 quando reportar GBICs se for o caso. Caso existir alguma condição problemática em algum modelo específico sinalizar no campo de observações. Quando for o caso criar-se-á uma nova seção apenas para aquele modelo. Por ora leva-se em conta a versão de software como fator principal para a compatibilidade.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Atencao.png|semmoldura]] Foi reportado que GBICs de 40Gb que funcionam em portas de 40Gb não necessariamente funcionarão nas portas de 100Gb dos modelos HI.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Atencao.png|semmoldura]] Para uso de cabos DAC em portas de 40Gb pode ser necessário desabilitar a opção training na porta (ex: ''interface 40GE/0/02 ; training disable'')&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|CAB-10GSFP-P1M&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|CAB-10GSFP-P3M&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|WDM-0210AD&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ BX80D-I&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ SLSSB-3327B&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G32-LD40&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|WDM-0210BD&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM13-R20&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP 10G S+DA0001&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G-33&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G23-CD40&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM12 ER&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221, V200R009C00SPC500,&lt;br /&gt;
V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ 10G LR&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G-LR-OEM  &lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|10G-SFP-DWDM-D21&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|QSFP+ AOC 5M&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1370W3BTL-E8&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BCL-ER&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Mellanox&lt;br /&gt;
|MCP1700-B003E&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+DA0001&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+85DLC03D&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+23LC10D&lt;br /&gt;
|&lt;br /&gt;
|V200R011C10SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+32LC10D&lt;br /&gt;
|&lt;br /&gt;
|V200R011C10SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|DELTA&lt;br /&gt;
|LCP-10G3B4QDRME2&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|SOURCEPHOTONICS&lt;br /&gt;
|SPP10ELRIDFREN&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-LX-SM-0210D&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP+-BIDI-12-10D&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-WDM-SM-0240A&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1GB&lt;br /&gt;
|TP-LINK&lt;br /&gt;
|TL-SM311LS&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|TE Connectivity&lt;br /&gt;
|2163259-1&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|AOI&lt;br /&gt;
|AQOLBCQ4EDMA0776&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Cisco&lt;br /&gt;
|AFBR-79EIPZ-CS1&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Huawei&lt;br /&gt;
|02310MHR&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-37.4&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-38.9&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-35.8&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-38.1&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-39.7&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-36.6&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== S5720-(HI/EI/SI/LI) ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-35LC20D&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-85DLC05D&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-RJ01&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|MENTECHOPTO&lt;br /&gt;
|SGE10-D0C&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|PRECISION&lt;br /&gt;
|PRESFP10G-B23-20&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM13 ER&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|40Km&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Mikrotik =====&lt;br /&gt;
&lt;br /&gt;
====== CRS317-1G-16S+RM ======&lt;br /&gt;
====== CRS317-1G-16S+ ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1235L-03-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLSS-1085-SR&lt;br /&gt;
|1.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|300m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|03&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+AO0005&lt;br /&gt;
|A&lt;br /&gt;
|6.43.13&lt;br /&gt;
|5m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1253L-10-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|10km&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== CRS328-24P-4S+RM ======&lt;br /&gt;
&lt;br /&gt;
====== CRS326-24G-2S+RM ======&lt;br /&gt;
&lt;br /&gt;
====== CRS328-4C-20S-4S+RM ======&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Compatibilidade_de_GBICs_e_Cabos_Twinax&amp;diff=2502</id>
		<title>Compatibilidade de GBICs e Cabos Twinax</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Compatibilidade_de_GBICs_e_Cabos_Twinax&amp;diff=2502"/>
		<updated>2020-06-02T17:56:51Z</updated>

		<summary type="html">&lt;p&gt;Andredias: /* Juniper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introdução ===&lt;br /&gt;
O intuito desta página é reunir informações sobre a compatibilidade de GBICs e cabos Twinax utilizados em Switches e Roteadores mais comuns do mercado e facilitar a avaliação por operadores de rede em geral antes de realizar a aquisição.&lt;br /&gt;
&lt;br /&gt;
Como trata-se de uma Wiki qualquer pessoa pode contribuir com suas experiências de uso inserindo novas informações como novos modelos de GBICs, equipamentos, versões de firmware/software ou adicionando informações complementares às existentes. Um detalhe importante para se atentar é de que é sabido que alguns GBICs funcionam em determinadas versões de firmware/software e não em outras . Nesse casos é importante verificar os detalhes na coluna Observações.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Aviso&amp;lt;/u&amp;gt;''': Por se tratar de uma página aberta e de construção colaborativa é importante deixar claro que &amp;lt;u&amp;gt;o Brasil Peering Forum NÃO se responsabiliza pelas informações aqui contidas&amp;lt;/u&amp;gt; ou pelos efeitos que o uso delas causem. É recomendado que em caso de dúvida antes de fazer a compra solicitar ao seu fornecedor confirmar por escrito a compatibilidade de um modelo especifico para seu hardware. Também é possível que as informações abaixo possam não sejam mais válidas da forma como apresentadas.&lt;br /&gt;
&lt;br /&gt;
A intenção é que seja apenas mais uma referência e que auxilie o trabalho de operadores de rede baseado-se nas contribuições da comunidade.&lt;br /&gt;
&lt;br /&gt;
Caso houver alguma dúvida que esta página não seja capaz de esclarecer envie um email para a Lista de Discussão do BPF.&lt;br /&gt;
&lt;br /&gt;
=== Como contribuir ===&lt;br /&gt;
Para contribuir é simples: verifique na listagem abaixo se existem modelos de GBICs que você possui não listados para cada switch ou roteador, edite a página e adicione os que você utiliza ou já tentou utilizar e observou algum problema descrevendo-o brevemente na coluna Observações. Por exemplo se não funcionou totalmente ou se a princípio funcionou e após colocado em operação houveram problemas e instabilidades. &lt;br /&gt;
&lt;br /&gt;
Para adicionar uma nova linha utilizando o VisualEditor (editor padrão da Wiki) clique na linha acima ou abaixo de onde se deseja inserir um novo modelo e aparecerá uma seta do lado da tabela. Clique na seta e selecione a opção &amp;quot;Inserir acima&amp;quot; ou &amp;quot;Inserir abaixo&amp;quot; para criar uma nova linha na tabela. Para inserir a imagem na columa Status clique com o botão direito na imagem correspondente na seção Legenda, clique em Copiar e na nova linha a ser inserida clique com o botão direito e clique em Colar. &lt;br /&gt;
&lt;br /&gt;
É também válido complementar uma informação já existente por exemplo adicionando uma versão de software ainda não listada.&lt;br /&gt;
&lt;br /&gt;
O mais importante quando for adicionar um novo GBIC é se atentar aos seguintes detalhes:&lt;br /&gt;
* Verificar se o modelo do Switch ou Roteador é &amp;lt;u&amp;gt;exatamente&amp;lt;/u&amp;gt; o mesmo da seção.&lt;br /&gt;
* Part Number do Vendor / Modelo do GBIC (cuidado para não confundir o Part Number do Vendor com a especificação)&lt;br /&gt;
* Adicione também a Revision do GBIC caso houver.&lt;br /&gt;
&lt;br /&gt;
* Versão do firmware / software do switch ou roteador (é possível que alguns GBICs funcionem em versões específicas então caso a versão que você está utilizando não está listada adicione-a dentro da respectiva coluna).&lt;br /&gt;
* Caso existir alguma condição especial descreva-a de maneira resumida na coluna Observações.&lt;br /&gt;
* Procure manter as GBICs de mesma marca juntas na listagem para facilitar a leitura. Se for necessário insira novas linhas no meio da tabela.&lt;br /&gt;
&amp;lt;u&amp;gt;Obs&amp;lt;/u&amp;gt;: Não é necessário reportar GBICs do mesmo fabricante que o switch ou roteador como compatíveis (ex: Switch Juniper e GBIC Juniper). Apenas nos casos onde houver problemas de compatibilidade.&lt;br /&gt;
&lt;br /&gt;
==== Juniper ====&lt;br /&gt;
&amp;lt;u&amp;gt;Router&amp;lt;/u&amp;gt; - show chassis pic pic-slot 1 fpc-slot 0 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Switch&amp;lt;/u&amp;gt; - show chassis pic pic-slot 0 fpc-slot 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Referências&amp;lt;/u&amp;gt;: [https://www.juniper.net/documentation/en_US/release-independent/junos/topics/concept/pic-mx-series-overview.html MX Series FPC and PIC Overview]&lt;br /&gt;
&lt;br /&gt;
==== Cisco ====&lt;br /&gt;
&lt;br /&gt;
==== Huawei ====&lt;br /&gt;
&amp;lt;u&amp;gt;Router&amp;lt;/u&amp;gt; - display optical-module brief&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Switch&amp;lt;/u&amp;gt; - display transciever verbose&lt;br /&gt;
&lt;br /&gt;
==== Mikrotik ====&lt;br /&gt;
&amp;lt;u&amp;gt;Router&amp;lt;/u&amp;gt; - /interface ethernet monitor sfp1 (Substituir sfp1 pela interface com GBIC conectado. Anotar os seguintes detalhes: sfp-vendor-name (Marca), sfp-vendor-part-number (Modelo) e sfp-vendor-revision (Revision))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Verificar versão do software&amp;lt;/u&amp;gt;: /system upgrade export&lt;br /&gt;
&lt;br /&gt;
==== Datacom ====&lt;br /&gt;
&amp;lt;u&amp;gt;Switch EDD&amp;lt;/u&amp;gt; - show hardware-status transcievers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Switches (DM3000, DM4100, DM4004, DM4008)&amp;lt;/u&amp;gt; - show hardware-satus transcievers detail&lt;br /&gt;
&lt;br /&gt;
=== Legenda ===&lt;br /&gt;
[[Arquivo:Sim.png|semmoldura]] - GBIC reportado como funcionando sem problemas.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Arquivo:Atencao.png|semmoldura]] - GBIC reportado como funcionando parcialmente ou com restrições. Verificar Observações. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Arquivo:Não.png|semmoldura]] - GBIC reportado como problemático para o equipamento. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lista de Equipamentos ===&lt;br /&gt;
&lt;br /&gt;
==== Roteadores ====&lt;br /&gt;
&lt;br /&gt;
===== Juniper =====&lt;br /&gt;
&lt;br /&gt;
====== MX 5/10/40/80 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP-SX&lt;br /&gt;
|&lt;br /&gt;
|15.1R7-S1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-XFP-SR&lt;br /&gt;
|&lt;br /&gt;
|15.1R7-S1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== MX 104 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP-SX&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP-B53-20&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP10G-SR&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BNL-J1&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8571D3BCL-HW&lt;br /&gt;
|&lt;br /&gt;
|15.1R7.8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== MX 150 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-53LC20D&lt;br /&gt;
|&lt;br /&gt;
|17.4R2.4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8574D3BCL&lt;br /&gt;
|01&lt;br /&gt;
|17.4L20180504_0805&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8574D3BCL-DL&lt;br /&gt;
|&lt;br /&gt;
|17.4L20180504_0805&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== MX 204 ======&lt;br /&gt;
&lt;br /&gt;
====== MX 480 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BCL-EX&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BNL-J1&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8574D3BCL&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8571D3BCL-HW&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTRX-1411D3&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX8512D3BCL-J3&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRESFP10G-B23-40&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|SumitomoElectric&lt;br /&gt;
|SXP3101LX-H3-H3C&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|CISCO-OPNEXT&lt;br /&gt;
|TRF5015FN-CB030&lt;br /&gt;
|&lt;br /&gt;
|16.1R7.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-ER4&lt;br /&gt;
|&lt;br /&gt;
|16.1R4-S9.2&lt;br /&gt;
|40Km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|16.1R4-S9.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Cisco =====&lt;br /&gt;
&lt;br /&gt;
====== ASR920 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|GLC-BX-D &lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|1000BASE BX10-D&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|GLC-BX-U&lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|1000BASE BX10-U&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-LR&lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|SFP+ 10GBASE-LR&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|GBP-2733192-ERC&lt;br /&gt;
|&lt;br /&gt;
|IOS XE 03.18.01.SP&lt;br /&gt;
|SFP+ 10GBASE-ER&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== ASR903 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== ASR9000 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|XFP-10GLR-OC192SR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|Multirate 10GBASE-LR and OC-192/STM-64 SR-1 XFP, SMF&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-ER&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|10GBASE-ER 1550nm SMF 40KM&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|XFP-10GER-192IR+&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|Multirate 10GBASE-ER and OC-192/STM-64 IR-2 XFP, SMF&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-LR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|10GBASE-LR SFP+ Module for SMF&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-ZR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.2.3&lt;br /&gt;
|10GBASE-ZR SFP+, SMF 80km&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
====== NCS540 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|25Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10/25G-LR-S&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.3.3&lt;br /&gt;
|Cisco SFP28 25G LR-S Pluggable Optics Module&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-LR&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.3.3&lt;br /&gt;
|Cisco SFP+ 10G LR Pluggable Optics Module&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|SFP-10G-ER&lt;br /&gt;
|&lt;br /&gt;
|IOS XR 6.3.3&lt;br /&gt;
|Cisco SFP+ 10G ER Pluggable Optics Module&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
===== Huawei =====&lt;br /&gt;
&lt;br /&gt;
====== NE20-(S2F/S24) ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ 10G LR&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|CAB-10GSFP-P3M&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM13-R20&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G-LR-OEM&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM12 ER&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|10G-SFP-DWDM-D21&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+85DLC03D&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-LX-SM-0210D&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-WDM-SM-0240A&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP+-BIDI-12-10D&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|TP-LINK&lt;br /&gt;
|TL-SM311LS&lt;br /&gt;
|&lt;br /&gt;
|V800R008C10SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Mikrotik =====&lt;br /&gt;
'''CCR 1009-8G-1S-1S+'''&lt;br /&gt;
&lt;br /&gt;
====== CCR 1036-8G-2S+ ======&lt;br /&gt;
&lt;br /&gt;
====== CCR 1036-12G-4S ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-BIDI-20KM&lt;br /&gt;
|11.0&lt;br /&gt;
|6.42.9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-GE-SX&lt;br /&gt;
|A&lt;br /&gt;
|6.42.7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1235L-03-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLSS-1085-SR&lt;br /&gt;
|1.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|300m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|03&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+AO0005&lt;br /&gt;
|A&lt;br /&gt;
|6.43.13&lt;br /&gt;
|5m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1253L-10-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|10km&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Switches ====&lt;br /&gt;
&lt;br /&gt;
===== Juniper =====&lt;br /&gt;
&lt;br /&gt;
====== EX4600 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-53LC20D&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+85DLC03D&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BNL-J1&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Fiinsar&lt;br /&gt;
|FTLX1471D3BCL-EX&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Fiinsar&lt;br /&gt;
|FTLX8571D3BCL-HW&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM12-R40&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|GF-SFP+BXU-40D&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Hisense&lt;br /&gt;
|LTF8502-BC+&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-SFP10G-SR&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRESFP10G-B32-20&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|14.1X53-D35.3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== QFX5100 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-ER4&lt;br /&gt;
|&lt;br /&gt;
|17.4R1.16&lt;br /&gt;
|40Km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|17.4R1.16&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== QFX5110 ======&lt;br /&gt;
&lt;br /&gt;
====== QFX5200 ======&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|100Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP28-LR4&lt;br /&gt;
|&lt;br /&gt;
|15.1X53-D233.1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Precision&lt;br /&gt;
|PRE-QSFP-eSR4&lt;br /&gt;
|&lt;br /&gt;
|15.1X53-D233.1&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Cisco =====&lt;br /&gt;
&lt;br /&gt;
====== Nexus 3064 ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+31DLC10D&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ BX60U-I&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|EOPTOLINK&lt;br /&gt;
|EOLS-1312-10&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-53LC20D &lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-35LC20D&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|WTD&lt;br /&gt;
|RTXM191-418&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|HTSFP-24-1111F&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|HI-OPTEL&lt;br /&gt;
|HTSFP241111F&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-3524L-R10D&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTRJ1319P1BTL-3C&lt;br /&gt;
|&lt;br /&gt;
|7.0(3)I5(2)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Huawei =====&lt;br /&gt;
&lt;br /&gt;
====== S6720-(HI/EI/SI/LI) ======&lt;br /&gt;
A listagem abaixo foi reportada como funcional em diferentes modelos de 6720 como S6720-54C-EI-48S, S6720-30C-EI-24S e S6720S-26Q-EI-24S. Adicione outros modelos de 6720 quando reportar GBICs se for o caso. Caso existir alguma condição problemática em algum modelo específico sinalizar no campo de observações. Quando for o caso criar-se-á uma nova seção apenas para aquele modelo. Por ora leva-se em conta a versão de software como fator principal para a compatibilidade.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Atencao.png|semmoldura]] Foi reportado que GBICs de 40Gb que funcionam em portas de 40Gb não necessariamente funcionarão nas portas de 100Gb dos modelos HI.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Atencao.png|semmoldura]] Para uso de cabos DAC em portas de 40Gb pode ser necessário desabilitar a opção training na porta (ex: ''interface 40GE/0/02 ; training disable'')&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|CAB-10GSFP-P1M&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|CAB-10GSFP-P3M&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|WDM-0210AD&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ BX80D-I&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ SLSSB-3327B&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G32-LD40&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|WDM-0210BD&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM13-R20&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP 10G S+DA0001&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G-33&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G23-CD40&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM12 ER&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221, V200R009C00SPC500,&lt;br /&gt;
V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ 10G LR&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP-10G-LR-OEM  &lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|10G-SFP-DWDM-D21&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|QSFP+ AOC 5M&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1370W3BTL-E8&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Finisar&lt;br /&gt;
|FTLX1471D3BCL-ER&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Mellanox&lt;br /&gt;
|MCP1700-B003E&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+DA0001&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+DA0003&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+85DLC03D&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+23LC10D&lt;br /&gt;
|&lt;br /&gt;
|V200R011C10SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+32LC10D&lt;br /&gt;
|&lt;br /&gt;
|V200R011C10SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|DELTA&lt;br /&gt;
|LCP-10G3B4QDRME2&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|SOURCEPHOTONICS&lt;br /&gt;
|SPP10ELRIDFREN&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600B221&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-LX-SM-0210D&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP+-BIDI-12-10D&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|OPTONE&lt;br /&gt;
|SFP-WDM-SM-0240A&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1GB&lt;br /&gt;
|TP-LINK&lt;br /&gt;
|TL-SM311LS&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|TE Connectivity&lt;br /&gt;
|2163259-1&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|AOI&lt;br /&gt;
|AQOLBCQ4EDMA0776&lt;br /&gt;
|&lt;br /&gt;
|V200R009C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Cisco&lt;br /&gt;
|AFBR-79EIPZ-CS1&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|40Gb&lt;br /&gt;
|Huawei&lt;br /&gt;
|02310MHR&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-37.4&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-38.9&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-35.8&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-38.1&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-39.7&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|DWDM-SFP10G-36.6&lt;br /&gt;
|&lt;br /&gt;
|V200R012C00SPC500, V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== S5720-(HI/EI/SI/LI) ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-35LC20D&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-85DLC05D&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S-RJ01&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|MENTECHOPTO&lt;br /&gt;
|SGE10-D0C&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|PRECISION&lt;br /&gt;
|PRESFP10G-B23-20&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|OEM&lt;br /&gt;
|SFP+ WDM13 ER&lt;br /&gt;
|&lt;br /&gt;
|V200R010C00SPC600&lt;br /&gt;
|40Km&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Mikrotik =====&lt;br /&gt;
&lt;br /&gt;
====== CRS317-1G-16S+RM ======&lt;br /&gt;
====== CRS317-1G-16S+ ======&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Status&lt;br /&gt;
!Velocidade&lt;br /&gt;
!Marca&lt;br /&gt;
!Modelo/Part-Number&lt;br /&gt;
!Revision&lt;br /&gt;
!Versões de Software&lt;br /&gt;
!Observações&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1235L-03-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3km&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLSS-1085-SR&lt;br /&gt;
|1.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|300m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|SFP 10G S+DA0003&lt;br /&gt;
|03&lt;br /&gt;
|6.43.13&lt;br /&gt;
|3m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|10Gb&lt;br /&gt;
|Mikrotik&lt;br /&gt;
|S+AO0005&lt;br /&gt;
|A&lt;br /&gt;
|6.43.13&lt;br /&gt;
|5m&lt;br /&gt;
|-&lt;br /&gt;
|[[Arquivo:Sim.png|semmoldura]]&lt;br /&gt;
|1Gb&lt;br /&gt;
|Overtek&lt;br /&gt;
|SLB-1253L-10-D&lt;br /&gt;
|11.0&lt;br /&gt;
|6.43.13&lt;br /&gt;
|10km&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== CRS328-24P-4S+RM ======&lt;br /&gt;
&lt;br /&gt;
====== CRS326-24G-2S+RM ======&lt;br /&gt;
&lt;br /&gt;
====== CRS328-4C-20S-4S+RM ======&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=1956</id>
		<title>Usuário:Andredias</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Andredias&amp;diff=1956"/>
		<updated>2020-01-15T19:10:01Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Resumo==&lt;br /&gt;
André Dias é um profissional com mais de 6 anos na área de redes de computadores, possui vasta experiencia em protocolos de roteamento intra e inter-AS, MPLS, servidores e monitoramento.&lt;br /&gt;
&lt;br /&gt;
É fundador e diretor da [https://hexanetworks.com.br/ Hexa Networks], empresa de consultoria de redes.&lt;br /&gt;
&lt;br /&gt;
Certificado MTCNA, MTCRE , MTCINE e MTCIPv6E, é um consultor oficial da MikroTik, porém trabalha também com diversos fabricantes como Juniper, Huawei, Cisco, Extreme e etc.&lt;br /&gt;
&lt;br /&gt;
Conhecido também pelos seus cases de monitoramento de Zabbix com Grafana, tendo diversos casos de sucesso em diversas fabricantes pelo Brasil.&lt;br /&gt;
&lt;br /&gt;
==Artigos Escritos==&lt;br /&gt;
[[Arquivo:Andre Dias.jpg|miniaturadaimagem]]&lt;br /&gt;
[[Como Ter Seu Proprio Looking Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Como Monitorar 95th percentile|Como Monitorar 95 percentil]]&lt;br /&gt;
==Contatos==&lt;br /&gt;
'''LinkedIn:''' https://www.linkedin.com/in/andrelrdias/&lt;br /&gt;
&lt;br /&gt;
'''E-mail profissional:''' andredias@hexanetworks.com.br&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=1948</id>
		<title>Como Monitorar 95th percentile</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=1948"/>
		<updated>2020-01-10T15:31:27Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introdução ===&lt;br /&gt;
Link burstable é grandemente falado e procurado por sua flexibilidade e facilidade. Fernando Frediani realizou um [https://www.youtube.com/watch?v=WjSps5huDGU&amp;amp;t=157s painel] na GTER explicando sobre seus conceitos e utilidades.&lt;br /&gt;
&lt;br /&gt;
Uma dificuldade que impede de alguns upstreams a ofertar esse serviço é o monitoramento de tal serviço, justamente por ser complexo determinar quanto o cliente deverá pagar por aquela fatura por se tratar de um valor variável, e não mais um valor fixo.&lt;br /&gt;
&lt;br /&gt;
Leve em consideração que o provedor XPTO realizou a contratação de um link burstable com a operadora Z com commit de 500M e burst de 1G, sendo assim, o valor inicial que ele pagará será referente a 500M.&lt;br /&gt;
&lt;br /&gt;
Porém como estamos nos referindo a 95 percentile, poderá acontecer de esse cliente ultrapassar os 500M de trafego durante mais do que 36 horas, passando assim a ter que pagar por uma capacidade superior utilizada além do mínimo contratado.&lt;br /&gt;
&lt;br /&gt;
Nesse caso em questão, o upstream devera excluir 5% dos picos de trafego que esse cliente utilizou, e cobrar pelo valor subsequente.&lt;br /&gt;
[[Arquivo:Zabbix logo.png|miniaturadaimagem|Zabbix]]&lt;br /&gt;
&lt;br /&gt;
=== Monitoramento Nativo ===&lt;br /&gt;
Alguns sistemas de monitoramento possuem formas simples de fazer isso, um excelente exemplo é o próprio Zabbix, que é o que utilizaremos para demonstrar aqui.&lt;br /&gt;
&lt;br /&gt;
A primeira forma será através de uma forma nativa de monitoramento por parte do Zabbix através do monitoramento via SNMP que já é feito nas interfaces do seu equipamento. Para criar o gráfico relacionado ao 95 percentile, siga os seguintes passos:&lt;br /&gt;
[[Arquivo:Criaçao Grafico 95percentil.png|miniaturadaimagem|Criação do Gráfico no Host]]&lt;br /&gt;
# Entre nos Hosts do Zabbix;&lt;br /&gt;
# Entre nos gráficos do seu host;&lt;br /&gt;
# Crie um novo gráfico;&lt;br /&gt;
# Existem 2 itens chamados de &amp;quot;Item Percentile (left)&amp;quot; e &amp;quot;Item Percentile (right)&amp;quot;, habilite ambos e ao lado coloque 95;&lt;br /&gt;
# Adicione os itens relacionados ao trafego da interface que deseja monitorar (trafego de inbound e de outbound);&lt;br /&gt;
# Para checar se funcionou, entre no menu &amp;quot;Monitoring&amp;quot;, &amp;quot;Graphs&amp;quot;, selecione o grupo que seu host está incluso, selecione seu host, e o gráfico que voce criou;&lt;br /&gt;
# Manipule o Time-Range do gráfico de forma que ele mostre o trafego desde o primeiro dia do mês, até o ultimo;&lt;br /&gt;
# Uma linha aparecerá no gráfico, e uma estatística com um triangulo na frente escrito &amp;quot;95percentile&amp;quot;;&lt;br /&gt;
# O valor seguinte, é o valor que buscamos.&lt;br /&gt;
[[Arquivo:Ready-graph-95percentil.png|miniaturadaimagem|Gráfico pronto de um link 95 percentile.]]&lt;br /&gt;
&lt;br /&gt;
Caso prefira, pode adicionar essa configuração nos gráficos que podem ser criados automaticamente pelo Low Level Discovery do seu template.&lt;br /&gt;
&lt;br /&gt;
=== Relatórios Usando ExternalScripts ===&lt;br /&gt;
Existem casos onde o o transito em questão possui a necessidade de gerar relatórios mais complexos, para tal eu desenvolvi um script para essa finalidade.Esse script faz justamente o que o gráfico realiza, porém de forma que mostre um relatório em texto.&lt;br /&gt;
&lt;br /&gt;
Para utilizarmos esse script, precisaremos inicialmente acessar seu Zabbix via SSH, e após isso  usar o seguinte comando para acessar o diretório onde ficam os scripts para monitoramento externo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /usr/lib/zabbix/externalscripts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos realizar o download das dependências do script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install wget git -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, realize o clone do script que está no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/andrediashexa/95percentil.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv 95percentil/* .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro do script é necessário colocar o usuário e senha do seu database, para isso utilizaremos o nano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edite as primeiras linhas de acordo com suas informações, de forma que sejam coerentes com o acesso de seu database. Apenas dessa forma o script conseguirá buscar as informações que precisaremos para gerar os relatórios.&lt;br /&gt;
&lt;br /&gt;
De permissões ao arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod a+x 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Determine que o dono do arquivo é o usuário zabbix:[[Arquivo:Item Host 95percentil.png|miniaturadaimagem]]&amp;lt;code&amp;gt;chown -R zabbix 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos criar um item no host que desenha monitorar, mandando utilizar o script para gerar relatório de um determinado ItemID.&lt;br /&gt;
&lt;br /&gt;
Todo item de monitoramento no Zabbix possui uma identificação numérica chamada de ItemID, para pegar o ItemID é bastante simples.&lt;br /&gt;
&lt;br /&gt;
Acesse a interface web de seu Zabbix, e entre no item utilizado para monitorar o trafego de uma determinada interface de um host.&lt;br /&gt;
&lt;br /&gt;
Na URL vai reparar que estará algo parecido com isso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://192.0.2.0/24/zabbix/items.php?form=update&amp;amp;hostid=10260&amp;amp;itemid=29583&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Guarde o numero do ItemID que mostra na sua URL, utilizaremos ele.&lt;br /&gt;
&lt;br /&gt;
Crie um novo item no seu host, utilizando a seguinte configuração:&lt;br /&gt;
&lt;br /&gt;
Substitua o Te0/0/1 pela interface que vai monitorar&lt;br /&gt;
&lt;br /&gt;
'''Name: 95% Te0/0/1'''&lt;br /&gt;
&lt;br /&gt;
'''Type: Monitoramento externo'''&lt;br /&gt;
&lt;br /&gt;
Substitua o ITEMID pelo ID que guardou la atras.&lt;br /&gt;
&lt;br /&gt;
'''Key: 95percentile.sh[report,ITEMID]'''&lt;br /&gt;
&lt;br /&gt;
'''Type of information: TEXT'''&lt;br /&gt;
&lt;br /&gt;
'''Update Interval: 1d'''[[Arquivo:Latest Data.png|miniaturadaimagem]]'''New Application: 95%'''&lt;br /&gt;
&lt;br /&gt;
Clique em update, entre no item que acabou de criar e clique em Check Now.&lt;br /&gt;
&lt;br /&gt;
Ao clicar em Check Now, forçara o monitoramento acontecer naquele instante.&lt;br /&gt;
&lt;br /&gt;
Após isso, vá em Monitoring, Latest Data e procure pelo item que acabou de criar, clique em history e deverá mostrar o relatório de todas as vezes que aquela interface foi monitorada por aquele ItemID, excluindo 5% dos maiores resultados.&lt;br /&gt;
&lt;br /&gt;
O monitoramento foi configurado para acontecer todo dia. Nada impede de manipular para ele acontecer todo dia 1 de cada mês.&lt;br /&gt;
[[Arquivo:DadosRecentes.png|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
=== Outras Funções ===&lt;br /&gt;
Além da função de relatório, o script também possui outras 2 funções:&lt;br /&gt;
&lt;br /&gt;
==== 95current ====&lt;br /&gt;
Realiza a verificação do monitoramento do mês atual, exclui os 5% maiores resultados e informa o maior resultado subsequente.&lt;br /&gt;
&lt;br /&gt;
==== fullreport ====&lt;br /&gt;
Traz o relatório completo, sem excluir os 5% maiores resultados.&lt;br /&gt;
&lt;br /&gt;
=== Dicas e Cuidados ===&lt;br /&gt;
&lt;br /&gt;
==== Timer dos itens ====&lt;br /&gt;
Dependendo da função que utilizará do script, ele coletará todos valores monitorados do ultimo mês, o que poderá ser extremamente oneroso para o DB, e certamente fará o Zabbix dar timeout no script.&lt;br /&gt;
&lt;br /&gt;
Supondo que monitore o trafego de uma determinada interface 1x por minuto, isso causará 108mil registros para o MySQL buscar na tabela.&lt;br /&gt;
&lt;br /&gt;
Recomendo que aumente o tempo de coleta para 5min, o que diminuirá para 21600 itens, e diminuirá a possibilidade de um timeout.&lt;br /&gt;
&lt;br /&gt;
==== LowLevel Discovery ====&lt;br /&gt;
Não recomendo que tente &amp;quot;combar&amp;quot; o script com LLD, pelo mesmo motivo que foi citado acima.&lt;br /&gt;
&lt;br /&gt;
=== Como Colaborar Com o Script? ===&lt;br /&gt;
'''O script em questão foi desenvolvido por mim, e por se tratar de um script OpenSource, está aberto no GitHub para quem quiser colaborar no desenvolvimento dele.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[https://github.com/andrediashexa/95percentil.git https://github.com/andrediashexa/95percentil]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Autor: [[Usuário:Andredias|André Dias]]'''&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=1886</id>
		<title>Como Monitorar 95th percentile</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Como_Monitorar_95th_percentile&amp;diff=1886"/>
		<updated>2020-01-06T23:49:36Z</updated>

		<summary type="html">&lt;p&gt;Andredias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introdução ===&lt;br /&gt;
Link burstable é grandemente falado e procurado por sua flexibilidade e facilidade. Fernando Frediani realizou um [https://www.youtube.com/watch?v=WjSps5huDGU&amp;amp;t=157s painel] na GTER explicando sobre seus conceitos e utilidades.&lt;br /&gt;
&lt;br /&gt;
Uma dificuldade que impede de alguns upstreams a ofertar esse serviço é o monitoramento de tal serviço, justamente por ser complexo determinar quanto o cliente deverá pagar por aquela fatura por se tratar de um valor variável, e não mais um valor fixo.&lt;br /&gt;
&lt;br /&gt;
Leve em consideração que o provedor XPTO realizou a contratação de um link burstable com a operadora Z com commit de 500M e burst de 1G, sendo assim, o valor inicial que ele pagará será referente a 500M.&lt;br /&gt;
&lt;br /&gt;
Porém como estamos nos referindo a 95 Percentil, poderá acontecer de esse cliente ultrapassar os 500M de trafego durante mais do que 36 horas, passando assim a ter que pagar por uma capacidade superior utilizada além do mínimo contratado.&lt;br /&gt;
&lt;br /&gt;
Nesse caso em questão, o upstream devera excluir 5% dos picos de trafego que esse cliente utilizou, e cobrar pelo valor subsequente.&lt;br /&gt;
[[Arquivo:Zabbix logo.png|miniaturadaimagem|Zabbix]]&lt;br /&gt;
&lt;br /&gt;
=== Monitoramento Nativo ===&lt;br /&gt;
Alguns sistemas de monitoramento possuem formas simples de fazer isso, um excelente exemplo é o próprio Zabbix, que é o que utilizaremos para demonstrar aqui.&lt;br /&gt;
&lt;br /&gt;
A primeira forma será através de uma forma nativa de monitoramento por parte do Zabbix através do monitoramento via SNMP que já é feito nas interfaces do seu equipamento. Para criar o gráfico relacionado ao 95percentil, siga os seguintes passos:&lt;br /&gt;
[[Arquivo:Criaçao Grafico 95percentil.png|miniaturadaimagem|Criação do Gráfico no Host]]&lt;br /&gt;
# Entre nos Hosts do Zabbix;&lt;br /&gt;
# Entre nos gráficos do seu host;&lt;br /&gt;
# Crie um novo gráfico;&lt;br /&gt;
# Existem 2 itens chamados de &amp;quot;Item Percentile (left)&amp;quot; e &amp;quot;Item Percentile (right)&amp;quot;, habilite ambos e ao lado coloque 95;&lt;br /&gt;
# Adicione os itens relacionados ao trafego da interface que deseja monitorar (trafego de inbound e de outbound);&lt;br /&gt;
# Para checar se funcionou, entre no menu &amp;quot;Monitoring&amp;quot;, &amp;quot;Graphs&amp;quot;, selecione o grupo que seu host está incluso, selecione seu host, e o gráfico que voce criou;&lt;br /&gt;
# Manipule o Time-Range do gráfico de forma que ele mostre o trafego desde o primeiro dia do mês, até o ultimo;&lt;br /&gt;
# Uma linha aparecerá no gráfico, e uma estatística com um triangulo na frente escrito &amp;quot;95percentile&amp;quot;;&lt;br /&gt;
# O valor seguinte, é o valor que buscamos.&lt;br /&gt;
[[Arquivo:Ready-graph-95percentil.png|miniaturadaimagem|Gráfico pronto de um link 95 percentil.]]&lt;br /&gt;
&lt;br /&gt;
Caso prefira, pode adicionar essa configuração nos gráficos que podem ser criados automaticamente pelo Low Level Discovery do seu template.&lt;br /&gt;
&lt;br /&gt;
=== Relatórios Usando ExternalScripts ===&lt;br /&gt;
Existem casos onde o o transito em questão possui a necessidade de gerar relatórios mais complexos, para tal eu desenvolvi um script para essa finalidade.Esse script faz justamente o que o gráfico realiza, porém de forma que mostre um relatório em texto.&lt;br /&gt;
&lt;br /&gt;
Para utilizarmos esse script, precisaremos inicialmente acessar seu Zabbix via SSH, e após isso  usar o seguinte comando para acessar o diretório onde ficam os scripts para monitoramento externo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /usr/lib/zabbix/externalscripts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vamos realizar o download das dependências do script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install wget git -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após isso, realize o clone do script que está no GitHub:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone https://github.com/andrediashexa/95percentil.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv 95percentil/* .&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro do script é necessário colocar o usuário e senha do seu database, para isso utilizaremos o nano:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edite as primeiras linhas de acordo com suas informações, de forma que sejam coerentes com o acesso de seu database. Apenas dessa forma o script conseguirá buscar as informações que precisaremos para gerar os relatórios.&lt;br /&gt;
&lt;br /&gt;
De permissões ao arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod a+x 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Determine que o dono do arquivo é o usuário zabbix:[[Arquivo:Item Host 95percentil.png|miniaturadaimagem]]&amp;lt;code&amp;gt;chown -R zabbix 95percentile.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agora precisamos criar um item no host que desenha monitorar, mandando utilizar o script para gerar relatório de um determinado ItemID.&lt;br /&gt;
&lt;br /&gt;
Todo item de monitoramento no Zabbix possui uma identificação numérica chamada de ItemID, para pegar o ItemID é bastante simples.&lt;br /&gt;
&lt;br /&gt;
Acesse a interface web de seu Zabbix, e entre no item utilizado para monitorar o trafego de uma determinada interface de um host.&lt;br /&gt;
&lt;br /&gt;
Na URL vai reparar que estará algo parecido com isso:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://192.0.2.0/24/zabbix/items.php?form=update&amp;amp;hostid=10260&amp;amp;itemid=29583&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Guarde o numero do ItemID que mostra na sua URL, utilizaremos ele.&lt;br /&gt;
&lt;br /&gt;
Crie um novo item no seu host, utilizando a seguinte configuração:&lt;br /&gt;
&lt;br /&gt;
Substitua o Te0/0/1 pela interface que vai monitorar&lt;br /&gt;
&lt;br /&gt;
'''Name: 95% Te0/0/1'''&lt;br /&gt;
&lt;br /&gt;
'''Type: Monitoramento externo'''&lt;br /&gt;
&lt;br /&gt;
Substitua o ITEMID pelo ID que guardou la atras.&lt;br /&gt;
&lt;br /&gt;
'''Key: 95percentile.sh[report,ITEMID]'''&lt;br /&gt;
&lt;br /&gt;
'''Type of information: TEXT'''&lt;br /&gt;
&lt;br /&gt;
'''Update Interval: 1d'''[[Arquivo:Latest Data.png|miniaturadaimagem]]'''New Application: 95%'''&lt;br /&gt;
&lt;br /&gt;
Clique em update, entre no item que acabou de criar e clique em Check Now.&lt;br /&gt;
&lt;br /&gt;
Ao clicar em Check Now, forçara o monitoramento acontecer naquele instante.&lt;br /&gt;
&lt;br /&gt;
Após isso, vá em Monitoring, Latest Data e procure pelo item que acabou de criar, clique em history e deverá mostrar o relatório de todas as vezes que aquela interface foi monitorada por aquele ItemID, excluindo 5% dos maiores resultados.&lt;br /&gt;
&lt;br /&gt;
O monitoramento foi configurado para acontecer todo dia. Nada impede de manipular para ele acontecer todo dia 1 de cada mês.&lt;br /&gt;
[[Arquivo:DadosRecentes.png|miniaturadaimagem]]&lt;br /&gt;
&lt;br /&gt;
=== '''Outras Funções''' ===&lt;br /&gt;
Além da função de relatório, o script também possui outras 2 funções:&lt;br /&gt;
&lt;br /&gt;
==== 95current ====&lt;br /&gt;
Realiza a verificação do monitoramento do mês atual, exclui os 5% maiores resultados e informa o maior resultado subsequente.&lt;br /&gt;
&lt;br /&gt;
==== fullreport ====&lt;br /&gt;
Traz o relatório completo, sem excluir os 5% maiores resultados.&lt;br /&gt;
&lt;br /&gt;
=== Dicas e Cuidados ===&lt;br /&gt;
&lt;br /&gt;
==== Timer dos itens ====&lt;br /&gt;
Dependendo da função que utilizará do script, ele coletará todos valores monitorados do ultimo mês, o que poderá ser extremamente oneroso para o DB, e certamente fará o Zabbix dar timeout no script.&lt;br /&gt;
&lt;br /&gt;
Supondo que monitore o trafego de uma determinada interface 1x por minuto, isso causará 108mil registros para o MySQL buscar na tabela.&lt;br /&gt;
&lt;br /&gt;
Recomendo que aumente o tempo de coleta para 5min, o que diminuirá para 21600 itens, e diminuirá a possibilidade de um timeout.&lt;br /&gt;
&lt;br /&gt;
==== LowLevel Discovery ====&lt;br /&gt;
Não recomendo que tente &amp;quot;combar&amp;quot; o script com LLD, pelo mesmo motivo que foi citado acima.&lt;br /&gt;
&lt;br /&gt;
=== Como Colaborar Com o Script? ===&lt;br /&gt;
'''O script em questão foi desenvolvido por mim, e por se tratar de um script OpenSource, está aberto no GitHub para quem quiser colaborar no desenvolvimento dele.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[https://github.com/andrediashexa/95percentil.git https://github.com/andrediashexa/95percentil]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Autor: [[Usuário:Andredias|André Dias]]'''&lt;br /&gt;
[[Categoria:Infraestrutura]]&lt;/div&gt;</summary>
		<author><name>Andredias</name></author>
	</entry>
</feed>