Warriors of the net

Filme clássico produzido pela Metalab com o apoio da Ericsson que demonstra como funciona a comunicação entre dois computadores na Internet.

Site oficial: http://www.warriorsofthe.net/

 

 

Anúncios

Configurando rede no GNU/Linux

Desde que foi criado, o Linux é um sistema de rede… E mesmo que na sua casa tenha somente seu computador e você não esteja conectado à Internet, seu Linux continua sendo um sistema de rede.

Atualmente as distros trazem o Network Manager, que já ajuda o usuário a configurar a rede rapidamente. Mas, se você é um administrador de sistemas, não irá trabalhar com uma interface gráfica o tempo todo; assim, é importante conhecer os comandos e arquivos de configuração de rede.

Antes de falar sobre os arquivos de configuração, vou falar sobre as interfaces de rede, que são os dispositivos que irão formatar os pacotes e repassá-los através de cabo de rede, wireless, fibra ótica, etc.

Todos computadores que utilizam o protocolo TCP/IP, possuem uma interface de rede lógica, chamada loopback que responde no endereço 127.0.0.1. A interface loopback (lo), faz com que o sistema converse com ele mesmo. É o que chamo de “máquina bater papo com seu eu interior”.

Isso é bacana porque, se você quer criar um servidor DNS (servidor de resolução de nomes), um servidor de e-mail ou de FTP, poderá fazê-lo mesmo que não esteja em uma rede com muitos computadores; ou, caso esteja em uma rede, pode testar os serviços localmente.

Além da interface de loopback, também configuramos a placa de rede – no linux ela é identificada pelo dispositivo ethX, onde X é o número do dispositivo. Por exemplo, eth0 é o primeiro dispositivo de rede existente no computador.

Para configurar a placa de rede, é necessário que o módulo esteja no ar. Eu já falei em outro post, como configurar o módulo da placa de rede… para relembrar, clique aqui. Com o módulo no ar, podemos designar um IP para a placa; para isso usamos o comando ifconfig. Por exemplo:

#ifconfig eth0 192.168.0.10

Onde:

eth0 – Device da placa de rede, ou seja a interface de rede.

192.168.0.10 – É o endereço que estou designando para essa interface.

Essa forma de configuração de rede é temporária; caso reinicie a máquina, a configuração será perdida… é uma configuração básica quando você precisa testar por exemplo, saber se a placa está OK, se designar um IP ela vai conseguir conexão na rede, etc.

Para a configuração da rede ficar definitiva no sistema, devemos editar os seguintes arquivos:

/etc/hostname – Nome da máquina
/etc/hosts – Resolução de nomes locais
/etc/network/interfaces – Informação sobre IP

Os arquivos acima, são para configuração em distribuições Debian e suas variantes! Em sistemas Red Hat e suas variantes, os arquivos são:

/etc/sysconfig/network – Nome da máquina e informações da rede
/etc/hosts – Resolução de nomes
/etc/syscofig/network-scripts/ifcfg-ethX – Informação sobre IP

No caso de Red Hat e suas variantes, para cada placa instalada no computador, existe um arquivo de configuração… por isso o “X” na linha /etc/syscofig/network-scripts/ifcfg-ethX.

E no Slackware:

/etc/HOSTNAME – Nome da máquina e informações da rede
/etc/hosts – Resolução de nomes
/etc/networks/etc/rc.d/rc.inet1 – Informação sobre IP

Bem, nos meus posts, sempre falo em Debian, que é a distribuição que uso… então, aqui vou falar sobre a configuração em ambientes Debian.

O primeiro arquivo que editamos é o /etc/hostname. Esse arquivo é utilizado para definir o nome da nossa máquina:

# echo “nixi” > /etc/hostname

Acima, apenas inseri o nome da minha máquina (nixi) no arquivo hostname. Só que as configurações do nome, só estarão disponíveis quando eu reiniciar a máquina. Para usar o nome sem a necessidade de reiniciar, basta fazer:

# hostname nixi

E aí já estarei usando o novo nome. Ahn, o comando acima, além de definir um nome prá máquina, também pode ser usado para mostrar o nome da máquina… para isso, basta digitar:

# hostname
nixi

O segundo arquivo, é o /etc/hosts… ele serve para resolver o nome da máquina pelo IP dela. É como se fosse um servidor DNS, só que é local, isto é, somente para a minha máquina! Esse arquivo tem a seguinte estrutura:

# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost

Onde:
127.0.0.1 – IP da máquina

localhost.localdomainFQDNFully Qualified Domain Name – é o nome completo da máquina; isto é, o nome (localhost) e o domínio (localdomain)

localhost – nome da máquina

A utilidade desse arquivo? Bem, imagine que você queira acessar algumas máquinas e não quer ficar digitando o IP delas! Se você não tem DNS, pode colocar o nome e o IP das máquinas que deseja acessar nesse arquivo. Por exemplo, se quiser fazer ping para a máquina asmith, ao invés de digitar o IP dela, poderia incluir a seguinte linha no arquivo /etc/hosts:

192.168.0.150    asmith.nixi.com.br    asmith

Quando for fazer o ping, ao invés de digitar o IP, posso fazer:

# ping asmith
PING asmith.nixi.com.br (192.168.0.150) 56(84) bytes of data.
64 bytes from asmith.nixi.com.br (192.168.0.150): icmp_seq=1 ttl=64 time=0.156 ms
64 bytes from asmith.nixi.com.br (192.168.0.150): icmp_seq=2 ttl=64 time=0.122 ms
64 bytes from asmith.nixi.com.br (192.168.0.150): icmp_seq=3 ttl=64 time=0.044 ms

Lembrando que essa é uma configuração local! Então, se quiser que outras máquinas resolvam os nomes, tem que configurar nelas também… mas se for pensar em configurar muuuuuitas máquinas, é melhor ter um DNS (assunto para um futuro post!) e deixar o /etc/hosts resolver somente o nome da nossa máquina. No caso, da minha máquina local, o arquivo ficou assim:

# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.0.100   nixi.org.br        nixi

O próximo arquivo a ser configurado é o /etc/network/interfaces, responsável por armazenar as configurações de IP de todas as placas de rede. Em distribuições Red Hat e variantes, cada placa tem seu arquivo específico; no Debian, as configurações de todas interfaces são feitas em um único arquivo. Abaixo, exemplo de configuração para IP fixo; isto é, toda vez que a máquina iniciar, sempre irá usar esse IP:

auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Onde:
auto eth0 – Indica que a interface será inicializada no boot. Caso não defina essa linha, mesmo que o serviço de rede esteja iniciado, as configurações dessa interface não serão carregadas.

iface eth0 inet static – Indica se a interface terá IP fixo ou não. Aqui, estamos falando que a interface eth0 terá IP fixo.

address– Endereço IP

netmask – Máscara de rede

network – Endereço da rede

broadcast – IP que varre a rede inteira para determinar quais IP’s estão ativos

gateway – IP da máquina que fará a saída dos pacotes para Internet

Essa configuração é usada quando a máquina tem um IP fixo! Caso a máquina seja um cliente de DHCP; isto é, quando existe um servidor que distribui os IP’s para as máquinas que estão na rede, a configuração desse arquivo fica assim:

auto eth0
iface eth0 inet dhcp

Fica uma configuração simples… porque o servidor DHCP será o responsável por configurar o IP, máscara, rede, broadcast, gateway e resolução DNS para o cliente!

Após configurar o arquivo, para que as alterações sejam realizadas, devemos parar e iniciar o serviço de rede:

# /etc/init.d/networking stop
# /etc/init.d/networking start

Para checar as novas configurações da placa de rede:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:47:ba:19
inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe47:ba19/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:47639 errors:0 dropped:0 overruns:0 frame:0
TX packets:33167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:65097967 (62.0 MiB)  TX bytes:2828496 (2.6 MiB)
Interrupt:19 Base address:0x2000

Ainda falando sobre o arquivo /etc/network/interfaces, lá existe a linha gateway. Para uma máquina ser capaz de encontrar outra através de uma rede, é necessário que ela saiba como ir de uma rede para outra. O ‘caminho’ que permite uma máquina de uma rede se comunicar com outra de rede diferente, se chama roteamento.

Uma rota, é um par de endereços composto por destino e gateway e indica que, se você estiver tentando alcançar este destino, deve se comunicar através desse gateway. A famosa ‘rota default’, é a rota utilizada por um roteador quando não há nenhuma outra rota conhecida existente para o endereço de destino de um pacote. E todos os pacotes para destinos desconhecidos pela tabela do roteador são enviados para o endereço de rota padrão.

O comando para visualizar a tabela de rotas é o route:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

Vejam que a última linha indica o IP 192.168.0.1, que é justamente o IP que foi configurado na linha gateway do arquivo /etc/network/interfaces. A opção -n no comando, é para mostrar em formato numérico, isto é, o comando não tentará resolver os IP’s para nomes.

O comando route também é usado para criar uma rota manualmente, seja por motivo de não ter adicionado a linha gateway no arquivo, ou até mesmo por querer utilizar uma outra rota. Para isso, executa-se o comando abaixo:

# route add default gw 192.168.0.1

Onde:

add – para adicionar a rota

default gw 192.168.0.1 – indica que está configurando a rota default com o IP 192.168.0.1

Esse comando faz a mesma coisa que a linha gateway indicada no arquivo /etc/network/interfaces. A diferença é que essa configuração é perdida caso a máquina reinicie, enquanto no arquivo é uma configuração definitiva.

Outras formas ver a tabela de rotas:

# cat /proc/net/route

# netstat -nr

E, para finalizar essa parte da configuração de rede, tem mais um arquivo que editamos quando configuramos rede no Linux. É o arquivo /etc/resolv.conf; responsável por buscar o servidor DNS para resolver nomes na rede.

O DNS foi criado com o objetivo de tornar as coisas mais fáceis para o usuário, permitindo assim, a identificação de computadores na Internet ou redes locais através de nomes (é como se tivéssemos apenas que decorar o nome da pessoa ao invés de um número de telefone). A parte responsável por traduzir os nomes como http://www.wordpress.com em um endereço IP é chamada de resolvedor de nomes.

Então, é no arquivo /etc/resolv.conf que indicamos o nome de domínio DNS da nossa rede, e qual o servidor DNS irá resolver as consultas de nomes.

Exemplo de um arquivo resolv.conf:

search nixi.org.br
nameserver 4.2.2.2

Onde:

search – Lista de pesquisa para a procura do nome de servidor; normalmente é determinado pelo domínio do servidor local.

nameserver – Endereço IP do servidor de nomes que o resolvedor deve pesquisar; são utilizados na ordem em que estão listados.

É importante observar que, se for um cliente dhcp, o resolv.conf será sobrescrito com a informação recebida do servidor DHCP.

Abordei no post a configuração em sistemas Debian; apesar de não utilizar sistemas Slackware ou Red Hat, segue links que irão ajudar na configuração de rede nessas duas distros:

SlackwareConfiguration Help

Red Hat e derivadosHowto Red hat enterprise Linux 5 configure the network card

Referências:
Manual Completo do Linux – Guia do Administrador
Evi Nemeth et al, Pearson Books

Capítulo 15 – Rede

Bem, é isso… até o próximo post! 🙂

Redes: como tudo começou…

Nesse post, vou falar sobre o início das Redes de Computadores; não vou me aprofundar no assunto, so passar uma visão geral de como tudo começou.

Antes de tudo, o que e rede?

Rede nada mais é do compartilhar informações e serviços. As redes de computadores fornecem ferramentas de comunicação necessárias para permiter que computadores compartilhem informações e recursos, como por exemplo:

✔ Compartilhar o conteúdo do HD ou de uma pasta com outros usuários.

✔ Compartilhar uma impressora para todas as máquinas da empresa.

✔ Compartilhar a conexão da internet para todas as máquinas que estão ligadas na rede.

Quando tudo começou…

Desde sempre houve a necessidade de comunicação. Soluções como sinais de fumaça, tambores, pombo-correio, código Morse, rádio, televisão… tudo isso contribuiu para a evolução da comunicação.

Com a chegada dos computadores, também veio a idéia da construção de uma rede de computadores que pudessem trocar informações. Essa idéia surgiu no Departamento de Defesa dos EUA, o ARPA (Advanced Research Projects Agency) e ficou conhecida como ARPANET.

O principal objetivo era interligar diferentes computadores, tanto para aumentar o poder geral do computador quanto para descentralizar o armazenamento de informações. O governo americano queria encontrar uma forma para acessar e distribuir informação no caso de um evento catastrófico, como um ataque nuclear. Se uma bomba atingisse uma linha de computador importante, a transferência de informação pararia imediatamente. Mas se houvesse um meio de formar uma rede de computadores, outras partes do sistema poderiam continuar funcionando mesmo se um elo fosse destruído.

Entre 1969 e 1977, a ARPANET evoluiu de uma rede de quatro computadores para uma com 111 computadores pertencente a universidades, entidades militares e de pesquisa. Usando conexões via satélite, a ARPANET conectou sistemas de computador nos Estados Unidos a computadores no Havaí e Europa.

Durante a década de 80, outras redes surgiram: CSNet, DECNet, Usenet, entre outras. Essas redes tinham o objetivo de interligar laboratórios e universidades nos EUA e em outros países.

No fim dos anos 80, a infraestrutura da ARPANET começou a ficar obsoleta e as as organizações na ARPANET começaram a fazer a transição para outras redes, principalmente a NSFNET. Em 1990, o projeto ARPANET foi finalizado, mas seus objetivos foram alcançados. Os EUA possuíam uma rede de computadores que conectava recursos poderosos e que podia continuar operando mesmo se uma parte da rede parasse de funcionar; além disso, essa rede também podia atravessar o mundo conectando computadores de um lado ao outro no globo.

Contribuições da ARPANET

A criação de um software ou serviço, sempre depende uma motivação especial ou deficiência de alguma ferramenta. No caso da ARPANET, a motivação foi criar uma rede que pudesse continuar trocando informações mesmo que algum ponto falhasse. E essa motivação, gerou ferramentas importantes:

Logins Remotos – possibilitou pessoas usarem um sistema de computador para logar em outro a quilômetros de distância.

Transferência de arquivos – usuários puderam acessar informações em outro computador, além de copiar, salvar dados ou enviar arquivos através da rede.

Correio Eletrônico – usuários puderam enviar mensagens eletrônicas através da rede.

E além disso, da ARPANET nasceu a Internet, ou World Wide Web (WWW), que nada mais é do que um conjunto de informações que são públicas e disponibilizadas em um servidor e que podem ser visualizadas através de um navegador web.

O primeiro navegador para a Web foi criado em abril de 1993 e teve o nome Mosaic; apesar de não existir mais, foi considerado uma revolução tecnológica. E olha que legal… hoje em dia podemos escolher entre vários navegadores: Firefox, Chrome, Lynx (para quem precisa ou gosta de navegar em modo texto), Opera, entre outros.

No axis.org, tem um gráfico da evolução dos navegadores utilizados… quando eu olhei, estava atualizado até agosto/2009. E, se quiser ver o timeline da Internet, pode conferir aqui. Vale a pena!

E isso aí, ate o próximo post 😉 !

Leia mais:

Redes de Computadores

História da Internet

Arpanet

Aspectos Históricos Redes de Computadores