CONFIGURAÇÃO DE REDE

 


 

O sistema UNIX usa como protocolo nativo o TCP/IP (este protocolo foi criado para a interconexão de máquinas UNIX). Desta forma, os conceitos de redes TCP/IP são aplicáveis às redes UNIX sem esforço. Neste módulo veremos como ajustar as configurações básicas de rede em uma máquina Linux.

 

Interfaces de rede

Cada máquina possui uma ou mais interfaces de rede, geralmente no padrão ethernet, com endereços IP associados que as identificam para o protocolo IP. Além disso, cada interface de rede também possui um endereço físico (MAC) que a identifica na rede local na camada de enlace.

 

A relação das interfaces de rede físicas presentes no sistema (ativas e inativas) pode ser obtida nas mensagens de inicialização (boot) do sistema, visualizadas nos arquivos de log (/var/log/messages) ou através do comando dmesg. Eis um trecho das mensagens de inicialização que indicam as interfaces de rede disponíveis em um sistema:

 

...

Intel(R) PRO/100 Network Driver - version 2.3.38-k1

eth0: Intel(R) PRO/100 Network Connection

e100: eth0 NIC Link is Up 100 Mbps Half duplex

Intel(R) PRO/1000 Network Driver - version 5.2.30.1-k1

eth1: Intel(R) PRO/1000 Network Connection

e1000: eth1 NIC Link is Up 100 Mbps Full Duplex

...

 

As informações sobre as interfaces de rede ativas podem ser visualizadas através do comando ifconfig. Eis um exemplo de saída desse comando:

 

host:~> ifconfig

eth0      Link encap:Ethernet  HWaddr 00:A0:C9:E8:63:AB
          inet addr:200.17.98.174  Bcast:200.17.98.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3727007 errors:0 dropped:0 overruns:0 frame:3
          TX packets:4869672 errors:0 dropped:0 overruns:0 carrier:0
          collisions:679247 txqueuelen:100
          Interrupt:10 Base address:0xb400

lo        Link encap:Local loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:3924  Metric:1
          RX packets:404950 errors:0 dropped:0 overruns:0 frame:0
          TX packets:404950 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

 

A interface lo indica o dispositivo virtual chamado loopback, que permite ao host acessar seus próprios serviços TCP/IP. O endereço IP dessa interface é sempre 127.0.0.1, com máscara 255.0.0.0. Por ser um dispositivo virtual, ele não possui endereço físico (MAC). Na maioria dos dispositivos e sistemas essa interface é definida na configuração default do sistema, por isso não é necessário configurá-la.

 

Além de listar as interfaces ativas, o comando ifconfig pode ser usado para ligar/desligar/configurar uma determinada interface, ou para definir novas interfaces de rede na máquina. A sintaxe básica desse comando é a seguinte:

ifconfig <interface> [<ip-address>]

   [netmask <mask>]

   [broadcast <bcast-address>]

   [up|down]

 

Eis alguns exemplos de uso:

ifconfig eth0 down

 

ifconfig eth0 up

 

ifconfig eth0 10.0.0.17 netmask 255.0.0.0 up

 

ifconfig eth0:1 66.193.175.173 netmask 255.255.254.0

 

Configuração de rotas

A tabela de roteamento indica quais as rotas ativas em uma máquina. Ela pode ser obtida através do comando route. Eis uma saída típica desse comando:

host:~> route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
200.17.98.0     *               255.255.255.0   U     0      0        0 eth0
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         router.pucpr.br 0.0.0.0         UG    0      0        0 eth0

 

A tabela acima indica que:

route [-v] add [-net|-host] Alvo
   [netmask Nm]
   [gw Gw]
   [metric N]
   [mss M]
   [window W]
   [irtt I]
   [reject] [mod] [dyn] [reinstate]
   [[dev] If]

 

ou

 

route [-v] del [-net|-host] Alvo
   [gw Gw]
   [netmask Nm]
   [metric N]
   [[dev] If]

 

Eis alguns exemplos de uso desse comando:

route add -net 127.0.0.0

 

route add -net 192.120.10.0 netmask 255.255.255.0 dev eth0

route del -net 192.120.10.0 netmask 255.255.255.0 dev eth0

 

route add default gw router02

route del default gw router02

 

route add -host 10.0.0.125 dev eth0

 

route add -net 200.192.112.0 netmask 255.255.255.0 dev eth1

 

Além de rotear seus próprios pacotes, um host pode também rotear pacotes recebidos em outras interfaces, agindo portanto como gateway para outras redes. Essa função é denominada "IP forwarding".

 

cat /proc/sys/net/ipv4/ip_forward

 

echo 1 > /proc/sys/net/ipv4/ip_forward

echo 0 > /proc/sys/net/ipv4/ip_forward

 

Resolução de endereços físicos

Os endereços físicos (da camada de enlace) são resolvidos (associados a endereços IP) através do protocolo ARP - Address Resolution Protocol. O comando arp permite visualizar o cache de endereços ARP na máquina local. Eis um exemplo de uso:

ppgia:~> arp

Address                 HWtype  HWaddress           Flags Mask       Iface

200.17.98.68            ether   00:C0:DF:ED:09:0D   C                eth0
200.17.98.242           ether   00:A0:C9:92:DA:BB   C                eth0
200.17.98.189           ether   00:00:F8:7E:07:A2   C                eth0
gramado.ppgia.pucpr.br  ether   00:A0:C9:DA:95:65   C                eth0
200.17.98.221           ether   00:A0:C9:E8:68:34   C                eth0
200.17.98.220           ether   00:80:5F:33:28:D3   C                eth0
curitiba.ppgia.pucpr.br ether   00:A0:24:13:52:4C   C                eth0
floripa.ppgia.pucpr.br  ether   00:60:08:CB:16:53   C                eth0
200.17.98.142           ether   00:20:35:56:02:86   C                eth0
tokio.ppgia.pucpr.br    ether   00:60:08:16:85:B3   C                eth0
200.17.98.225           ether   00:60:08:16:80:00   C                eth0
gaviao.ppgia.pucpr.br   ether   00:80:5F:C1:A5:63   C                eth0

 

Status da atividade de rede

A comunicação em TCP/IP pode ocorrer através de serviços com ou sem conexão, providos respectivamente por TCP e UDP. Cada serviço é identificado por uma porta, na qual um processo tem um socket aberto para receber solicitações. Os principais serviços TCP/UDP estão listados no arquivo /etc/services, do qual apresentamos uma pequena parte:

# service       port/protocol   aliases         description

netstat         15/tcp
qotd            17/tcp          quote
msp             18/tcp                          # message send protocol
msp             18/udp                          # message send protocol
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source
ftp-data        20/tcp
ftp             21/tcp
fsp             21/udp          fspd
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp                          # SSH Remote Login Protocol
telnet          23/tcp
smtp            25/tcp          mail
time            37/tcp          timeserver
...

Os processos que respondem pelos serviços são normalmente chamados daemons, e são executados em background. Vários deles, sobretudos os que gerenciam serviços mais importantes, são lançados pelos scripts de inicialização do sistema, contidos no diretório /etc/rc.d.

:
|
|-- rc.d
|   |-- init.d  scripts de inicialização de serviços
:   |-- rc0.d   scripts a executar ao entrar no run-level 0
    |-- rc1.d   idem, 1
    |-- rc2.d   idem, 2
    |-- rc3.d   idem, 3
    |-- rc4.d   idem, 4
    |-- rc5.d   idem, 5
    `-- rc6.d   idem, 6

 

O comando netstat permite obter uma série de informações sobre os serviços de rede em uma máquina UNIX. Suas principais opções são:

-r : informações de roteamento (similar ao comando route)

-i : informações sobre interfaces (similar ao comando ifconfig)

-a : indica também as portas TCP e UDP abertas no host)

-p : indica quais os processos associados a portas de rede abertas

-g : informações sobre grupos multicast conhecidos no host

-n : saída numérica (sem converter IPs e números de porta em seus nomes respectivos)

 

A operação default mostra as conexões e sockets ativos, como vemos na listagem a seguir:

host:~> netstat

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 sol.ppgia.pucp:ftp-data 200.17.98.225:1207      TIME_WAIT
tcp        0      0 sol.ppgia.pucpr.br:2287 ns.ifnet.com.br:smtp    ESTABLISHED
tcp        0      0 sol.ppgia.pucpr.br:2286 cciespc2.cityu.edu.:www ESTABLISHED
tcp        0      0 sol.ppgia.pucpr.br:3128 omega.ppgia.pucpr:40274 TIME_WAIT
tcp        0      0 sol.ppgia.pucpr.br:2285 cciespc2.cityu.edu.:www ESTABLISHED
tcp        0      0 sol.ppgia.pucpr.br:2284 www.codeforge.com:www   ESTABLISHED
tcp        0      0 sol.ppgia.pucpr.br:3128 omega.ppgia.pucpr:40273 TIME_WAIT
tcp        0      0 sol.ppgia.pucpr.br:3128 omega.ppgia.pucpr:40267 TIME_WAIT
...

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  1      [ ]         STREAM     CONNECTED     323876 @00003a52
unix  1      [ ]         STREAM     CONNECTED     328255 /dev/log
unix  1      [ ]         STREAM     CONNECTED     600    /dev/log
...

 

O comando netstat possui uma série de opções úteis para verificar o status corrente das operações de rede. Consulte a pagina de manual do comando para maiores informações.

 


Exercícios

1. Configuração de interfaces

 

2. Status de rede

 

3. Roteamento


Ultima Alteração: 26/04/2005 – Prof. Marcos Aurelio Pchek Laureano

Material original criado pelo Prof. Carlos Maziero