Nesta dica, vou demonstrar como configura o sistema operacional
GNU/Linux como roteador. Vamos usar dois sistemas distintos para realizar o roteamento, para que o leitor aprenda como se faz em distribuições baseadas em
Red Hat e em
Debian.
Roteador CentOS 6.4
VirtualBox: máquina virtual com
CentOS 6.4 instalado e 4 placas de rede configuradas:
Obs.: as placas de rede nas máquinas virtuais, devem ser configuradas como rede interna.
CentOS 6.4 - n1-LinuxRouter1 :: Configurando a rede :: editei os arquivos de configuração de placas de rede no CentOS:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Até a
eth3, conforme a tabela:
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth0
#BOOTPROTO=static
HWADDR=08:00:27:95:1B:87
IPADDR=192.168.0.249
NETMASK=255.255.255.252
#GATEWAY=192.168.0.1
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
ONBOOT=yes
# Fazer para todas as placas
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth1
#BOOTPROTO=static
HWADDR=08:00:27:95:1B:87
IPADDR=192.168.1.254
NETMASK=255.255.255.252
GATEWAY=192.168.0.1249
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
ONBOOT=yes
# Fazer para todas as placas
Reiniciei as interfaces de rede:
# /etc/init.d/network stop
# /etc/init.d/network start
Ficando assim:
# ifconfig | more
eth0 Link encap:Ethernet Endereço de HW 08:00:27:95:1B:87
inet end.: 192.168.0.249 Bcast:192.168.0.251 Masc:255.255.255.252
endereço inet6: fe80::a00:27ff:fe95:1b87/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:138 errors:0 dropped:0 overruns:0 frame:0
TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:19704 (19.2 KiB) TX bytes:6547 (6.3 KiB)
eth1 Link encap:Ethernet Endereço de HW 08:00:27:69:12:4C
inet end.: 192.168.1.254 Bcast:192.168.1.255 Masc:255.255.255.0
endereço inet6: fe80::a00:27ff:fe69:124c/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:139 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:19755 (19.2 KiB) TX bytes:6532 (6.3 KiB)
eth2 Link encap:Ethernet Endereço de HW 08:00:27:CF:E4:39
inet end.: 192.168.2.254 Bcast:192.168.2.255 Masc:255.255.255.0
endereço inet6: fe80::a00:27ff:fecf:e439/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:139 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:19755 (19.2 KiB) TX bytes:6532 (6.3 KiB)
eth3 Link encap:Ethernet Endereço de HW 08:00:27:0B:AD:A7
inet end.: 192.168.3.254 Bcast:192.168.3.255 Masc:255.255.255.0
endereço inet6: fe80::a00:27ff:fe0b:ada7/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:139 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:19755 (19.2 KiB) TX bytes:6532 (6.3 KiB)
É importante lembrar que o GNU/Linux não se comporta como roteador por padrão, negando todo o encaminhamento de pacotes entre redes distintas.
O comando para instruir o kernel do Linux a fazer roteamento e permitir o tráfego inter-rede, deve ser realizado em ambos os roteadores:
# echo "1" > /proc/sys/net/ipv4/ip_forward
Criei um script chamado
ip_forward.sh para ser executado quando a máquina der o boot, para não precisar digitar o comando acima toda vez que o sistema for reiniciado:
# vi ip_forward.sh
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
Deixei o script
ip_forward.sh como executável:
# chmod +x ip_forward
Movi o script para o diretório
/usr/local/bin:
# mv ip_forward /usr/local/bin
Consultei o
runlevel padrão no CentOS 6.4, para pode criar o link simbólico no diretório correto:
# runlevel
3
Consultei os serviços que iniciam no diretório
/etc/rc3.d:
# ls -l /etc/rc3.d/
Criei um link simbólico em
/etc/rc3.d/, com um número de arquivo que não existia:
# ln -s /usr/local/bin/ip_forward /etc/rc3.d/S90ip_forward
Roteador Debian Wheezy
Debian Wheezy - n2-LinuxRouter2 :: Configurando a rede:
# vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.250
netmask 255.255.255.252
network 192.168.0.248
broadcast 192.168.0.251
# gateway 192.168.0.1
# The second network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.8.254
netmask 255.255.255.0
network 192.168.8.0
broadcast 192.168.8.255
gateway 192.168.0.248
# The third network interface
auto eth2
allow-hotplug eth2
iface eth2 inet static
address 192.168.9.254
netmask 255.255.255.0
network 192.168.9.0
broadcast 192.168.9.255
gateway 192.168.0.248
Reiniciei as interfaces de rede:
# /etc/init.d/network stop
# /etc/init.d/network start
Ficando assim:
# ifconfig | more
eth0 Link encap:Ethernet Endereço de HW 08:00:27:c3:5f:22
inet end.: 192.168.0.250 Bcast:192.168.0.251 Masc:255.255.255.252
endereço inet6: fe80::a00:27ff:fec3:5f22/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:578 (578.0 B)
eth1 Link encap:Ethernet Endereço de HW 08:00:27:9b:d4:9d
inet end.: 192.168.8.254 Bcast:192.168.8.255 Masc:255.255.255.0
endereço inet6: fe80::a00:27ff:fe9b:d49d/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:578 (578.0 B)
eth2 Link encap:Ethernet Endereço de HW 08:00:27:af:cc:34
inet end.: 192.168.9.254 Bcast:192.168.9.255 Masc:255.255.255.0
endereço inet6: fe80::a00:27ff:feaf:cc34/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:578 (578.0 B)
lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACKRUNNING MTU:16436 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
# echo "1" > /proc/sys/net/ipv4/ip_forward
Criei um script chamado
ip_forward.sh para ser executado quando a máquina der o boot:
# vi ip_forward.sh
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
Deixei o script
ip_forward.sh como executável:
# chmod +x ip_forward
Movi o script para o diretório
/usr/local/bin:
# mv ip_forward /usr/local/bin
Consultei o runlevel padrão no Debian para pode criar o link simbólico no diretório correto:
# runlevel
3
Consultei os serviços que iniciam no diretório
/etc/rc3.d:
Criei um link simbólico em
/etc/rc3.d/S91ip_forward, com um número de arquivo que não existia:
# ln -s /usr/local/bin/ip_forward /etc/rc3.d/S91ip_forward
Configuração manual de rotas e testes
Inserindo as rotas:
-Roteador CentOS:
# route add -net 192.168.8.0/24 gateway 192.168.0.250
# route add -net 192.168.9.0/24 gateway 192.168.0.250
-Roteador Debian Wheezy:
# route add -net 192.168.1.0/24 gateway 192.168.0.249
# route add -net 192.168.2.0/24 gateway 192.168.0.249
# route add -net 192.168.3.0/24 gateway 192.168.0.249
Após realizar as configurações, faça teste de
ping em todas as interfaces de rede, e execute o comando:
# route -n
Para visualizar a tabela de rotas.
Bibliografia
- Blog LabCisco
- Redes de Computadores Gabriel Torres
- Certificação Linux - Uirá Ribeiro
Opa, realmente foi baba minha, eu nao estava usando cabo crossover, agora esta funcionando, mas a questão das rotas continuo apanhando muito, eu adiciono as rotas, incluo elas no network/interfaces e as vezes pinga as vezes nao, reiniciei a maquina e perdi tudo , tive que adicionar tudo de novo agora nao pinga da maquina 1 para maquina 2, mas consigo pingar da maquina1 para R1, tambem consigo pingar do R1 para R2, acredito que seja alguma baba nova minha, estou apanhando das rotas mas quando eu acertar acredito que nao esqueço nunca mais. abraço.