Hello World

Nos livros sobre programação, quase sempre o primeiro exercício é um “Hello World” (olá mundo), onde você escreve um pequeno programa destinado a simplesmente mostrar uma mensagem na tela. Geralmente ele contém uma única linha, ou algumas poucas linhas, como este exemplo de um Hello World em C:

main () {
printf(“Hello World”);
}

A partir desse exemplo simples, o livro vai então se aprofundando na sintaxe da linguagem, introduzindo exercícios progressivamente mais complexos.

Em se tratando de redes, um “Hello Word” seria montar uma rede simples entre dois micros e testar a conectividade entre os dois usando o ping ou outro utilitário. Vamos então começar com este exemplo simples para “quebrar o gelo” e a partir daí vamos nos aprofundar ao longo do restante do livro.

Como comentei a pouco, praticamente todas as placas-mãe e notebooks trazem placas de rede onboard, o que torna a tarefa de montar a rede bastante simples. Existe a opção de montar a rede usando um switch, ou simplesmente usar um cabo cross-over para ligar diretamente os dois micros. Um cabo cross-over é um cabo de rede crimpado com uma sequência diferente nas duas pontas, que permite a comunicação direta entre os dois micros.

O switch ou o cabo cross-over resolvem o problema da ligação física entre os micros, o que equivale aos níveis 1 e 2 do modelo OSI. Falta agora configurar o TCP (níveis 3 e 4), de forma que eles possam efetivamente se comunicar.

Falando assim pode parecer difícil, mas na prática tudo o que você precisa fazer é usar dois endereços sequenciais (ou simplesmente escolher dois endereços diferentes dentro da mesma faixa de endereços) como “192.168.1.1” e “192.168.1.2” ou “10.0.0.1” e “10.0.0.2” e usar a mesma máscara de sub-rede em ambos:

A máscara diz qual parte do endereço IP é a identificação da rede e qual é a identificação do PC (chamado de host) dentro dela. A máscara “255.255.255.0”, por exemplo, diz que a última parte do endereço é a identificação do host e os três números iniciais são a identificação da rede, de forma que temos o host “1” e o host “2” dentro da rede “192.168.1”.

Os endereços começados com “10” e “192.168” (entre outros) não são usados na Internet e por isso são livres para o uso em redes locais. Existem outros endereços reservados, além dos endereços usados para pacotes de broadcast, para a identificação da rede, para a interface de loopback e outros casos especiais e exceções que veremos ao longo do livro.

O gateway e os dois endereços de DNS são necessários para acessar a Internet. O gateway é o “portão de saída da rede”, o host que tem a conexão com a Internet e roteia os pacotes dos demais. Quando você compartilha a conexão entre vários micros, o gateway da rede é sempre o PC (ou o modem ADSL) que está compartilhando a conexão. Os servidores DNS por sua vez são necessários para converter os nomes de domínio em endereços IP, o que é uma função essencial. Além dos DNS do provedor, você pode utilizar qualquer servidor público, ou mesmo instalar seu próprio servidor.

Ao usar dois notebooks, ou desktops com placas wireless, existe também a opção de criar uma rede ad-hoc, onde as duas placas wireless se comunicam diretamente, sem necessidade de usar um ponto de acesso.

Diferente do que temos ao usar um cabo cross-over, as redes ad-hoc podem conter vários PCs. Você pode inclusive compartilhar a conexão entre eles obtendo, na prática, algo próximo do que teria ao usar um ponto de acesso. A principal desvantagem é que em uma rede ad-hoc o alcance da rede é bem menor do que ao utilizar um ponto de acesso, já que a potência dos transmissores usados nas placas é menor.

Configurar a rede ad-hoc exige alguns passos adicionais, como veremos em detalhes no final do capítulo 3, mas uma vez estabelecida a conexão, a configuração dos endereços é igual à de uma rede cabeada.

No Windows XP, você configura a rede no Painel de Controle > Conexões de Rede, acessando as propriedades da conexão e em seguida as propriedades do protocolo TCP/IP. No Linux você pode configurar o IP e ativar a rede, independentemente da distribuição usada, usando o comando “ifconfig”, como em:

# ifconfig eth0 192.168.1.1 up

A menos que você tenha mais de uma placa de rede, sua placa cabeada será sempre a eth0. O “192.168.1.1” é o IP que está sendo atribuído e o “up” conclui o comando, dizendo que a placa deve ser ativada imediatamente. Graças ao uso do TCP/IP, não temos problemas de compatibilidade ao misturar micros com Windows e Linux na rede, já que todos falam a mesma língua.

O ping é o teste mais básico para testar a conectividade entre dois micros. Ele é popular justamente porque é simples e porque está disponível em quase todos os sistemas operacionais, incluindo Linux e Windows. Para usá-lo, basta especificar o endereço, como em “ping 192.168.1.1”:

No Windows o ping é executado 4 vezes, enquanto no Linux ele fica sendo executado indefinidamente até que você encerre o comando pressionando “Ctrl+C”, ou fechando o terminal. Na versão Linux, você pode também especificar um número de repetições usando o parâmetro “-c” ou especificar um intervalo, usando o parâmetro “-i”. Para emitir uma sequência de 15 pings, com intervalo de 30 segundos entre cada um, por exemplo, você usaria o comando “ping -c 15 -i 30 endereço-de-destino”.

O ping indica o tempo que o sinal demora para ir de um micro a outro, incluindo o tempo da resposta, o que permite medir a latência da conexão. No screenshot anterior, por exemplo, o tempo de resposta é menor que 1 ms, já que são dois micros dentro da rede local, mas na Internet é muito difícil obter pings inferiores a 100 ms. No caso de servidores distantes, ou no caso de conexões via celular, ou via satélite, não é incomum obter pings de 1000 ms ou mais. Um ping elevado não chega a atrapalhar tanto na hora de navegar ou baixar e-mails, mas é fatal ao rodar games multiplayer, sobretudo nos jogos de tiro em primeira pessoa.

Como o ping pode ser bloqueado no firewall (e muitos o fazem por padrão), o fato de um host da Internet não responder ao ping não significa que ele não esteja lá, apenas que não está respondendo a suas requisições.

Uma forma mais segura (e mais invasiva) de descobrir se o host está online é usar o nmap para localizar portas abertas. Dessa forma, se o host estiver com pelo menos uma porta aberta, ele aparece no teste, mesmo que o firewall tenha sido configurado para bloquear pings. Em uma máquina Linux (com o nmap instalado), você poderia testar cada uma das 65536 portas TCP de um micro da rede rodando (como root) o comando abaixo:

# nmap -sS -P0 -p 0-65535 192.168.1.1

Ferramentas como o nmap são genericamente chamadas de portscans, ou seja, scanners de portas. A função deles é testar cada uma das portas disponíveis, verificando quais serviços estão ativos na máquina de destino. Em geral, eles são o ponto de partida para um ataque, já que permitem descobrir quais portas estão abertas e quais serviços estão ativos, o que dá uma boa idéia sobre os pontos vulneráveis da máquina, mas eles podem ser usados também para melhorar a segurança da sua rede e encontrar falhas de segurança, como veremos em mais detalhes no capítulo 5.

Depois de testada a conectividade entre os dois micros, a rede está pronta para ser usada. Você pode aproveitar para compartilhar arquivos, jogar uma partida de algum game em rede, compartilhar a impressora, acessar o outro micro remotamente, compartilhar a conexão ou qualquer outra coisa que tenha em mente. Hoje em dia, praticamente tudo pode ser feito via rede. Se você quiser ir direto à ação, pode dar uma olhada no capítulo 6, onde veremos diversos exemplos práticos.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X