Postado originalmente por
trober
Opa! Concluí aqui
Vamos a nomenclatura dos ativos:
rtr-internet: É o roteador (
FreeBSD) que está conectado à internet. O único da rede toda que tem
NAT. As redes previstas no RFC1918 estão sendo encaminhadas estaticamente para
rtr-a. Eu poderia fazer OSPF no
FreeBSD, mas não é o foco da demonstração.
rtr-a: Uma RB750G, ao norte do círculo, com três interfaces, sendo ether5 voltada para o servidor FreeBSD (nosso
gateway com
NAT). As
ethernets de cada RB representam um segmento (perna) de rede. Veja que ether1 de
rtr-a conversa com ether1 de
rtr-b. Já a ether2 de
rtr-b conversa com ether2 de
rtr-c. E assim sucessivamente, para demonstrar, de forma mais didática, cada "perna" de rede (ou braço, vai do apelido que cada um prefere dar. Eu sou mais fã de "segmento").
rtr-b: Uma RB750G, ao leste do diagrama. Conversa com
rtr-a e
rtr-c.
rtr-c: Uma RB751G-2HnD, ao sul do diagrama. Conversa com
rtr-b,
rtr-d e também uma estação de teste, chamada
wks-test, de endereço 192.168.140.5/24, simulando o extremo da rede, a ser provida com redundância.
rtr-d: Uma RB751G-2HnD, que desempenha o mesmo papel de
rtr-b, só que do lado oeste do circuito, conversando com
rtr-c e
rtr-a.
wks-test: Uma estação de teste. Um
notebook rodando PC-BSD. Tem endereço IP 192.168.140.5/24, e
gateway 192.168.140.3.
Abaixo, o diagrama
Código :
. (200.200.200.2/30)
. [rtr-internet]
. (192.168.250.1)
. |
. |
. |
. |
. 192.168.250.100
. ether5 (lo1 172.30.0.1)
. (172.17.4.1) ether4 [rtr-a] ether1 (172.17.1.1)
. | |
. | |
. | |
. | |
. | |
. | |
. (172.17.4.4) ether4 ether1 (172.17.1.2)
.(lo1 172.30.0.4) [rtr-d] [rtr-b] (lo1 172.30.0.2)
. (172.17.3.4) ether3 ether2 (172.17.2.2)
. | |
. | |
. | |
. | |
. | |
. | |
. (172.17.3.3) ether3 [rtr-c] ether2 (172.17.2.3)
. ether5 (lo1 172.30.0.3)
. (192.168.140.3)
. |
. |
. |
. [wks-test]
. (192.168.140.5)
.
.
.
.
.
.
.
.
.
.
.
A circularidade funciona 100%. Desconecta de um lado, o lado oposto assume. Perde uma ou duas sequências
ICMP, sendo quase imperceptível ao usuário final.
Aqui vai o código de
rtr-a:
Código :
# rtr-a
#
#
/interface bridge add name=loopback
/routing ospf instance set [ find default=yes ] distribute-default=always-as-type-1 router-id=172.30.0.1
/ip address add address=172.30.0.1/32 interface=loopback network=172.30.0.1
/ip address add address=172.17.1.1/29 interface=ether1
/ip address add address=172.17.4.1/29 interface=ether4
/ip address add address=192.168.250.210/24 interface=ether5
/ip dns set servers=192.168.250.1
/ip route add distance=1 gateway=192.168.250.1
/routing ospf interface add interface=loopback network-type=broadcast passive=yes
/routing ospf interface add interface=ether1 network-type=broadcast
/routing ospf interface add interface=ether4 network-type=broadcast
/routing ospf interface add interface=ether5 network-type=broadcast passive=yes
/routing ospf network add area=backbone network=172.30.0.1/32
/routing ospf network add area=backbone network=172.17.1.0/29
/routing ospf network add area=backbone network=172.17.4.0/29
/system identity set name=rtr-a
#
Aqui vai o código de
rtr-b:
Código :
# rtr-b
#
#
/interface bridge add name=loopback
/routing ospf instance set [ find default=yes ] router-id=172.30.0.2
/ip address add address=172.30.0.2/32 interface=loopback network=172.30.0.2
/ip address add address=172.17.1.2/29 interface=ether1
/ip address add address=172.17.2.2/29 interface=ether2
/ip dns set servers=192.168.250.1
/routing ospf interface add interface=loopback network-type=broadcast passive=yes
/routing ospf interface add interface=ether1 network-type=broadcast
/routing ospf interface add interface=ether2 network-type=broadcast
/routing ospf network add area=backbone network=172.30.0.2/32
/routing ospf network add area=backbone network=172.17.1.0/29
/routing ospf network add area=backbone network=172.17.2.0/29
/system identity set name=rtr-b
#
Aqui vai o código de
rtr-c:
Código :
# rtr-c
#
#
/interface bridge add name=loopback
/routing ospf instance set [ find default=yes ] router-id=172.30.0.3
/ip address add address=172.30.0.3/32 interface=loopback network=172.30.0.3
/ip address add address=172.17.2.3/29 interface=ether2
/ip address add address=172.17.3.3/29 interface=ether3
/ip address add address=192.168.140.3/24 interface=ether5
/ip dns set servers=192.168.250.1
/routing ospf interface add interface=loopback network-type=broadcast passive=yes
/routing ospf interface add interface=ether2 network-type=broadcast
/routing ospf interface add interface=ether3 network-type=broadcast
/routing ospf interface add interface=ether5 network-type=broadcast passive=yes
/routing ospf network add area=backbone network=172.30.0.3/32
/routing ospf network add area=backbone network=172.17.2.0/29
/routing ospf network add area=backbone network=172.17.3.0/29
/routing ospf network add area=backbone network=192.168.140.0/24
/system identity set name=rtr-c
#
Aqui vai o código de
rtr-d:
Código :
# rtr-d
#
#
/interface bridge add name=loopback
/routing ospf instance set [ find default=yes ] router-id=172.30.0.4
/ip address add address=172.30.0.4/32 interface=loopback network=172.30.0.4
/ip address add address=172.17.3.4/29 interface=ether3
/ip address add address=172.17.4.4/29 interface=ether4
/ip dns set servers=192.168.250.1
/routing ospf interface add interface=loopback network-type=broadcast passive=yes
/routing ospf interface add interface=ether3 network-type=broadcast
/routing ospf interface add interface=ether4 network-type=broadcast
/routing ospf interface add interface=ether5 network-type=broadcast passive=yes
/routing ospf network add area=backbone network=172.30.0.4/32
/routing ospf network add area=backbone network=172.17.3.0/29
/routing ospf network add area=backbone network=172.17.4.0/29
/system identity set name=rtr-d
#
Observações importantes:
Lá em
rtr-c, você ao ter o círculo fechado, você terá uma rota padrão ECMP (
Equal Cost Multi Path), ou seja, com dois
gateways de mesmo custo.
Outra coisa muito importante. O OSPF tem um tempo de convergência. Então não pense em ficar "fapando cabo" (hehehe) na porta, a cada 5 segundos, achando que terá convergência em tempo real. Detectar queda é instantâneo. Detectar retorno leva não menos que 10 segundos, tempo do
Hello Interval. Aqui é entra a questão de atualização entre roteadores e tal, e a conversa vai longe, não sendo o propósito inicial desse tópico.
Para finalizar, funcionou aqui 100% e funciona em todos o provedores, prefeituras e mais um
pool de cliente que tenho em produção
Espero ter sido útil o material a você e demais colegas do
Under-Linux.
Saudações,
Trober