interligando duas redes ipv6 através de rede pública ipv4 ...jamhour/rss/tccrss09a/joecir de...
TRANSCRIPT
Interligando duas redes IPV6 através de rede
pública IPV4 (internet) utilizando a ferramenta OpenVPN
Rafael Amarantes, Joecir de Oliveira Pinto
Curso de Especialização em Redes e Segurança de Sistemas
Pontifícia Universidade Católica do Paraná
Curitiba, março de 2010
Resumo
O objetivo deste artigo é descrever a implantação de uma rede VPN entre dois
estabelecimentos localizados em cidades distintas, que compartilham os mesmos recursos tais
como impressoras e servidores. Utilizando como ferramenta para realizar esta conexão o
OpenVPN, ferramenta esta que está instalado tanto na matriz quanto na filial em servidores
com distribuição Linux Slackware. Além do embasamento teórico, serão abordado as
configurações e equipamentos utilizados, a topologia de rede, testes e resultados obtidos.
1 Introdução
Com o atual crescimento da qualidade e disponibilidade dos links de acesso as redes
de dados, e em especial a internet, acabaram tornando-se ferramentas interessantes e valiosas
para empresas e instituições para redução de custos e garantia de serviço em comunicação,
conectividade e transferência de informações.
A principal motivação para o desenvolvimento deste artigo foi buscar uma maneira de
realizar a adequada conexão entre duas organizações independentes e reais, em que durante
este trabalho buscaram simular uma organização única, sendo sua sede localizada na cidade
de Mafra - SC, e sua filial localizada na cidade de Curitiba - PR, buscando desta forma
facilitar o compartilhamento de informações, acesso a servidores e arquivos, e unificação de
informações. Ambas as redes utilizam o protocolo IPV6. A estrutura utilizada para o
desenvolvimento do trabalho já está implementada, porém são estruturas sem nenhuma
ligação física ou lógica, neste trabalho será apresentado apenas as configurações necessários
para a interligação destas estruturas.
Visando estabelecer esta conexão, descreveremos neste trabalho o atual cenário, e as
configurações necessárias em todo o processo para o estabelecimento da rede VPN utilizando
para tal, o software OpenVPN [1].
2 VPN
Segundo [2], Virtual Private Network (VPN), ou Rede Privada Virtual é uma rede
privativa, construída sobre a infra-estrutura de uma rede pública, geralmente a Internet.
A VPN pode utilizar tecnologias de criptografia, assegurando desta forma, privacidade
e integridade das comunicações.
A possibilidade de criar esta rede sobre a Internet fornece vantagens sobre os links
dedicados e de longa distância, como redução de custos, confiabilidade, e velocidade de
implantação. Sua flexibilidade possibilita que empresas criem redes integrando escritórios,
filiais, fábricas, entre outras em um curto espaço de tempo.
Outro benefício importante a destacar, é que a conexão LAN-internet-LAN por não
ficar vinculado a um link dedicado ou longa distância, também não fica vinculado a uma
empresa provedora de acesso, e caso seja de interesse da corporação a utilização de outro
provedor, não haverá grandes problemas para manter a conexão.
A primeira e mais importante função de uma VPN é a segurança das informações que
estão trafegando, pois visto que os dados serão transmitidos por um meio não seguro
(internet), eles devem ser protegidos de forma a não permitir que sejam modificados ou
interceptados [3].
Outro serviço oferecido pelas VPNs, porém que não será abordado neste artigo, são as
conexões dial-up criptografadas, que possibilitam usuários móveis ou remotos, acessarem
suas respectivas corporações.
2.1 Funcionamento da VPN
Figura 1 - diagrama básico de uma VPN
Basicamente, o funcionamento de uma VPN se faz através da conexão entre dois hosts que são
responsáveis por realizar uma conexão protegida do meio externo (similar a um túnel de informações)
que será utilizada para a transmissão das informações entre as duas redes.
Conforme pode ser visto através da figura 1, os dados gerados em uma rede com o
objetivo de atingir a rede remota, são transmitidos através deste host (que está sendo usado
como roteador), para realizar esta transmissão, este roteador criptografa toda a informação e
encapsula dentro de um pacote ipv4 que será lançado a internet com destino a outra ponta,
onde será desencapsulado, e posteriormente descriptografado, para então seguir até o seu
destino final.
3 Topologia e Cenário
Figura 2 - Topologia da Rede
Conforme figura 2, nosso atual cenário é constituído de duas redes, cada uma
possuindo uma topologia e estrutura diferente. A matriz conta com um servidor, constituindo
o principal elemento da rede. Este servidor possui duas interfaces de rede, uma conectada
junto ao modem de conexão a internet, e a outra conectada a um switch que por sua vez
conecta-se a um AP wireless, e as demais estações via cabo. Este servidor contém o serviço
de DHCP(IPv4), Router Advertisement(IPv6), roteamento, NAT e o serviço VPN atuando
como servidor.
A Filial conta com um servidor, também constituindo o principal elemento da rede,
Este servidor também possui duas interfaces de rede, uma conectando-se ao modem, e a outra
conectando ao switch, o qual é conectado aos demais componentes da rede, tais como AP
Wireless, servidores, e demais estações de trabalho. Este servidor está atualmente rodando o
serviço de roteamento, Firewall (iptables), Router Advertisement(IPv6) e VPN atuando como
cliente.
Ambas as redes originalmente estavam implementadas apenas em ipv4, a utilização do
protocolo ipv6 iniciou-se de forma paralela em ambas as redes.
Por fatores de compatibilidade como por exemplo a conexão a internet e acesso a
servidores por meio externo, todos os dispositivos irão funcionar com ambos os protocolos
lado a lado(ipv4 e ipv6), situação tecnicamente chamada de dual-stack.
Como a implementação da rede ipv6 está ocorrendo de forma gradativa, em um
primeiro momento, apenas os elementos envolvidos neste trabalho receberam endereçamentos
ipv6, os demais (que não possuem envolvimento), como por exemplo alguns hosts que não
necessitem acesso a estrutura proposta, ainda permanecem apenas com o endereçamento
IPv4.
Existem mecanismos de transição que automatizam e facilitam o processo de
migração das redes ipv4 para ipv6, dentre estes os mais conhecidos são ISATAP e 6to4. Estes
mecanismos depois de configurados, permitem o tunelamento dos dados de maneira
automática, isto é, não é necessário pré-configurar o túnel para utilizá-lo, esta característica
permite que a rede se torne escalável e de fácil manutenção. Maiores informações referentes a
mecanismos de transição podem ser obtidos em [7].
Neste trabalho não foi utilizado nenhum destes mecanismos, pois buscando a
objetividade do trabalho buscamos realizar as configurações manualmente, desta forma todos
os hosts envolvidos fora configurados manualmente utilizando dual-stack, ou seja, ambas as
pilhas IPv4 e IPv6. O encapsulamento conforme será descrito, ocorrerá apenas quando o
tráfego for destinado pelo roteador à rede remota, desta forma passando pelo túnel. Já o
trafego destinado a internet ou outras redes IPv4 continuam seguindo o caminho normal (rede
interna - modem ADSL - internet).
Para a autenticação de um túnel VPN, pode-se utilizar tanto chaves estáticas, quanto
certificados de segurança.
Neste trabalho, iremos utilizar chaves compartilhadas e estáticas, que oferecem o
benefício de serem mais simples de serem implementadas, e não necessitam de PKI (estrutura
de chave pública) para mantê-las. Por outro lado, são menos eficientes no quesito segurança e
escalabilidade, para maiores informações a respeito ver [1].
O tamanho das chaves geradas é de 2048 bits, sendo este o tamanho padrão de chaves
geradas pelo OpenVPN, e que já oferece uma boa segurança nesta modalidade de
autenticação.
4 Equipamentos utilizados
Neste capítulo serão citados equipamentos utilizados no desenvolvimento deste
trabalho, alguns equipamentos que fazem parte da estrutura serão omitidos por não serem de
relevância para este artigo.
4.1 Filial
Na filial foi utilizado como Firewall, Default Gateway, e cliente VPN um servidor
Linux Slackware, com kernel 2.6.27.7-smp em um computador Intel® Celeron® CPU
1.8GHz, 128 MB memória, 80GB de HD.
Um Host para realização de testes na rede, utilizando o Sistema Operacional Windows
XP SP3.
Como ponto central de conexão entre os componentes da rede, foi utilizado um switch
não gerenciável de 24 portas do modelo D-LINK DES-1024D.
Para conexão junto à internet, foi utilizado um modem D-LINK DSL-500B conectado
pela GVT, a uma velocidade de 10Mbps.
4.2 Matriz
Na matriz, para uso como Default Gateway, e servidor VPN, foi utilizado um
computador com processador AMD Athlon® 1.8 GHz, 512 MB RAM, 60 GB de HD.
Também foram utilizados dois hosts possuindo como sistema operacional o Linux
Educacional, distribuição derivada do Debian, e muito utilizada em escolas públicas. Um
destes hosts será nosso servidor WEB o qual estará rodando o Servidor WEB Apache.
Para conexão junto à internet, foi utilizado um modem D-LINK DSL-500B conectado
pela Brasil Telecom, a uma velocidade de 1Mbps.
5 Principais aspectos de configurações
Para a realização do trabalho e dos testes foram configurados os equipamentos
conforme o capitulo abaixo:
5.1 Matriz
5.1.1 Modem
Para que o host responsável por atuar como Servidor VPN pudesse receber as
requisições de conexão externas, é necessário realizar a configuração do modem através de
regras de NAT que permitam e encaminhem os pacotes que cheguem ao modem com a porta
especificada para o host correto, neste trabalho para a conexão VPN será utilizado a porta
5000.
Conforme pode ser visto através da figura 3, a atual regra configurada no modem está
recebendo pacotes pela porta 5000, e encaminhando para a rede interna também pela porta
5000 para o ip 10.1.1.4/24 (atual ip da interface externa do servidor VPN), este modem está
configurado com o ip na LAN como 10.1.1.1/24.
Figura 3 - Configuração do NAT no modem
5.1.2 Servidor
5.1.2.1 Interfaces
No servidor, conforme pode ser visto através da figura 4, foi configurado na interface
interna (a interface ligada a LAN propriamente dita), o Ipv4 192.168.5.1/24, e Ipv6 fef::1/64,
já para a interface externa (a conectada ao modem), foi utilizado o ip 10.1.1.4/24.
Figura 4 - IPs das interfaces do Servidor
5.1.2.2 Configurações VPN
Para a utilização da VPN neste trabalho, foi utilizado o Software OpenVPN na versão
2.0.9, disponível por padrão na distribuição Slackware em uso.
Neste artigo, só será apresentado as configurações mais pertinentes ao trabalho, sendo
omitido configurações irrelevantes, caso haja interesse, pode-se ser verificado outras
configurações disponíveis através do manual, utilizando o comando ‘man openvpn’.
As configurações abaixo mostradas, são as configurações localizadas no arquivo
server.conf, o qual é o arquivo utilizado como configuração do serviço nesta máquina.
Conforme pode ser visto abaixo, acima de cada linha de configuração, existe uma explicação
detalhando sua utilidade.
Arquivo server.Conf:
1 # Usar como interface o driver TUN
2 dev tun
3 # 192.168.10.1 ip que será assumido na matriz (apenas para o túnel)
4 # 192.168.10.2 ip remoto, ou seja, esse será o ip da filial (apenas para o túnel)
5 ifconfig 192.168.10.1 192.168.10.2
6 # Entra no diretório onde se encontram os arquivos de configuração
7 cd /etc/openvpn
8 # Indica que esse túnel possui uma chave de criptografia
9 secret /etc/openvpn/keys/chave2
10 # OpenVPN usa a porta 5000 por padrão.
11 # Cada túnel do OpenVPN deve usar uma porta diferente
12 port 5000
13 # Protocolo a ser usado (neste caso o TCP)
14 proto tcp-server
15 # Usuário que rodará o daemon do OpenVPN
16 user nobody
17 # Grupo que rodará o daemon do OpenVPN
18 group nobody
19 # Usa a biblioteca lzo
20 comp-lzo
21 # Envia um ping para a parte remota a cada 15 segundos para manter
22 # a conexão de pé em firewall statefull
23 ping 15
24 # Nível de log (utilizado para eventos de log)
25 verb 3
26 persist-key
27 persist-tun
28 float
Note-se que estamos utilizando neste caso o protocolo TCP, porém pode-se utilizar
também o protocolo UDP, visto que neste caso a falta de confirmação de pacotes não é
necessariamente um problema, pois as redes internas irão se encarregar de manter as
confirmações dos pacotes, e caso a rede externa (o túnel) apresente problema, as redes
internas por conseqüência irão perceber a falha.
Conforme pode ser visto no arquivo de configuração, estaremos utilizando uma chave
de criptografia. Esta chave foi criada através do comando ‘openvpn --genkey --secret
/etc/openvpn/keys/chave2’, nota-se que o caminho e nome da chave podem ser alterados
conforme a necessidade, no entanto é necessário configurar corretamente o arquivo de
configuração.
Esta chave foi copiada para o servidor cliente de acesso localizado na estrutura da
filial para seu uso durante a configuração, este assunto será abordado nos próximos capítulos.
Para realizar a inicialização do Daemon OpenVPN, foi utilizado um script que realiza
a chamada do Daemon, bem como carrega o módulo necessário e configura uma regra de
roteamento ipv6 necessária para a comunicação entre as duas redes. O conteúdo deste
script pode ser visto na caixa abaixo:
Para que este script fosse executado automaticamente, foi inserido uma chamada para
este junto ao script executado durante a inicialização do sistema “/etc/rc.d/rc.local”.
5.1.2.3 Router Advertisement
Para a utilização do IPv6, dado suas características, é necessário que os roteadores
informem aos hosts que estes são caminhos para as redes externas, permitindo assim que os
hosts se auto-configurem com os endereços ipv6 corretos, maiores informações podem ser
encontradas em materiais específicos sobre IPv6.
Para realizar esta tarefa, utilizamos para tal o Daemon radvd, disponível por padrão na
distribuição Slackware em uso neste trabalho.
O comando utilizado para iniciar o Daemon foi ‘/usr/local/sbin/radvd -C
/etc/radvd.conf restart’, sendo que /etc/radvd.conf é o caminho do arquivo de configuração do
radvd. Para executar o serviço automaticamente após uma inicialização do sistema, este
comando foi inserido no script de inicialização do sistema em /etc/rc.d/rc.local.
Segue abaixo o arquivo radvd.conf:
5.2 Filial
Na filial, como a requisição para a conexão parte da rede interna, não é necessária
nenhuma regra de NAT ou afins no modem.
5.2.1 Servidor
5.2.1.1 Interfaces
No servidor da filial, conforme pode ser visto através da figura 5, foi configurado na
interface interna (a interface ligada a LAN propriamente dita), o IPv4 192.168.1.1/24, e Ipv6
fee::2/64, já para a interface externa (a conectada ao modem), foi utilizado o ip 10.0.0.2/24.
#/bin/sh
#carrega o modulo que permite a utilização de uma interface TUN
modprobe tun
#inicialização do openvpn e caminho para as configurações
openvpn --config /etc/openvpn/server.conf &
#regra de roteamento ipv6
ip -6 route add fee::/64 dev tun0
interface eth1 { AdvSendAdvert on; prefix fef::/64 { AdvOnLink on; AdvAutonomous on; }; };
Figura 5 – Ips das Interfaces do Servidor na filial
5.2.1.2 Configurações VPN
Conforme citado no cap. 5.1.2.2 (Configurações VPN na Matriz), só serão citados
configurações pertinentes, bem como a versão do daemon e distribuição são as mesmas.
As configurações abaixo mostradas, são as configurações localizadas no arquivo
client.conf, o qual é o arquivo utilizado como configuração do serviço nesta máquina.
Conforme pode ser visto abaixo, acima de cada linha de configuração, existe uma explicação
detalhando sua utilidade.
1 # Usar como interface o driver TUN
2 dev tun
3 # 192.168.10.1 ip que será assumido na matriz (apenas para o túnel)
4 # 192.168.10.2 ip remoto, ou seja, esse será o ip da filial (apenas para o túnel)
5 ifconfig 192.168.10.2 192.168.10.1
6 # indica que é cliente, e apresenta o ip do servidor para a conexão
7 remote dinossauro.sytes.net
8 # acessa a pasta contendo as configurações
9 cd /etc/openvpn
10 # informa o caminho e o arquivo contendo a chave utilizada para realizar a conexão
11 secret /etc/openvpn/keys/chave2
12 # informa o protocolo a ser utilizado
13 proto tcp-client
14 # informa a porta a ser utilizada
15 port 5000
16 # informa o usuário e grupo que o Daemon utilizará
17 user nobody
18 group nobody
19 comp-lzo
20 ping 15
21 verb 3
Nota-se que são poucas as mudanças dentre o arquivo de configuração da matriz para
a filial, as mais importantes são na linha 5, onde inverte-se os ips, pois o primeiro é o ip de
origem e o segundo de destino, na linha 7, onde está indicando que é um cliente e deve-se
conectar ao servidor descrito, e na linha 13, onde altera-se os parâmetros do protocolo usado.
A chave de criptografia informada na linha 11, é a mesma chave utilizada no servidor
na matriz, que foi previamente copiada para a pasta mostrada na configuração.
Igualmente na matriz, para realizar a inicialização do Daemon OpenVPn, foi utilizado
um script que carrega o módulo TUN, utilizado para a interface da VPN, o comando de
inicialização da VPN, e uma regra de roteamento IPv6 para o correto funcionamento da rede,
segue abaixo o script completo:
Para que este script fosse executado automaticamente, foi inserido uma chamada para
este junto ao script executado durante a inicialização do sistema “/etc/rc.d/rc.local”.
5.2.1.3 Router Advertisement
Igualmente o apresentado em 5.1.2.3, os hosts IPv6 necessitam informações dos
roteadores para que possam se auto-configurarem com endereços IPv6 corretos, a
configuração do daemon radvd utilizado para esta finalidade.
As explicações e configurações não diferem do apresentado em 5.1.2.3, dado que é a
mesma finalidade com a única diferença que é na rede filial ao invés da matriz (mudando
assim, a rede a ser anunciada).
O Arquivo de configuração é apresentado logo abaixo:
5.2.1.4 Configuração do iptables Como na estrutura da filial atualmente está sendo utilizado a aplicação iptables como
ferramenta para o firewall, foi necessário a inclusão de regras junto ao script de incialização
do iptables, as regras e suas explicações são mostradas abaixo:
#!/bin/sh
#carrega o modulo que permite a utilização de uma interface TUN
modprobe tun
#inicialização do openvpn e caminho para as configurações
openvpn --config /etc/openvpn/client.conf &
#rotas
ip -6 route add fef::/64 dev tun0
interface eth1 { AdvSendAdvert on; prefix fee::/64 { AdvOnLink on; AdvAutonomous on; }; };
5.2.2.1 Servidor de Arquivos/DHCP/DNS O Servidor de Arquivos da rede da Filial, além de sua função principal, também
possui a função de ser o servidor de DHCP e DNS desta rede.
O Serviço de DNS para identificar servidores que utilizam endereçamento IPv6 é de
fundamental importância, pois se com o uso de endereços IPv4 já era complicado para
usuários comuns utilizarem o endereço de rede diretamente, o problema se multiplica com o
uso do protocolo IPv6.
Tendo em vista este problema, Optou-se por criar entradas “AAAA” neste servidor,
neste primeiro momento apenas para identificar o servidor web e o default gateway da Matriz
através do endereço IPV6. Como citado no capitulo onde é apresentada a estrutura, este
servidor atualmente utiliza o SO Windows Server 2008, e as configurações das entradas
podem ser conferidas abaixo.
Figura 6 – Entradas do servidor DNS.
6 Problemas encontrados
Como muitas aplicações ainda não estão 100% adaptadas para o ipv6 ou ainda estão
em testes, foi necessário incluir entradas "AAAA" no servidor DNS contendo o ipv6 dos
servidores e hosts da rede que utilizavam ipv6, para serem melhores aceitos pelos serviços de
rede. Um exemplo deste problema foi com o acesso a páginas web localizada em servidores
IPV6, onde os navegadores não aceitavam o endereço ipv6 diretamente na linha de URL, mas
utilizando o nome o acesso foi realizado normalmente.
# Permite a conexões do servidor da filial ao servidor para a matriz. iptables -A OUTPUT -o eth1 -p tcp --dport 5000 -j ACCEPT # Permite a comunicação entre a matriz e a filial, uma vez que a conexão já esteja realizada. iptables -A INPUT -i eth1 -p tcp --sport 5000 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permite o fluxo de dados do tunel para a rede interna. iptables -A FORWARD -o TUN0 -j ACCEPT # Permite o fluxo de dados da rede interna para o tunel. iptables -A FORWARD -i TUN0 -j ACCEPT
Outro problema relevante, é que como alguns provedores de serviço ADSL,
bloqueiam algumas portas para contratos residenciais. Para resolver esse problema, foi
necessário utilizar portas fora do padrão para alguns serviços utilizados durante a
configuração, como por exemplo o SSH, FTP entre outros.
7 Procedimento de Testes e Avaliação
Para realização dos testes, confirmando o correto funcionamento da estrutura
montada, a metodologia adotada foi de realizar comunicações utilizando a camada de
aplicação do Protocolo TCP/IP nos enlaces de rede mais importantes do processo, bem como
nos hosts mais afastados (terminais de usuários).
● Serviços utilizados para testes de comunicação.
○ PING – Realiza testes de comunicação através do envio de pacotes ICMP;
○ SSH (Secure Shell) – Programa de computador e Protocolo de rede utilizado
para fornecer uma seção remota entre os hosts da rede;
○ Acesso HTTP – Através do browser Firefox para acesso páginas www (World
Wide Web) na rede remota.
7.1 Resultados dos testes
7.1.1 PING
Foi utilizado a ferramenta PING, por causa de sua característica de disparar pacotes
ICMP e aguardar o recebimento do retorno, o que confirma a existência do host de destino e a
correta comunicação entre os hosts envolvidos.
Para a realização deste teste, foi utilizado o Windows XP na rede da filial, de onde foi
disparado pacotes ICMP (Ping) contra dois hosts localizados na rede matriz. O servidor
responsável por manter a VPN identificado como “dinossauro.mafra”, e o servidor interno de
páginas WEB identificado como “www.intranet.mafra”.
Os testes podem ser verificados através da figura 10.
Figura 7 - Teste ping realizado utilizando Windows XP
7.1.2 Acesso WEB
Para realizar testes de conexão com o servidor web, foi criado uma página para
testes, que foi hospedada no servidor web (“www”) localizado no host1 na Matriz.
Através de um host com Windows XP na rede filial, foi acessado através do
navegador Firefox, a página hospedada através do endereço “www.intranet.mafra”, endereço
este que remete ao ip “fef::224:21ff:febb:cab9” conforme demonstrado no teste acima. A
figura abaixo demonstra o resultado do teste.
Figura 8 - Teste de acesso ao servidor Web utilizando Windows XP na filial.
8 Conclusão
O Desenvolvimento deste artigo, como também a implementação desta rede, nos
proporcionou uma grande experiência prática e teórica no que diz respeito às VPNs e as
demais configurações envolvidas necessárias para a conclusão deste trabalho.
Os resultados dos testes demonstram que a utilização desta ferramenta garante maior
segurança durante o fluxo de informações, e coopera para a maior praticidade e facilidade na
troca de informações entre dois locais distintos que fazem usos dos mesmos dados como
autenticação de rede, acesso a arquivos, servidores de e-mail, entre outros.
Fica assim, apresentado de forma clara, que se trata de uma excelente opção para
empresas que buscam a interconexão de forma rápida, segura e barata.
9 Referências bibliográficas.
[1] OpenVPN, Acesso em: Setembro de 2010, disponível em: http://openvpn.net/.
[2] Silva, Lino Sarlo. Virtual Private Network - VPN. São Paulo: Novatec editora, 2002.
[3] Chin, Liou Kuo. Rede privada Virtual - VPN. Acesso em: Setembro de 2010, disponível
em: http://www.rnp.br/newsgen/9811/vpn.html
[4] Morimoto, Carlos E. Servidores, Guia Pratico. São Paulo: GDH Press e Sul Editores,
2008.
[5] Alecrim, Emerson. O que é IPV6?. Acesso em: Agosto de 2010, disponível em:
http://www.infowester.com/ipv6.php
[6] Fagundes, Bruno. VPN Virtual Private Network. Acesso em: Setembro de 2010,
disponível em:
http://www.lncc.br/~borges/doc/VPN-Virtual%20Private%20Network.slides.pdf
[7] Davis, Joe. IPv6 Transition Technologies. Acesso em: Outubro de 2010, disponível em
http://technet.microsoft.com/en-us/library/bb726951.aspx.
[8] Kuten, Julio. Autenticação de clientes em rede sem fio com Radius. Curitiba: Pontifícia
Universidade Católica do Paraná, 2010.
[9] Tanenbaum, Andrew S. Redes de Computadores. São Paulo: Campus editora, 2003.
[10] Filippetti, Marco Aurelio. CCNA 4.1: Guia Completo de Estudo. São Paulo: Visual
Books, 2008.