Introdução
Este artigo foi criado com intuito de passar a minha experiência em transformar o Linux em um roteador de duas sub-redes com servidores. É bem simples o seu conteúdo, mas quando eu fui fazer um roteador na empresa onde trabalho, não encontrei em lugar nenhum como que se faz um roteador para duas sub-redes com servidores, em minhas buscas encontrei apenas para duas sub-redes sem servidores.
Para você entender melhor, vou "desenhar" em ASCII as duas sub-redes com os seus servidores respectivos:
Legenda:
S1 -> Servidor 001
S1-0* -> Estações do servidor 001
S2 -> Servidor 002
S1-0* -> Estações do servidor 002
REDE-001 -> 192.168.0.0/255.255.255.0
REDE-002 -> 172.16.0.0/255.255.0.0
Informações:
S1:
* SO: Linux Slackware 9.1
* Kernel: 2.4.23
* eth0: 00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
INTERNET:
* eth1: 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
* NET: 192.168.0.1 NETMASK: 255.255.255.0
S2:
* SO: Linux CentOS 3.0
* Kernel: 2.4.21
* eth0: 04:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705_2 Gigabit Ethernet (rev 03)
INTERNET:
* eth1: 04:05.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705_2 Gigabit Ethernet (rev 03)
* NET: 172.16.0.1 NETMASK: 255.255.0.0
Roteador:
* SO: Linux Slackware 10.0
* Kernel: 2.4.26
* eth0: 00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
* NET: 192.168.0.5 NETMASK: 255.255.255.0
* eth1: 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 70)
* NET: 172.16.0.5 NETMASK: 255.255.0.0
* S1-0* - S2-0*:
* SO: Windows XP
OBS: Os servidores S1 e S2 são servidores de internet, web, samba, dhcp.
Um pouco de teoria
Roteamento é quando uma máquina com múltiplas conexões de rede decide onde entregar os pacotes IP que recebeu, para que cheguem ao seu destino (Guia Foca GNU/Linux - Avançado {Gleydson Mazioli da Silva <gleydson@cipsga.org.br>}).
Para configurar a tabela de roteamento vamos usar o comando 'route' e os demais comandos: ping, traceroute, arp, tracepath, que servem para verificar se o roteador está funcionando corretamente.
* route: o comando route serve para mostrar e manipular a tabela principal de rotas. Quando utilizado sem argumentos ele mostra a tabela de rotas.
* ping: o ping já deve ser um velho conhecido de todos que trabalham com redes de computadores. Ele serve para enviar requisições ICMP de "echo request" e fica escutando pelos pacotes ICMP de "echo reply". No entanto, o ping serve também para mostrar a rota que os pacotes ICMP fazem, tanto na "ida" quanto na "volta". Para tanto, basta utilizar a opção "-R" do ping.
* traceroute: o comando traceroute é utilizado para traçar rotas até um determinado IP. Ao contrário do "ping -R", o traceroute resolve os nomes (podendo-se desabilitar isso com a opção "-n") e é capaz de traçar uma rota mesmo que o host não exista ou esteja inacessível. Obviamente o comando só irá traçar a rota até que um roteador responda com um "unreacheable" ou até o TTL expirar.
* tracepath: o tracepath é um comando bastante similar ao traceroute, mas mostra o pmtu do caminho.
* arp: o comando arp serve para listar e modificar a tabela arp do kernel. A tabela arp associa endereços IP à endereços de "hardware" (no caso do ethernet, aos MAC address). Na sua forma mais básica, sem parâmetros, o comando arp simplesmente lista a tabela arp (utilize a opção -n para não resolver nomes).
* arping: o comando arping serve para enviar requisições arp e/ou ICMP. O comando arping, além de aceitar nome de hosts, endereços IPs e endereços de hardware, pode usar também como origem e/ou destino endereços de broadcast.
Mão na massa
O motivo do roteador é que as duas sub-redes se falem. Queremos que o S1 e o S2 se comuniquem e vice-versa.
Também queremos que as estações da REDE-001 se comuniquem com estações da REDE-002 e vice-versa.
Para que isso funcione e preciso configurar a tabela de rotas no ROTEADOR e também nos dois servidores(S1 e S2).
ROTEADOR:
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
Essa rota serve para quando um pacote (datagrama) tiver como destino a rede 192.168.0.0 (REDE-001), o seu gateway seja 192.168.0.1 (S1).
# route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.0.1
Essa rota serve para quando um pacote tiver como destino a rede 172.16.0.0 (REDE-002), o seu gateway seja 172.16.0.1 (S2).
S1:
# route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.0.5
Essa rota serve para quando um pacote tiver como destino a rede 172.16.0.0 (REDE-002), o seu gateway seja 192.168.0.5 (ROTEADOR).
S2:
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.5
Essa rota serve para quando um pacote tiver como destino a rede 192.168.0.0 (REDE-002), o seu gateway
Testando o roteador
Para testar o funcionamento do roteador, basta usar os comandos já citados.
Pingando do S1 para o S2:
# ping -R 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(124) bytes of data.
64 bytes from 172.16.0.1: icmp_seq=1 ttl=63 time=0.672 ms
RR:
192.168.0.1
172.16.0.5
172.16.0.1
172.16.0.1
192.168.0.5
192.168.0.1
64 bytes from 172.16.0.1: icmp_seq=2 ttl=63 time=0.519 ms (same route)
64 bytes from 172.16.0.1: icmp_seq=3 ttl=63 time=0.516 ms (same route)
--- 172.16.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2012ms
rtt min/avg/max/mdev = 0.516/0.569/0.672/0.072 ms
Traçando a rota do S2 para o S1:
# traceroute 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 38 byte packets
1 172.16.0.5 (172.16.0.5) 0.239 ms 0.114 ms 0.099 ms
2 192.168.0.1 (192.168.0.1) 0.367 ms 0.347 ms 0.337 ms
Pingando do S2 para uma estação da REDE-001 (S1):
# ping -R 192.168.0.242
PING 192.168.0.242 (192.168.0.242) 56(124) bytes of data.
64 bytes from 192.168.0.242: icmp_seq=0 ttl=126 time=1.14 ms
NOP
RR:
172.16.0.1
192.168.0.5
192.168.0.1
192.168.0.242
192.168.0.1
172.16.0.5
172.16.0.1
64 bytes from 192.168.0.242: icmp_seq=1 ttl=126 time=1.18 ms
NOP (same route)
64 bytes from 192.168.0.242: icmp_seq=2 ttl=126 time=1.17 ms
NOP (same route)
--- 192.168.0.242 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2015ms
rtt min/avg/max/mdev = 1.148/1.168/1.181/0.042 ms, pipe 2
Conclusão
Neste artigo foi mostrado como se monta um roteador de sub-redes com servidores.
Fonte: vivaolinux
Postado Por: RedDeviL
Este artigo foi criado com intuito de passar a minha experiência em transformar o Linux em um roteador de duas sub-redes com servidores. É bem simples o seu conteúdo, mas quando eu fui fazer um roteador na empresa onde trabalho, não encontrei em lugar nenhum como que se faz um roteador para duas sub-redes com servidores, em minhas buscas encontrei apenas para duas sub-redes sem servidores.
Para você entender melhor, vou "desenhar" em ASCII as duas sub-redes com os seus servidores respectivos:
Legenda:
S1 -> Servidor 001
S1-0* -> Estações do servidor 001
S2 -> Servidor 002
S1-0* -> Estações do servidor 002
REDE-001 -> 192.168.0.0/255.255.255.0
REDE-002 -> 172.16.0.0/255.255.0.0
Informações:
S1:
* SO: Linux Slackware 9.1
* Kernel: 2.4.23
* eth0: 00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
INTERNET:
* eth1: 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
* NET: 192.168.0.1 NETMASK: 255.255.255.0
S2:
* SO: Linux CentOS 3.0
* Kernel: 2.4.21
* eth0: 04:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705_2 Gigabit Ethernet (rev 03)
INTERNET:
* eth1: 04:05.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705_2 Gigabit Ethernet (rev 03)
* NET: 172.16.0.1 NETMASK: 255.255.0.0
Roteador:
* SO: Linux Slackware 10.0
* Kernel: 2.4.26
* eth0: 00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
* NET: 192.168.0.5 NETMASK: 255.255.255.0
* eth1: 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 70)
* NET: 172.16.0.5 NETMASK: 255.255.0.0
* S1-0* - S2-0*:
* SO: Windows XP
OBS: Os servidores S1 e S2 são servidores de internet, web, samba, dhcp.
Um pouco de teoria
Roteamento é quando uma máquina com múltiplas conexões de rede decide onde entregar os pacotes IP que recebeu, para que cheguem ao seu destino (Guia Foca GNU/Linux - Avançado {Gleydson Mazioli da Silva <gleydson@cipsga.org.br>}).
Para configurar a tabela de roteamento vamos usar o comando 'route' e os demais comandos: ping, traceroute, arp, tracepath, que servem para verificar se o roteador está funcionando corretamente.
* route: o comando route serve para mostrar e manipular a tabela principal de rotas. Quando utilizado sem argumentos ele mostra a tabela de rotas.
* ping: o ping já deve ser um velho conhecido de todos que trabalham com redes de computadores. Ele serve para enviar requisições ICMP de "echo request" e fica escutando pelos pacotes ICMP de "echo reply". No entanto, o ping serve também para mostrar a rota que os pacotes ICMP fazem, tanto na "ida" quanto na "volta". Para tanto, basta utilizar a opção "-R" do ping.
* traceroute: o comando traceroute é utilizado para traçar rotas até um determinado IP. Ao contrário do "ping -R", o traceroute resolve os nomes (podendo-se desabilitar isso com a opção "-n") e é capaz de traçar uma rota mesmo que o host não exista ou esteja inacessível. Obviamente o comando só irá traçar a rota até que um roteador responda com um "unreacheable" ou até o TTL expirar.
* tracepath: o tracepath é um comando bastante similar ao traceroute, mas mostra o pmtu do caminho.
* arp: o comando arp serve para listar e modificar a tabela arp do kernel. A tabela arp associa endereços IP à endereços de "hardware" (no caso do ethernet, aos MAC address). Na sua forma mais básica, sem parâmetros, o comando arp simplesmente lista a tabela arp (utilize a opção -n para não resolver nomes).
* arping: o comando arping serve para enviar requisições arp e/ou ICMP. O comando arping, além de aceitar nome de hosts, endereços IPs e endereços de hardware, pode usar também como origem e/ou destino endereços de broadcast.
Mão na massa
O motivo do roteador é que as duas sub-redes se falem. Queremos que o S1 e o S2 se comuniquem e vice-versa.
Também queremos que as estações da REDE-001 se comuniquem com estações da REDE-002 e vice-versa.
Para que isso funcione e preciso configurar a tabela de rotas no ROTEADOR e também nos dois servidores(S1 e S2).
ROTEADOR:
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
Essa rota serve para quando um pacote (datagrama) tiver como destino a rede 192.168.0.0 (REDE-001), o seu gateway seja 192.168.0.1 (S1).
# route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.0.1
Essa rota serve para quando um pacote tiver como destino a rede 172.16.0.0 (REDE-002), o seu gateway seja 172.16.0.1 (S2).
S1:
# route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.0.5
Essa rota serve para quando um pacote tiver como destino a rede 172.16.0.0 (REDE-002), o seu gateway seja 192.168.0.5 (ROTEADOR).
S2:
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.5
Essa rota serve para quando um pacote tiver como destino a rede 192.168.0.0 (REDE-002), o seu gateway
Testando o roteador
Para testar o funcionamento do roteador, basta usar os comandos já citados.
Pingando do S1 para o S2:
# ping -R 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(124) bytes of data.
64 bytes from 172.16.0.1: icmp_seq=1 ttl=63 time=0.672 ms
RR:
192.168.0.1
172.16.0.5
172.16.0.1
172.16.0.1
192.168.0.5
192.168.0.1
64 bytes from 172.16.0.1: icmp_seq=2 ttl=63 time=0.519 ms (same route)
64 bytes from 172.16.0.1: icmp_seq=3 ttl=63 time=0.516 ms (same route)
--- 172.16.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2012ms
rtt min/avg/max/mdev = 0.516/0.569/0.672/0.072 ms
Traçando a rota do S2 para o S1:
# traceroute 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 38 byte packets
1 172.16.0.5 (172.16.0.5) 0.239 ms 0.114 ms 0.099 ms
2 192.168.0.1 (192.168.0.1) 0.367 ms 0.347 ms 0.337 ms
Pingando do S2 para uma estação da REDE-001 (S1):
# ping -R 192.168.0.242
PING 192.168.0.242 (192.168.0.242) 56(124) bytes of data.
64 bytes from 192.168.0.242: icmp_seq=0 ttl=126 time=1.14 ms
NOP
RR:
172.16.0.1
192.168.0.5
192.168.0.1
192.168.0.242
192.168.0.1
172.16.0.5
172.16.0.1
64 bytes from 192.168.0.242: icmp_seq=1 ttl=126 time=1.18 ms
NOP (same route)
64 bytes from 192.168.0.242: icmp_seq=2 ttl=126 time=1.17 ms
NOP (same route)
--- 192.168.0.242 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2015ms
rtt min/avg/max/mdev = 1.148/1.168/1.181/0.042 ms, pipe 2
Conclusão
Neste artigo foi mostrado como se monta um roteador de sub-redes com servidores.
Fonte: vivaolinux
Postado Por: RedDeviL