<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos routing - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/routing/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/routing</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Mon, 21 Feb 2022 13:38:05 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos routing - Remontti</title>
	<link>https://blog.remontti.com.br/tag/routing</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Instalação do FRRouting (FRR) &#8211; Roteamento dinâmico no seu linux +Bônus iBGP</title>
		<link>https://blog.remontti.com.br/4771</link>
					<comments>https://blog.remontti.com.br/4771#respond</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sun, 20 Sep 2020 18:20:40 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[babel]]></category>
		<category><![CDATA[bgp]]></category>
		<category><![CDATA[frr]]></category>
		<category><![CDATA[frrouting]]></category>
		<category><![CDATA[ipv4]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[ospf]]></category>
		<category><![CDATA[ospf6]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[routing]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4771</guid>

					<description><![CDATA[<p>FRRouting (FRR) é um conjunto de protocolos de roteamento IP para plataformas Linux e Unix que inclui daemons de protocolo para BGP, IS-IS, LDP, OSPF, PIM e RIP. A integração perfeita do FRR com&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4771">Instalação do FRRouting (FRR) &#8211; Roteamento dinâmico no seu linux +Bônus iBGP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="http://frrouting.org/" target="_blank" rel="noopener noreferrer">FRRouting</a> (FRR) é um conjunto de protocolos de roteamento IP para plataformas Linux e Unix que inclui daemons de protocolo para BGP, IS-IS, LDP, OSPF, PIM e RIP.</p>
<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/frr-remontti.png" alt="" width="700" height="274" class="alignnone size-full wp-image-5085" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/frr-remontti.png 700w, https://blog.remontti.com.br/wp-content/uploads/2020/09/frr-remontti-300x117.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>A integração perfeita do FRR com as pilhas de rede IP Linux/Unix nativas o torna aplicável a uma ampla variedade de casos de uso.</p>
<p>FRR tem suas raízes no projeto Quagga (Fork do Quagga). Na verdade, ele foi iniciado por muitos desenvolvedores de Quagga de longa data que combinaram seus esforços para melhorar a base bem estabelecida do Quagga para criar a melhor pilha de protocolo de roteamento disponível.</p>
<p>Uma ótima apresentação foi feita pelo <a href="https://www.linkedin.com/in/jrcorazza/" target="_blank" rel="noopener noreferrer">Junior Corazza</a>. no GTER 46.<br />
<strong><a href="https://www.youtube.com/watch?v=4-77r2PGKB4" target="_blank" rel="noopener noreferrer">BSDRP &#8211; Uma opção de softrouter com FRR</a></strong><br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/4-77r2PGKB4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="allowfullscreen"></iframe><br />
Apresentação: <a href="ftp://ftp.registro.br/pub/gter/gter46/11-BSDRP.pdf" target="_blank" rel="noopener noreferrer">ftp://ftp.registro.br/pub/gter/gter46/11-BSDRP.pdf</a></p>
<p><strong>Requesitos</strong>:<br />
<a href="https://blog.remontti.com.br/2966" target="_blank" rel="noopener noreferrer">Debian 10 Stretch – Instalação Limpa</a><br />
<a href="https://blog.remontti.com.br/5792" target="_blank" rel="noopener noreferrer">Debian 11 Bullseye – Instalação Limpa</a></p>
<p>Antes de começar não esqueça de virar root da forma correta e atualizar os pacotes, e instalar alguns pacotes que serão necessários.</p>
<pre class="remontti-code"># su -
# apt update
# apt upgrade
# apt install curl apt-transport-https gnupg2 lsb-release tree net-tools</pre>
<h4>Instalação do Free Range Routing</h4>
<p>Pacotes presente do FRR no repositório do Debian 10 estão na versão 6.x.x, e Debian 11 na 7.5.x vou ir além e usar o repositório mais atualizado do FRR disponíveis em <a href="https://deb.frrouting.org" target="_blank" rel="noopener noreferrer">https://deb.frrouting.org</a>, mas fica a seu critério se desejar usar o repositório &#8220;default&#8221;.</p>
<p>Para usar pacotes do <a href="https://deb.frrouting.org/" rel="noopener" target="_blank">repositório FFR</a> faça:</p>
<pre class="remontti-code"># curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -</pre>
<p>Iremos usar a versão estável oficial mais recente &#8220;<strong>frr-stable</strong>&#8221; na variável &#8220;FRRVER&#8221;, mas é possíveis para também: <strong>frr-6 frr-7 frr-8 frr-stable</strong>.</p>
<pre class="remontti-code"># FRRVER=&quot;frr-stable&quot;
# echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | tee -a /etc/apt/sources.list.d/frr.list
# apt update</pre>
<p>Podemos entrar agora em nosso respositório varios pacores FRR:</p>
<pre class="remontti-code"># apt search frr</pre>
<p><strong>frr</strong> &#8211; FRRouting suite<br />
<strong>frr-doc</strong> &#8211; Manual<br />
<strong>frr-rpki-rtrlib</strong> &#8211; Suporte BGP RPKI<br />
<strong>frr-rpki-rtrlib-dbgsym</strong> &#8211; Debug do pacote frr-rpki-rtrlib<br />
<strong>frr-snmp </strong>&#8211; Suporte SNMP<br />
<strong>frr-snmp-dbgsym</strong> &#8211; Debug do pacote frr-snmp<br />
<strong>frr-pythontools</strong> &#8211; Python tools</p>
<p>Instalarei alguns mas fique a seu critério/necessidade.</p>
<pre class="remontti-code"># apt install frr frr-doc frr-pythontools frr-rpki-rtrlib frr-snmp</pre>
<p>Após instalação o diretorio /etc/ffr/ será criado juntamente com seus arquivos de configuração. Arquitetura do diretório:</p>
<pre class="remontti-code"># tree /etc/frr/</pre>
<pre class="remontti-code-plain">/etc/frr/
├── daemons
├── frr.conf
├── support_bundle_commands.conf
└── vtysh.conf</pre>
<p>Como de costume vamos fazer um backup dos arquivos originais caso cometermos alguma &#8220;cagada&#8221; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="remontti-code"># mkdir /etc/frr/backups
# cp /etc/frr/daemons /etc/frr/backups/
# cp /etc/frr/frr.conf /etc/frr/backups/
# cp /etc/frr/vtysh.conf /etc/frr/backups/
# cp /etc/frr/support_bundle_commands.conf /etc/frr/backups/</pre>
<p>Antes de mais nada vamos entender um pouco como a aplicação funciona.</p>
<p>No FRR o roteamento é diferente de um roteamento tradicional, ele tem um conjunto de daemons que trabalham juntos para construir a tabela de roteamento.</p>
<p>Cada protocolo principal é implementado em seu próprio daemon, e esses daemons se comunicam com um daemon intermediário (zebra), que é responsável por coordenar as decisões de roteamento.</p>
<p>Esta arquitetura permite alta resiliência, uma vez que um erro, travamento ou exploração em um daemon de protocolo geralmente não afetará os outros. Também é flexível e extensível, uma vez que a modularidade torna mais fácil implementar novos protocolos e vinculá-los ao conjunto. Além disso, cada daemon implementa um sistema de plug-in permitindo que novas funcionalidades sejam carregadas em tempo de execução.</p>
<p>Ilustração da arquitetura em grande escala:</p>
<pre class="remontti-code-plain">+----+  +----+  +-----+  +----+  +----+  +----+  +-----+
|bgpd|  |ripd|  |ospfd|  |ldpd|  |pbrd|  |pimd|  |.....|
+----+  +----+  +-----+  +----+  +----+  +----+  +-----+
     |       |        |       |       |       |        |
+----v-------v--------v-------v-------v-------v--------v
|                                                      |
|                         Zebra                        |
|                                                      |
+------------------------------------------------------+
       |                    |                   |
       |                    |                   |
+------v------+   +---------v--------+   +------v------+
|             |   |                  |   |             |
| *NIX Kernel |   | Remote dataplane |   | ........... |
|             |   |                  |   |             |
+-------------+   +------------------+   +-------------+</pre>
<p>Todos os daemons FRR podem ser gerenciados por meio de um único shell de interface de usuário integrado chamado vtysh. O vtysh se conecta a cada daemon através de um soquete de domínio UNIX e então funciona como um proxy para a entrada do usuário. Além de um front-end unificado, o vtysh também oferece a capacidade de configurar todos os daemons usando um único arquivo de configuração por meio do modo de configuração integrado. Isso evita a sobrecarga de manter um arquivo de configuração separado para cada daemon.</p>
<p>Você encontra mais informações em: <a href="http://docs.frrouting.org/en/latest/overview.html" target="_blank" rel="noopener noreferrer">http://docs.frrouting.org/en/latest/overview.html</a></p>
<h4>Módulos do kernel</h4>
<p>Na <a href="http://docs.frrouting.org/en/latest/installation.html#linux-notes" target="_blank" rel="noopener noreferrer">documentação oficial de instalação</a> é recomendado fazer alguns ajustes nas configurações de sysctl do Linux, caso para sua realidade não seja necessário pule esta parte.</p>
<p>Os itens a seguir são definidos para habilitar o encaminhamento de IP no kernel:</p>
<p><strong>Encaminhamento IPv4 e IPv6</strong></p>
<pre class="remontti-code"># vim /etc/sysctl.conf</pre>
<p>Descomente:</p>
<pre class="remontti-code">net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1</pre>
<p><strong>Encaminhamento MPLS</strong> <em>(Ative se achar necessário)</em><br />
O suporte MPLS básico foi introduzido no kernel na versão 4.1 e recursos adicionais foram introduzidos na 4.3 e 4.5.</p>
<pre class="remontti-code"># vim /etc/modules-load.d/modules.conf</pre>
<p>Adicione</p>
<pre class="remontti-code"># Load MPLS Kernel Modules
mpls_router
mpls_iptunnel</pre>
<p>Veja quais o(s) nome(s) de sua(s) interface(s) e adicione:</p>
<pre class="remontti-code"># ip -br link |grep -v lo |awk &#039;{print $1}&#039;
# vim /etc/sysctl.conf</pre>
<p>Adicione ao final do arquivo (Anteção para o nome das interfaces: net.mpls.conf.[INTERFACE].input)</p>
<pre class="remontti-code"># Habilite o processamento de rótulo MPLS em todas as interfaces
net.mpls.conf.enp0s3.input=1
net.mpls.platform_labels=100000</pre>
<p><strong>Encaminhamento VRF </strong> (Ative se achar necessário)<br />
O seguinte impacta como os soquetes BGP TCP são gerenciados em VRFs:</p>
<pre class="remontti-code">net.ipv4.tcp_l3mdev_accept=0</pre>
<p>Com essa configuração, um soquete BGP TCP é aberto por VRF. Essa configuração garante que outros serviços TCP, como SSH, fornecidos para fins não VRF, sejam bloqueados nas interfaces Linux associadas a VRF.</p>
<pre class="remontti-code">net.ipv4.tcp_l3mdev_accept=1</pre>
<p>Reinicie seu servidor para carregar as novas configurações de kernel.</p>
<pre class="remontti-code"># reboot</pre>
<p>Acesse novamente seu servidor, não esqueça de virar root com o comando &#8220;su -&#8221;</p>
<p>Após instalado o FRR não fará nada. Isso ocorre porque os daemons devem ser ativados e até o momento não temos nenhum, para ativar edite o arquivo /etc/frr/daemons e determine quais daemons serão ativados colocando um <strong>yes</strong> no daemon desejado. No meu exemplo vou ativar o bgpd qual deixarei uma &#8220;brincadeira&#8221; de exemplo ao final.</p>
<pre class="remontti-code"># vim /etc/frr/daemons</pre>
<pre class="remontti-code-plain"># Para habilitar um daemon específico, simplesmente altere o &#039;no&#039; correspondente para &#039;yes&#039;, e será necessário reiniciar o serviço.
bgpd=yes 	# BGP
ospfd=no 	# OSPFD (OSPFv2 - IPv4)
ospf6d=no 	# OSPF6D (OSPFv3 - IPv6)
ripd=no 	# RIPD (RIPv2 - IPv4)
ripngd=no 	# RIPNGD (RIPv3 - IPv6)
isisd=no 	# ISISD (IS-IS - Protocolo igp Cisco)
pimd=no 	# PIMD (PIM - Roteamento Multicast)
ldpd=no 	# LDPD (LDP - Labels MPLS para rotas igp)
nhrpd=no 	# NHRPD (NHRP - roteamento entre tuneis)
eigrpd=no 	# EIGRPD (EIGRP - protocolo igp Cisco)
babeld=no 	# BABELD (BABEL - protocolo igp dual-stack)
sharpd=no 	# SHARPD (SHARP - protocolo exemplo zclient)
pbrd=no 	# PBRD (PBR - gestao de regras para Police Based Routing)
bfdd=no 	# BFDD (BFD - protocolo de adjacencia instantanea)
fabricd=no 	# FABRICD (OpenFabric)
vrrpd=no 	# VRRPD (Virtual Router Redundancy Protocol Deamon)

# Como o nome diz, isso faz com que o VTYSH aplique a configuração ao iniciar aos daemons. 
vtysh_enable=yes 

# O próximo conjunto de linhas controla quais opções são passadas aos daemons quando iniciados. 
zebra_options=&quot;  -A 127.0.0.1 -s 90000000&quot;
bgpd_options=&quot;   -A 127.0.0.1&quot;
ospfd_options=&quot;  -A 127.0.0.1&quot;
ospf6d_options=&quot; -A ::1&quot;
ripd_options=&quot;   -A 127.0.0.1&quot;
ripngd_options=&quot; -A ::1&quot;
isisd_options=&quot;  -A 127.0.0.1&quot;
pimd_options=&quot;   -A 127.0.0.1&quot;
ldpd_options=&quot;   -A 127.0.0.1&quot;
nhrpd_options=&quot;  -A 127.0.0.1&quot;
eigrpd_options=&quot; -A 127.0.0.1&quot;
babeld_options=&quot; -A 127.0.0.1&quot;
sharpd_options=&quot; -A 127.0.0.1&quot;
pbrd_options=&quot;   -A 127.0.0.1&quot;
staticd_options=&quot;-A 127.0.0.1&quot;
bfdd_options=&quot;   -A 127.0.0.1&quot;
fabricd_options=&quot;-A 127.0.0.1&quot;
vrrpd_options=&quot;  -A 127.0.0.1&quot;</pre>
<p>Como este tutorial é um laboratório irei ativar os daemons <strong>OSPFv2, OSPFv3, BABEL e BGP</strong>, (em produção ative somente o necessário) pois em seguida teremos alguns exemplos contribuídos pelo <a href="http://www.patrickbrandao.com/" target="_blank" rel="noopener noreferrer">Patrick Brandão</a>.</p>
<p>Alterações feitas no /etc/frr/daemons vamos reiniciar o FRR</p>
<pre class="remontti-code"># systemctl restart frr</pre>
<p>Verifique se o mesmo está ok</p>
<pre class="remontti-code"># systemctl status frr</pre>
<pre class="remontti-code-plain">● frr.service - FRRouting
   Loaded: loaded (/lib/systemd/system/frr.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-08-11 14:00:29 -03; 41s ago
     Docs: https://frrouting.readthedocs.io/en/latest/setup.html
  Process: 665 ExecStart=/usr/lib/frr/frrinit.sh start (code=exited, status=0/SUCCESS)
   Status: &quot;FRR Operational&quot;
    Tasks: 18 (limit: 1150)
   Memory: 24.2M
   CGroup: /system.slice/frr.service
           ├─674 /usr/lib/frr/watchfrr -d -F traditional zebra bgpd ospfd ospf6d babeld staticd
           ├─699 /usr/lib/frr/zebra -d -F traditional -A 127.0.0.1 -s 90000000
           ├─704 /usr/lib/frr/bgpd -d -F traditional -A 127.0.0.1
           ├─712 /usr/lib/frr/ospfd -d -F traditional -A 127.0.0.1
           ├─716 /usr/lib/frr/ospf6d -d -F traditional -A ::1
           ├─720 /usr/lib/frr/babeld -d -F traditional -A 127.0.0.1
           └─724 /usr/lib/frr/staticd -d -F traditional -A 127.0.0.1

ago 11 14:00:29 frr zebra[699]: client 47 says hello and bids fair to announce only static routes vrf=0
set 23 15:44:11 accel watchfrr[1220]: zebra state -&gt; up : connect succeeded
set 23 15:44:11 accel watchfrr[1220]: bgpd state -&gt; up : connect succeeded
set 23 15:44:11 accel watchfrr[1220]: ospfd state -&gt; up : connect succeeded
set 23 15:44:11 accel watchfrr[1220]: ospf6d state -&gt; up : connect succeeded
set 23 15:44:11 accel watchfrr[1220]: staticd state -&gt; up : connect succeeded
set 23 15:44:11 accel watchfrr[1220]: all daemons up, doing startup-complete notify
ago 11 14:00:29 frr frrinit.sh[665]: Started watchfrr.
ago 11 14:00:29 frr systemd[1]: Started FRRouting.</pre>
<p>Pode também conferir se o serviço de cada daemons ativos foi iniciado:</p>
<pre class="remontti-code"># netstat -putan</pre>
<pre class="remontti-code-plain">Proto Recv-Q Send-Q Endereço Local          Endereço Remoto         Estado      PID/Program name    
tcp        0      0 127.0.0.1:2601          0.0.0.0:*               OUÇA       699/zebra           
tcp        0      0 127.0.0.1:2604          0.0.0.0:*               OUÇA       712/ospfd           
tcp        0      0 127.0.0.1:2605          0.0.0.0:*               OUÇA       704/bgpd            
tcp        0      0 127.0.0.1:2616          0.0.0.0:*               OUÇA       724/staticd         
tcp6       0      0 ::1:2606                :::*                    OUÇA       716/ospf6d</pre>
<p>Lista completa das portas:</p>
<pre class="remontti-code-plain">zebrasrv      2600/tcp    # zebra service
zebra         2601/tcp    # zebra vty
ripd          2602/tcp    # RIPd vty
ripngd        2603/tcp    # RIPngd vty
ospfd         2604/tcp    # OSPFd vty
bgpd          2605/tcp    # BGPd vty
ospf6d        2606/tcp    # OSPF6d vty
ospfapi       2607/tcp    # ospfapi
isisd         2608/tcp    # ISISd vty
babeld        2609/tcp    # BABELd vty
nhrpd         2610/tcp    # nhrpd vty
pimd          2611/tcp    # PIMd vty
ldpd          2612/tcp    # LDPd vty
eigprd        2613/tcp    # EIGRPd vty
bfdd          2617/tcp    # bfdd vty
fabricd       2618/tcp    # fabricd vty
vrrpd         2619/tcp    # vrrpd vty</pre>
<h4>Entrado no Shell VTY</h4>
<p>Vtysh fornece um frontend combinado para todos os daemons FRR em uma única sessão combinada.</p>
<pre class="remontti-code"># vtysh</pre>
<pre class="remontti-code-plain">Hello, this is FRRouting (version 7.3.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

frr# show running-config
Building configuration...

Current configuration:
!
frr version 7.3.1
frr defaults traditional
hostname frr
log syslog informational
service integrated-vtysh-config
!
line vty
!
end
frr# exit</pre>
<p>vtysh tem um arquivo de configuração /etc/frr/vtysh.conf que contém opções que controlam o comportamento da autenticação. Este arquivo também não será escrito por comandos de salvamento de configuração, ele deve ser atualizado manualmente.</p>
<p>Isso também significa que os comandos hostname e (que têm efeito para vtysh) precisam ser atualizados manualmente no vtysh.conf</p>
<p>Todas as configurações salvas (<strong>write</strong>) no terminal do vtysh são escritas no arquivo <strong>frr.conf</strong>. </p>
<p>A documentação também ressalta que é possível salvar os arquivos separados por daemons, para alterar esse comportamento é precisamos editar o /etc/frr/vtysh.conf <em>(Fica a seu critério também, eu particularmente não altero)</em></p>
<pre class="remontti-code"># vim /etc/frr/vtysh.conf</pre>
<p>Estão o que isso faz?<br />
<strong>service integrated-vtysh-config </strong><br />
&#8211; O vtysh sempre salvará no frr.conf.</p>
<p><strong>no service integrated-vtysh-config </strong><br />
&#8211; vtysh nunca vai salvar no frr.conf, em vez disso, ele pedirá aos daemons que escrevam/crie seus arquivos de configuração individuais.</p>
<p>Se fizer a altração reinicie a aplicação</p>
<pre class="remontti-code"># systemctl restart frr</pre>
<p>Mais sobre vtysh: <a href="http://docs.frrouting.org/en/latest/vtysh.html" target="_blank" rel="noopener noreferrer">http://docs.frrouting.org/en/latest/vtysh.html</a></p>
<p>Acessamos o terminal do vtysh e usamos o comando write (salvar).</p>
<pre class="remontti-code"># vtysh</pre>
<pre class="remontti-code-plain">Hello, this is FRRouting (version 7.3.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

frr# write 
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Warning: /etc/frr/frr.conf.sav unlink failed
Building Configuration...
Integrated configuration saved to /etc/frr/frr.conf
[OK]
frr# exit</pre>
<p>Na próxima vez que salvar (write) um &#8220;____.<strong>conf.sav</strong>&#8221; será criado também preservando a configuração posterior.</p>
<p>Você também pode acessar o terminal vtysh (zebra) por telnet, lembra que vimos as porta que cada serviço estava rodando, logo o zebra roda na porta 2601(tcp), porém responde apenas localmente (localhost/127.0.0.1) caso você deseje abrir esse acesso externamente (restringi-lo por firewall o acesso a determinados IPs é uma boa prática) faça e alteração no arquivo daemons.</p>
<pre class="remontti-code"># vim /etc/frr/daemons</pre>
<p>Encontre:</p>
<pre class="remontti-code">zebra_options=&quot;  -A 127.0.0.1 -s 90000000&quot;</pre>
<p>E altere por:</p>
<pre class="remontti-code">zebra_options=&quot;  -A 0.0.0.0 -s 90000000&quot;</pre>
<p>Se você desejar alterar esta porta basta incluir &#8220;-P porta&#8221;</p>
<pre class="remontti-code">zebra_options=&quot;  -A 0.0.0.0 -s 90000000 -P 40023&quot;</pre>
<p>Salve e reinicie o FRR</p>
<pre class="remontti-code"># systemctl restart frr</pre>
<p>Porém se você tentar acessar mesmo que localmente não será possível, pois uma senha não foi definida.</p>
<pre class="remontti-code-plain"># telnet localhost 40023
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is &#039;^]&#039;.
Vty password is not set.
Connection closed by foreign host.</pre>
<p>Para configura as senha de login e de enable:</p>
<pre class="remontti-code"># vtysh</pre>
<pre class="remontti-code"># configure terminal 
# password senha_de_login
# enable password senha_para_enable
# service password-encryption
# line vty 
# login 
# end 
# write
# exit</pre>
<p>Ex.:</p>
<pre class="remontti-code-plain">frr# configure terminal 
frr(config)# password remontti
frr(config)# enable password remontti
frr(config)# service password-encryption
frr(config)# line vty 
frr(config-line)# login 
frr(config-line)# end 
frr# write 
Note: this version of vtysh never writes vtysh.conf
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Integrated configuration saved to /etc/frr/frr.conf
[OK]
frr# exit</pre>
<p>Faça um teste localmente ou externamente caso tenha liberado o acesso:</p>
<pre class="remontti-code"># telnet localhost 40023</pre>
<pre class="remontti-code-plain">Trying 127.0.0.1...
Connected to localhost.
Escape character is &#039;^]&#039;.

Hello, this is FRRouting (version 7.3.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

User Access Verification

Password: 
frr&gt; enable 
Password: 
frr# exit</pre>
<p>Por mais inseguro que seja o uso do telnet, em alguns casos é comum o acesso de servidores Looking Glass publicamente. Para tornar o acesso telnet público (não vai exigir senha) apenas leitura, basta remove a senha. (Ainda assim é possível ter poderes com em enable+senha)</p>
<p>Removendo senha:</p>
<pre class="remontti-code"># configure terminal
# no password
# line vty
# no login
# end
# write
# exit
</pre>
<pre class="remontti-code-plain">Hello, this is FRRouting (version 7.3.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

frr# configure terminal
frr(config)# no password
Please be aware that removing the password is a security risk and you should think twice about this command.
frr(config)# line vty
frr(config-line)# no login
frr(config-line)# end
frr# write 
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Building Configuration...
Integrated configuration saved to /etc/frr/frr.conf
[OK]
frr# exit</pre>
<h4>Zerando as configurações</h4>
<p>Caso você queira começar tudo do zero, basta remover todos os .conf e copiar os arquivos originais que estão na pasta backup, e dar suas devidas permissões!<br />
Ex.:</p>
<pre class="remontti-code"># rm /etc/frr/*.conf
# rm /etc/frr/*.sav
# rm /etc/frr/daemons
# cp /etc/frr/backups/* /etc/frr/
# chown frr. /etc/frr/ -R</pre>
<h3>Modelos de configurações:</h3>
<p>Alguns exemplos de configurações para os daemons podem ser encontrados em:</p>
<pre class="remontti-code-plain"># tree /usr/share/doc/frr/examples/
├── babeld.conf.sample
├── bfdd.conf.sample
├── bgpd.conf.sample
├── bgpd.conf.sample2
├── bgpd.conf.vnc.sample
├── eigrpd.conf.sample
├── isisd.conf.sample
├── ldpd.conf.sample
├── ospf6d.conf.sample
├── ospfd.conf.sample
├── pbrd.conf.sample
├── pimd.conf.sample
├── ripd.conf.sample
├── ripngd.conf.sample
├── staticd.conf.sample
├── vtysh.conf.sample
└── zebra.conf.sample</pre>
<p>Em <a href="http://docs.frrouting.org/en/latest/" rel="noopener noreferrer" target="_blank">http://docs.frrouting.org/en/latest/</a> você encontra uma ampla documentação com muitos exemplos. </p>
<h4>Bônus iBGP</h4>
<p>Vou deixar aqui um modelo simples iBGP entre um servidor Linux vs Mikrotik.<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/frr-bgp-mikrotik-1.png" alt="" width="706" height="261" class="alignnone size-full wp-image-5076" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/09/frr-bgp-mikrotik-1.png 706w, https://blog.remontti.com.br/wp-content/uploads/2020/09/frr-bgp-mikrotik-1-300x111.png 300w" sizes="(max-width: 706px) 100vw, 706px" /></p>
<p>Exemplo para iBGP para um DNS Anycast distribuído, usando os IPs do DNS Google, <strong>mas não estou incentivando a fazer isso</strong> é apenas um exemplo! </p>
<p><strong>Configuração Linux DNS</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/a.png" alt="" width="225" height="121" class="alignnone size-full wp-image-5090" /></p>
<pre class="remontti-code"># vtysh</pre>
<p>Nesta configuração vamos adicionar os IPs de loopbacks em seguida fechar os peers IPv4 e IPv6, e finalizando configurando os filtros para receber rota default (Logo no RouterOS será necessário envia) e ensinar apenas as IPs de lo. Este é apenas um exemplo para você começar a brincar e estudar mais sobre o assunto.</p>
<pre class="remontti-code">configure terminal
!
interface lo
 ip address 8.8.8.8/32
 ipv6 address 2001:4860:4860::8888/128
!
router bgp 65530
 bgp router-id 10.1.0.2
 neighbor 10.1.0.1 remote-as 65530
 neighbor 10.1.0.1 description &quot;iBGP_DNS_IPv4&quot;
 neighbor 2001:db8:1::1 remote-as 65530
 neighbor 2001:db8:1::1 description &quot;iBGP_DNS_IPv6&quot;
 !
 address-family ipv4 unicast
  redistribute kernel
  redistribute connected
  redistribute static
  neighbor 10.1.0.1 prefix-list RR-IPV4-IN in
  neighbor 10.1.0.1 prefix-list RR-IPV4-OUT out
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute kernel
  redistribute connected
  redistribute static
  neighbor 2001:db8:1::1 activate
  neighbor 2001:db8:1::1 prefix-list RR-IPV6-IN in
  neighbor 2001:db8:1::1 prefix-list RR-IPV6-OUT out
 exit-address-family
!
ip prefix-list RR-IPV4-IN seq 5 permit 0.0.0.0/0
ip prefix-list RR-IPV4-OUT seq 5 permit 8.8.8.8/32
!
ipv6 prefix-list RR-IPV6-IN seq 5 permit ::/0
ipv6 prefix-list RR-IPV6-OUT seq 5 permit 2001:4860:4860::8888/128
!
line vty
!
end
write</pre>
<p><strong>Configuração no Mikrotik/RouterOS (Gateway DNS)</strong></p>
<pre class="remontti-code">/routing bgp instance
add client-to-client-reflection=no name=iBGP-DNS router-id=10.1.0.1

/routing bgp peer
add default-originate=always instance=iBGP-DNS name=DNS-FRR-IPv4 remote-address=10.1.0.2 remote-as=65530
add default-originate=always instance=iBGP-DNS name=DNS-FRR-IPv6 remote-address=2001:db8:1::2 remote-as=65530 address-families=ipv6
</pre>
<p><strong>Configuração Linux Accel-PPP</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/09/b.png" alt="" width="258" height="154" class="alignnone size-full wp-image-5089" /></p>
<pre class="remontti-code"># vtysh</pre>
<p>Nesta configuração vamos fechar os peers IPv4 e IPv6, e configurar os filtros para receber rota default (Logo no RouterOS será necessário envia) e ensinar apenas as IPs possíveis ips dinâmicos desta rede (45.0.0.0/22, 100.64.0.0/10). Lembrando que este é apenas um exemplo simples para você começar a brincar e estudar mais sobre o assunto.</p>
<pre class="remontti-code">configure terminal
!
router bgp 65530
 bgp router-id 10.1.0.2
 neighbor 10.2.0.1 remote-as 65530
 neighbor 10.2.0.1 description &quot;iBGP_ACCEL_IPv4&quot;
 neighbor 2001:db8:2::1 remote-as 65530
 neighbor 2001:db8:2::1 description &quot;iBGP_ACCEL_IPv6&quot;
 !
 address-family ipv4 unicast
  redistribute kernel
  redistribute connected
  redistribute static
  neighbor 10.2.0.1 prefix-list FILTRO-RR-IPV4-IN in
  neighbor 10.2.0.1 prefix-list FILTRO-RR-IPV4-OUT out
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute kernel
  redistribute connected
  redistribute static
  neighbor 2001:db8:2::1 activate
  neighbor 2001:db8:2::1 prefix-list FILTRO-RR-IPV6-IN in
  neighbor 2001:db8:2::1 prefix-list FILTRO-RR-IPV6-OUT out
 exit-address-family
!
ip prefix-list FILTRO-RR-IPV4-IN seq 5 permit 0.0.0.0/0
ip prefix-list FILTRO-RR-IPV4-OUT seq 5 permit 100.64.0.0/10 le 32
ip prefix-list FILTRO-RR-IPV4-OUT seq 10 permit 45.0.0.0/22 le 32
ip prefix-list FILTRO-RR-IPV4-OUT seq 15 permit 10.0.0.0/8 le 32
!
ipv6 prefix-list FILTRO-RR-IPV6-IN seq 5 permit ::/0
ipv6 prefix-list FILTRO-RR-IPV6-OUT seq 10 permit 2001:db8::/32 le 128
!
line vty
!
end
write</pre>
<p><strong>Configuração no Mikrotik/RouterOS (Gateway Accel-PPP)</strong></p>
<pre class="remontti-code">/routing bgp instance
add client-to-client-reflection=no name=iBGP-Accel router-id=10.2.0.2

/routing bgp peer
add default-originate=always instance=iBGP-Accel name=DNS-FRR-IPv4 remote-address=10.2.0.2 remote-as=65530
add default-originate=always instance=iBGP-Accel name=DNS-FRR-IPv6 remote-address=2001:db8:2::2 remote-as=65530 address-families=ipv6
</pre>
<p>Espero que tenha lhe instigado a buscar mais sobre o FRR.</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Deixo aqui agradecimento ao Patrick Brandão que está elaborando um belo <a href="http://www.patrickbrandao.com/?p=artigos&#038;a=frr#frr" rel="noopener noreferrer" target="_blank">tutorial com muitos exemplos</a>. </p>
<p>Fontes:<br />
<a href="https://frrouting.org/" rel="noopener noreferrer" target="_blank">https://frrouting.org/</a><br />
<a href="http://docs.frrouting.org/" rel="noopener noreferrer" target="_blank">http://docs.frrouting.org/</a></p>
<p>O post <a href="https://blog.remontti.com.br/4771">Instalação do FRRouting (FRR) &#8211; Roteamento dinâmico no seu linux +Bônus iBGP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4771/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
