![]() |
s i s t e m a o p e r a c i o n a l m a g n u x l i n u x | ~/ · documentação · suporte · sobre |
Página seguinte
Página anterior
Índice
95. Configuração do Cliente95.1 Obtendo O Programa Clientekernels 2.0.x Independente da distribuição que se esteja utilizando será necessário obter um programa cliente DHCP para Linux. O pacote necessário é chamado dhcpcd e a sua versão atual é 0.70. Pode-se obter uma descrição do pacote em aqui.
kernels 2.1.x Devido a mudanças no pacote de rede ipv4 nos kernels da série 2.1.x, em especial na forma como ele configura diversos campos, o programa dhcpcd pode não funcionar adequadamente. Muitos usuários não usam kernels em desenvolvimento, logo isso não será problema. Caso o leitor esteja usando um kernel desta série deve então utilizar o dhcpcd 1.3.3 o qual é uma versão modificada que foi escrita por Sergei Viznyuk http://www.cps.msu.edu/~dunham/out/dhcpcd-1.3.3.tar.gz
95.2 Configuração no SlackwarePode-se obter a última versão do DHCPcd a partir de qualquer espelho do Metalab ou nos seguintes endereços:
Transfira a última versão do programa dhcpcd.tar.gz
Para que o sistema utilize o DHCP durante a inicialização, execute os seguintes comandos:
Isso moverá o programa antigo de inicialização da rede para rc.inet1.antigo. Agora será necessário criar o novo programa rc.inet1. Utilize o código a seguir:
#!/bin/sh # # rc.inet1 Este programa inicializa a base de rede do sistema HOSTNAME=`cat /etc/HOSTNAME` # este procedimento não é realmente necessário # mas será mantido # Anexar os dispositivos locais de rede /sbin/ifconfig lo 127.0.0.1 /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo # caso se tenha uma conexão Ethernet, as linhas a seguir devem ser utilizadas # para configurar a interface eth0. Caso se esteja usando a interface local ou # SLIP, não inclua as linhas a seguir no arquivo. /usr/sbin/dhcpcd Salve o programa e reinicialize o computador.
Ao finalizar vá para a seção último passo
95.3 Red Hat 5.0, Conectiva Linux 3.0 e posteriores
Na configuração do DHCPcd sobre estas distribuições de Linux, tudo que se necessita fazer é inicializar o Painel de Controle digitando-se:
Após selecione "Configuração de Rede" e na interface Ethernet desejada (normalmente eth0) defina DHCP como o protocolo. Os demais parâmetros devem ser deixados em branco.
Ao finalizar vá para a seção último passo
95.4 Configuração no RedHat 4.x e Caldera OpenLinux 1.1O DHCPcd é incluído na distribuição padrão do Red Hat no formato RPM. Ele pode ser encontrado no diretório padrão denominado RPMS ou pode ser obtido em: ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm
Para instalá-lo use o seguinte comando:
Alternativamente pode-se compilar uma versão própria através dos passos descritos na distribuição Slackware.
Removi o endereço IP estático e o nome de /etc/resolv.conf. De qualquer forma deixei a linha de pesquisa e as duas linhas do servidor de nomes (por alguma razão meu programa dhcpcd nunca cria um arquivo /etc/dhcpc/resolv.conf, então eu tive que usar um arquivo estático). Em /etc/sysconfig/network removi as entradas para HOSTNAME e GATEWAY. As entradas para NETWORKING, DOMAINNAME e GATEWAYDEV foram deixadas. Em /etc/sysconfig/network-scripts/ifcfg-eth0 foram removidas as entradas IPADDR, NETMASK, NETWORK e BROADCAST. Foram deixados os parâmetros DEVICE e ONBOOT como estavam. A linha BOOTPROTO foi alterada para BOOTPROTO=dhcp. Salve o arquivo e reinicialize o computador. Ao finalizar vá para a seção último passo
95.5 Configuração no Debian 1.3.1Há um pacote Debian do DHCPcd em:
ou pode-se seguir as instruções de instalação do Slackware. Para desempacotar um pacote do tipo deb deve-se executar o seguinte comando:
Aparentemente não há necessidade de qualquer configuração para o DHCPcd conforme o descrito a seguir:
O pacote dhcpcd instala o programa de inicialização usual para pacotes debian em /etc/init.d/<nome_pacote>, neste caso como /etc/init.d/dhcpcd e estabelece a ligação dos diversos diretórios /etc/rc?.d/.
O conteúdo dos diretórios /etc/rc?.d/ será então executado durante a inicialização do sistema.
Caso o sistema não seja reinicializado após a instalação, o programa poderá se iniciado manualmente:
Ao finalizar vá para a seção último passo
95.6 Configuração no LinuxPPC e MkLinuxA seguinte seção foi escrita por R. Shapiro
As versões 0.65 e 0.70 do programa dhcpcd de Yoichi Hariguchi deverão funcionar adequadamente para ambas as versões de Linux em ppc, com as seguintes ressalvas:
* Caso se deseje ou se necessite construir executáveis a partir dos fontes, deve-se atentar que os compiladores ppc Linux assumem que 'char' é na verdade 'unsigned char' enquanto os fontes de Hariguchi assumem que 'char' é 'signed char'. Para construí-los a partir dos fontes deve-se editar o arquivo Makefile e incluir a seguinte opção nos CFLAGS: "-fsigned-char".
* A versão atual do linuxppc (também conhecida como linux-pmac) é a 2.1.24 e requer o pacote atualização 2.1. Ambas as versões DR 2.1 e DR 3.0 do mklinux usam o kernel 2.0 (2.0.33) e não necessitam desta atualização. Note que o RPM do dhcpcd no CD do linuxppc não inclui a atualização 2.1 e não funcionará com ela. De qualquer forma funcionará com o mklinux.
* No kernel do linuxppc 2.1, será apresentado um aviso de roteamento após o dhcpcd ser inicializado. Ele pode ser ignorado.
* O programa dhcpcd de Hariguchi demora um pouco mais, cerca de 30 segundos, para fazer a sua conexão inicial com o servidor e configurar o roteamento. No kernel do linuxppc 2.1, o aviso mencionado acima é uma indicação de que o roteamento está pronto. No mklinux será necessário checar através do comando netstat -r o estado da conexão da rede.
Não fui capaz de compilar o dhcpcd de Sergei Viznyuk versão 1.3.3 em ambas as versões para o Linux para ppc. Logo não posso comentá-la.
Uma vez que o dhcpcd é instalado, execute os seguintes passos no resolv.conf, conforme mencionado na seção último passo.
Caso se deseje uma versão pré compilada do dhcpcd 0.70 para kernels 2.1 para linuxppc, envie uma mensagem para reshapiro@mediaone.net.
95.7 Redes Token Ring
Caso se esteja tentando executar o dhcpcd em uma rede Token Ring é bom avisar: ele não funcionará. Esta é a solução fornecida por Henrik Stoerner
O problema reside no fato de dhcpcd funcionar somente em placas Ethernet. Caso seja encontrada uma placa Token-Ring, o programa se recusa a executar qualquer comando e gera a mensagem "não é uma interface Ethernet". A solução é aplicar uma atualização simples dos fontes do dhcpcd. A atualização está disponível na Internet em uma versão binária no formato RPM em http://eolicom.olicom.dk/~storner/dhcp/
A atualização foi enviada para o mantenedor do dhcpcd, a qual espero que seja incluída na próxima versão do dhcpcd.
95.8 Executando o DHCPCDApós a reinicialização da máquina, a interface de rede deve ser configurada. Digite:
Deve-se obter algo como:
lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:302 errors:0 dropped:0 overruns:0 frame:0 TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0 eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45 ------> inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24783 errors:1 dropped:1 overruns:0 frame:1 TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96 Interrupt:10 Base address:0x300
Caso se tenha algum número normal no campo endereço inet, então a máquina estará configurada. Caso se obtenha um endereço igual a 0.0.0.0 não se desespere, trata-se de uma configuração temporária antes que o dhcpcd obtenha o endereço IP. Se mesmo alguns minutos após se visualizar somente o endereço 0.0.0.0 por favor verifique a seção DHCPcd Resolução de Problemas. O DHCPcd é um servidor que seguirá sendo executado enquanto o computador estiver ligado. Mesmo três horas depois ele irá contactar o servidor DHCP e tentará renovar o endereço IP. Todas as mensagens serão registradas no arquivo do syslog (no Slackware em /var/adm/syslog, RedHat/Conectiva/OpenLinux em /var/log/syslog). Um detalhe final: É necessário especificar os servidores de nomes. Há duas formas de fazê-lo, pode-se solicitar ao provedor para informar os endereços do servidor de nomes e colocá-los no /etc/resolv.conf ou o DHCPcd obterá uma lista do servidores DHCP e construirá um resolv.conf em /etc/dhcpc. Decidi usar os arquivos gerados pelo DHCPcd da seguinte forma:
Gere uma cópia de segurança do /etc/resolv.conf da seguinte forma:
Caso o diretório /etc/dhcpc não exista, ele deve ser criado da seguinte forma:
Crie uma ligação simbólica de /etc/dhcpc/resolv.conf para /etc/resolv.conf, através do seguinte comando:
Caso isso não funcione, pode-se tentar o ajuste sugerido por nothing@cc.gatech.edu, com uma pequena correção de Henrik Stoerner.
O último passo é executado somente porque meu dhcpcd não cria o arquivo /etc/dhcpc/resolv.conf. Em /etc/sysconfig/network-scripts/ifup efetuei as seguintes mudanças (as quais são mudanças simples, mas funcionam):
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Usando DHCP para ${DEVICE}... " /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE} echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then echo "falhou." exit 1 Foi mudada para:
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Usando DHCP para ${DEVICE}... " /sbin/dhcpcd echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then ^^^^^^ echo "falhou." exit 1
Note o sinal de exclamação em
Agora sente-se e aprecie o seu desempenho. :-). 95.9 Notas Diversas
Os seguintes passos não são necessários mas podem ser úteis para algumas pessoas: a) Caso se necessite de conectividade de rede somente ocasionalmente, pode-se inicializar o dhcpcd a partir da linha de comando (deve-se reinicializar para se executar este passo) com:
Quando se quiser finalizar as funcionalidades de rede, digite:
95.10 Soluções de ProblemasCaso se tenha seguido todos os passos descritos anteriormente e não foi possível acessar a rede, há algumas prováveis causas para isso:
I. A placa de rede não está configurada corretamente.
Durante o processo de inicialização o Linux irá tentar localizar a placa de rede e deverá gerar algumas mensagens acerca deste processo:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10. 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov Se uma mensagem como esta não aparecer, aparentemente a placa Ethernet não foi reconhecida pelo Linux. Caso se utilize uma placa genérica (como um clone NE2000), procure por um disco com utilitários DOS que possam ser usados para configurar a placa. Tente diversos IRQs até que o Linux reconheça a placa (IRQs 9,10,12 são normalmente boas tentativas).
II. O servidor DHCP suporta RFC 1541
Tente executar o dhcpcd digitando:
use o comando ifconfig para verificar se a interface de rede está configurada (espere alguns segundos pelo processo de configuração, pois inicialmente o endereço apresentado será Inet.addr=0.0.0.0)
Caso o problema seja resolvido desta forma, deve-se adicionar o indicador "-r" aos programas de inicialização, ou seja além de usar o
III. Durante a inicialização se obtém a mensagem "Usando DHCP para eth0 ... falhou" mas o sistema funciona perfeitamente.
Aparentemente se está usando RedHat e as instruções não foram seguidas adequadamente :-). Você está esquecendo do ponto de exclamação em um dos comandos, vá até a seção aqui e verifique como corrigir o problema.
IV. A rede funciona por alguns minutos e subitamente para de responder.
Há algumas notícias de que o programa gated (servidor de caminho padrão) gera erros em máquinas Linux conforme o descrito acima. Verifique se o programa gated está sendo executado através do seguinte comando:
Caso ele esteja sendo executado, tente removê-lo com o gerenciador RPM ou da entrada em /etc/rc.d/
V. A placa Ethernet é reconhecida durante a inicialização do sistema mas obtém-se a mensagem "NO DHCPOFFER" nos arquivos de registros de ocorrências. Isso ocorre também com a placa PCMCIA.
É necessário estar seguro que se tem uma porta 10BaseT (conector do tipo "telefone") ativada na placa de rede. A melhor forma de verificar isso é checar qual o tipo de conector está configurado na inicialização ou seja:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10. ^^^^^^^^^^^^ 3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Tenho recebido notícias de usuários de portáteis que têm tido este tipo de problema com os utilitários PCMCIA (especificamente o ifport) o qual deve ser configurado para um conector de tipo 10Base2 (thinnet). Deve-se estar seguro de estar usando o padrão 10BaseT para a conexão. Caso não se esteja , deve-se reconfigurar a placa e reinicializar o computador.
VI. Segui todos os passos mas ainda não consigo conectar a máquina à rede.
O modem a cabo normalmente irá memorizar o endereço Ethernet da placa de rede, então ao se mudar o computador ou se tentar utilizar uma outra placa, será necessário ensinar o modem a reconhecer o novo hardware. Normalmente basta desligar o modem e religá-lo enquanto o computador estiver ligado ou então chamar o suporte técnico e avisá-lo de que a placa de rede foi alterada.
A máquina está dentro de uma rede protegida por um firewall que desabilita o tráfego das portas 67/68 usadas pelo DHCP para distribuir informações. Verifique as regras do firewall cuidadosamente.
Página seguinte Página anterior Índice |