Nesse artigo vou demonstrar como criar uma rede dinâmica com OSPF através do quagua e usando o sistema operacional CentOS 5.3, para um provedor de internet a rádio ou cabo. Com o OSPF é possível criar uma rede dinâmica e segura, fazendo com que a redundância seja automática, de acordo com a disponibilidade de cada conexão.
Por: Luis Viscardo Saqueto
Pacotes necessários
Para instalação foi utilizado o CentOS versão 5.3 somente com os pacotes básicos e pacotes de desenvolvimento.
Para instalação do pacote foi necessária a instalação via yum do pacote readline:
# yum install compat-readline43
Versão do Quagua utilizada: quagga-0.96.4-3.i386 Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Para instalação foi utilizado o CentOS versão 5.3 somente com os pacotes básicos e pacotes de desenvolvimento.
Para instalação do pacote foi necessária a instalação via yum do pacote readline:
# yum install compat-readline43
Versão do Quagua utilizada: quagga-0.96.4-3.i386
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Instalação:
# rpm -ivh quagga-0.96.4-3.i386.rpm
Cenário
O cenário de exemplo é de um provedor de internet com 3 edifícios de backbones principais com necessidade de redundância entre eles.
Conforme a imagem, possuímos 4 servidores, um no provedor e mais um em cada edifício.
Nesse artigo estarei ensinando a configurar os 3 servidores das pontas em que irão ficar nos edifícios.
Configurando as placas de rede
Para criar nossa rede OSPF precisamos de 2 serviços rodando:
* ZEBRA
* OSPFD
Antes de inicializar os serviços deveremos configurar as placas de rede.
Placas de rede:
OSPF1
eth0 - 10.5.0.1
eth1 - 10.6.0.1
eth2 - 172.16.1.201
eth3 - Gateway para clientes
OSPF2
eth0 - 10.5.0.2
eth1 - 10.7.0.2
eth2 - 172.16.0.202
eth3 - Gateway para clientes
OSPF3
eth0 - 10.7.0.3
eth1 - 10.6.0.3
eth2 - 172.16.3.203
eth3 - Gateway para clientes
Configuração do OSPF
A configuração do OSPF fica no arquivo /etc/quagua/ospfd.conf.
O objetivo do artigo é apenas criar um cenário de testes, portanto não estarei abordando configurações avançadas do OSPF.
Configuração do Zebra
Para que o OSPF habilite o protocolo nas placas de rede é necessário antes de tudo configurar essas placas também no ZEBRA.
Arquivo /etc/quagua/zebra.conf:
Testando o funcionamento da rede
Agora que nosso OSPF está funcionando, vamos verificar o funcionamento da rede. Vamos acessar novamente via telnet os servidores e verificar a tabela de rotas:
OSPF1:
# show ip ospf route============ OSPF network routing table ============
N 10.5.0.0/24 [10] area: 0.0.0.0
directly attached to eth0
N 10.6.0.0/24 [10] area: 0.0.0.0
directly attached to eth1
N 10.7.0.0/24 [20] area: 0.0.0.0
via 10.6.0.3, eth1
N 172.16.1.0/24 [10] area: 0.0.0.0
directly attached to eth2
============ OSPF router routing table =============
R 10.7.0.3 [10] area: 0.0.0.0, ASBR
via 10.6.0.3, eth1
============ OSPF external routing table ===========
N E2 169.254.0.0/16 [10/20] tag: 0
via 10.6.0.3, eth1
N E2 172.16.3.0/24 [10/20] tag: 0
via 10.6.0.3, eth1
OSPF2:
# show ip ospf route
============ OSPF network routing table ============
N 10.5.0.0/24 [100] area: 0.0.0.0
directly attached to eth0
N 10.6.0.0/24 [110] area: 0.0.0.0
via 10.5.0.1, eth0
N 10.7.0.0/24 [120] area: 0.0.0.0
via 10.5.0.1, eth0
N 172.16.1.0/24 [110] area: 0.0.0.0
via 10.5.0.1, eth0
============ OSPF router routing table =============
R 10.5.0.1 [100] area: 0.0.0.0, ASBR
via 10.5.0.1, eth0
R 10.7.0.3 [110] area: 0.0.0.0, ASBR
via 10.5.0.1, eth0
============ OSPF external routing table ===========
N E2 169.254.0.0/16 [100/20] tag: 0
via 10.5.0.1, eth0
N E2 172.16.3.0/24 [110/20] tag: 0
via 10.5.0.1, eth0
OSPF3:
# show ip ospf route
============ OSPF network routing table ============
N 10.5.0.0/24 [20] area: 0.0.0.0
via 10.6.0.1, eth1
N 10.6.0.0/24 [10] area: 0.0.0.0
directly attached to eth1
N 10.7.0.0/24 [10] area: 0.0.0.0
directly attached to eth0
N 172.16.1.0/24 [20] area: 0.0.0.0
via 10.6.0.1, eth1
============ OSPF router routing table =============
R 10.5.0.1 [10] area: 0.0.0.0, ASBR
via 10.6.0.1, eth1
============ OSPF external routing table ===========
N E2 169.254.0.0/16 [10/20] tag: 0
via 10.6.0.1, eth1
Assim podemos observar que os roteadores já estão trocando rotas entre eles, experimente desconectar algum cabo de rede e rodar novamente esses comandos, assim poderá observar que as rotas foram alteradas. Você pode também observar que agora, a partir de qualquer servidor, você consegue pingar qualquer placa de rede ou cliente nesses servidores, ou verificar através do comando tracert.
Exemplo - comando a partir do servidor OSPF2:
# tracert 10.6.0.3
traceroute to 10.6.0.3 (10.6.0.3), 30 hops max, 40 byte packets
1 (10.5.0.1) 0.400 ms 0.359 ms 0.363 ms
2 (10.6.0.3) 0.965 ms 0.976 ms 0.970 ms
Inicializando e testando o serviço OSPF
Agora que está tudo configurado e os cabos de rede conectados, deveremos inicializar os serviços:
# service zebra start
# service ospfd start
Agora com os serviços inicializados, vamos acessar o console para conferir a conexão entre eles:
# telnet localhost 2604
Senha: zebra
# enable
Para visualizar se os servidores estão enxergando seus vizinhos (neighbors):
OSPF1:
# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.5.0.2 1 Full/DR 00:00:34 10.5.0.2 eth0:10.5.0.1 0 0 0
10.7.0.3 1 Full/Backup 00:00:36 10.6.0.3 eth1:10.6.0.1 0 0 0
OSPF2:
# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.5.0.1 1 Full/Backup 00:00:37 10.5.0.1 eth0:10.5.0.2 0 0 0
10.7.0.3 1 Full/Backup 00:00:31 10.7.0.3 eth1:10.7.0.2 0 0 0
OSPF3:
# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.5.0.2 1 Full/DR 00:00:39 10.7.0.2 eth0:10.7.0.3 0 0 0
10.5.0.1 1 Full/DR 00:00:39 10.6.0.1 eth1:10.6.0.3 0 0 0
Fonte: VivaoLinux
Postado Por: RedDeviL
Por: Luis Viscardo Saqueto
Pacotes necessários
Para instalação foi utilizado o CentOS versão 5.3 somente com os pacotes básicos e pacotes de desenvolvimento.
Para instalação do pacote foi necessária a instalação via yum do pacote readline:
# yum install compat-readline43
Versão do Quagua utilizada: quagga-0.96.4-3.i386 Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Para instalação foi utilizado o CentOS versão 5.3 somente com os pacotes básicos e pacotes de desenvolvimento.
Para instalação do pacote foi necessária a instalação via yum do pacote readline:
# yum install compat-readline43
Versão do Quagua utilizada: quagga-0.96.4-3.i386
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Instalação:
# rpm -ivh quagga-0.96.4-3.i386.rpm
Cenário
O cenário de exemplo é de um provedor de internet com 3 edifícios de backbones principais com necessidade de redundância entre eles.
Conforme a imagem, possuímos 4 servidores, um no provedor e mais um em cada edifício.
Nesse artigo estarei ensinando a configurar os 3 servidores das pontas em que irão ficar nos edifícios.
Configurando as placas de rede
Para criar nossa rede OSPF precisamos de 2 serviços rodando:
* ZEBRA
* OSPFD
Antes de inicializar os serviços deveremos configurar as placas de rede.
Placas de rede:
OSPF1
eth0 - 10.5.0.1
eth1 - 10.6.0.1
eth2 - 172.16.1.201
eth3 - Gateway para clientes
OSPF2
eth0 - 10.5.0.2
eth1 - 10.7.0.2
eth2 - 172.16.0.202
eth3 - Gateway para clientes
OSPF3
eth0 - 10.7.0.3
eth1 - 10.6.0.3
eth2 - 172.16.3.203
eth3 - Gateway para clientes
Configuração do OSPF
A configuração do OSPF fica no arquivo /etc/quagua/ospfd.conf.
O objetivo do artigo é apenas criar um cenário de testes, portanto não estarei abordando configurações avançadas do OSPF.
Código:
OSPF01 interface eth0 ! interface eth1 ! interface eth2 ! interface eth3 ! interface lo ! interface sit0 ! router ospf ospf router-id 10.5.0.1 redistribute kernel redistribute connected redistribute static network 10.5.0.0/24 area 0.0.0.0 network 10.6.0.0/24 area 0.0.0.0 network 172.16.1.0/24 area 0.0.0.0 neighbor 10.5.0.2 neighbor 10.6.0.1 neighbor 10.6.0.3 OSPF2 interface eth0 ! interface eth1 ! interface eth2 ! interface lo ! interface sit0 ! router ospf ospf router-id 10.5.0.2 network 10.5.0.0/24 area 0.0.0.0 network 10.7.0.0/24 area 0.0.0.0 neighbor 10.5.0.1 neighbor 10.7.0.3 ! OSPF3 interface eth0 ip ospf retransmit-interval 10 ! interface eth1 ! interface eth2 ! interface eth3 ! interface lo ! interface sit0 ! router ospf ospf router-id 10.7.0.3 redistribute kernel redistribute connected redistribute static network 10.6.0.0/24 area 0.0.0.0 network 10.7.0.0/24 area 0.0.0.0 neighbor 10.6.0.1 neighbor 10.7.0.2
Configuração do Zebra
Para que o OSPF habilite o protocolo nas placas de rede é necessário antes de tudo configurar essas placas também no ZEBRA.
Arquivo /etc/quagua/zebra.conf:
Código:
OSPF1 OSPF2 hostname Router password zebra enable password zebra ! ! Interface's description. ! !interface lo !ip address 172.16.1.20/24 ! interface eth1 ip address 10.7.0.2/24 ! interface eth0 ip address 10.5.0.2/24 OSPF3 hostname Router password zebra enable password zebra ! ! Interface's description. ! interface eth0 ip address 10.5.0.1/24 !multicast interface eth1 ip address 10.6.0.1/24 ! interface eth2 ip address 172.16.1.2/24 ! Static default route sample. hostname Router password zebra enable password zebra ! ! Interface's description. ! interface eth0 ip address 10.7.0.3/24 !multicast interface eth1 ip address 10.6.0.3/24
Testando o funcionamento da rede
Agora que nosso OSPF está funcionando, vamos verificar o funcionamento da rede. Vamos acessar novamente via telnet os servidores e verificar a tabela de rotas:
OSPF1:
# show ip ospf route============ OSPF network routing table ============
N 10.5.0.0/24 [10] area: 0.0.0.0
directly attached to eth0
N 10.6.0.0/24 [10] area: 0.0.0.0
directly attached to eth1
N 10.7.0.0/24 [20] area: 0.0.0.0
via 10.6.0.3, eth1
N 172.16.1.0/24 [10] area: 0.0.0.0
directly attached to eth2
============ OSPF router routing table =============
R 10.7.0.3 [10] area: 0.0.0.0, ASBR
via 10.6.0.3, eth1
============ OSPF external routing table ===========
N E2 169.254.0.0/16 [10/20] tag: 0
via 10.6.0.3, eth1
N E2 172.16.3.0/24 [10/20] tag: 0
via 10.6.0.3, eth1
OSPF2:
# show ip ospf route
============ OSPF network routing table ============
N 10.5.0.0/24 [100] area: 0.0.0.0
directly attached to eth0
N 10.6.0.0/24 [110] area: 0.0.0.0
via 10.5.0.1, eth0
N 10.7.0.0/24 [120] area: 0.0.0.0
via 10.5.0.1, eth0
N 172.16.1.0/24 [110] area: 0.0.0.0
via 10.5.0.1, eth0
============ OSPF router routing table =============
R 10.5.0.1 [100] area: 0.0.0.0, ASBR
via 10.5.0.1, eth0
R 10.7.0.3 [110] area: 0.0.0.0, ASBR
via 10.5.0.1, eth0
============ OSPF external routing table ===========
N E2 169.254.0.0/16 [100/20] tag: 0
via 10.5.0.1, eth0
N E2 172.16.3.0/24 [110/20] tag: 0
via 10.5.0.1, eth0
OSPF3:
# show ip ospf route
============ OSPF network routing table ============
N 10.5.0.0/24 [20] area: 0.0.0.0
via 10.6.0.1, eth1
N 10.6.0.0/24 [10] area: 0.0.0.0
directly attached to eth1
N 10.7.0.0/24 [10] area: 0.0.0.0
directly attached to eth0
N 172.16.1.0/24 [20] area: 0.0.0.0
via 10.6.0.1, eth1
============ OSPF router routing table =============
R 10.5.0.1 [10] area: 0.0.0.0, ASBR
via 10.6.0.1, eth1
============ OSPF external routing table ===========
N E2 169.254.0.0/16 [10/20] tag: 0
via 10.6.0.1, eth1
Assim podemos observar que os roteadores já estão trocando rotas entre eles, experimente desconectar algum cabo de rede e rodar novamente esses comandos, assim poderá observar que as rotas foram alteradas. Você pode também observar que agora, a partir de qualquer servidor, você consegue pingar qualquer placa de rede ou cliente nesses servidores, ou verificar através do comando tracert.
Exemplo - comando a partir do servidor OSPF2:
# tracert 10.6.0.3
traceroute to 10.6.0.3 (10.6.0.3), 30 hops max, 40 byte packets
1 (10.5.0.1) 0.400 ms 0.359 ms 0.363 ms
2 (10.6.0.3) 0.965 ms 0.976 ms 0.970 ms
Inicializando e testando o serviço OSPF
Agora que está tudo configurado e os cabos de rede conectados, deveremos inicializar os serviços:
# service zebra start
# service ospfd start
Agora com os serviços inicializados, vamos acessar o console para conferir a conexão entre eles:
# telnet localhost 2604
Senha: zebra
# enable
Para visualizar se os servidores estão enxergando seus vizinhos (neighbors):
OSPF1:
# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.5.0.2 1 Full/DR 00:00:34 10.5.0.2 eth0:10.5.0.1 0 0 0
10.7.0.3 1 Full/Backup 00:00:36 10.6.0.3 eth1:10.6.0.1 0 0 0
OSPF2:
# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.5.0.1 1 Full/Backup 00:00:37 10.5.0.1 eth0:10.5.0.2 0 0 0
10.7.0.3 1 Full/Backup 00:00:31 10.7.0.3 eth1:10.7.0.2 0 0 0
OSPF3:
# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
10.5.0.2 1 Full/DR 00:00:39 10.7.0.2 eth0:10.7.0.3 0 0 0
10.5.0.1 1 Full/DR 00:00:39 10.6.0.1 eth1:10.6.0.3 0 0 0
Fonte: VivaoLinux
Postado Por: RedDeviL