Em uma caixa recentemente atualizada do SLES 9.3 para 10.2, estou vendo o seguinte problema:
Antes da atualização, uma montagem NFS (definida via yast, por exemplo, aparecia em /etc/fstab
) funcionava corretamente. Após a atualização, no entanto, está falhando. Um rastreamento de rede mostra que está fazendo a conexão inicial com o servidor NFS sobre TCP (para o portmapper RPC), mas depois passa para UDP para a chamada MOUNT subseqüente; já que o servidor NFS não permite o UDP (por um bom motivo, devido a possíveis problemas com corrupção de dados, como em nfs(5)
), a conexão não passará.
Adicionar a opção TCP (seja no fstab ou na linha de comando, etc.) não tem efeito.
Durante a solução de problemas, descobri que / var / adm / messages está relatando o seguinte como ocorrendo durante a inicialização:
Failed services in runlevel 3: network
(devo observar que, apesar dessa mensagem de erro, aparentemente pelo menos alguns serviços de rede foram iniciados, já que a caixa é acessível via SSH.)
Minhas perguntas, então:
- O que devo verificar para determinar a causa da falha de inicialização do serviço?
- Isso realmente causaria o problema com o NFS descrito acima?
- Se a resposta para (2) for não, então alguma sugestão sobre o que procurar?
Editando para adicionar algumas informações relacionadas às respostas abaixo.
Acontece que o serviço de rede está falhando na inicialização porque uma das interfaces (há duas nesta caixa) usa o DHCP, e isso ainda não está disponível no momento. Então, eu o desativei por enquanto, parei / reiniciei o serviço de rede e os serviços do cliente NFS, mas ainda obtive os mesmos resultados.
Não há firewall no lado do cliente. Além disso, iptables -L no lado do cliente mostra que tudo é aceito; e não há entradas em /etc/hosts.allow ou /etc/hosts.deny.
No lado do servidor NFS, nada foi alterado. O nfsserver remoto é, de fato, publicidade que permite TCP e UDP para todos os serviços NFS (embora haja uma regra de iptables bloqueando UDP).
A entrada do / etc / fstab é bem básica - o que você gostaria de fazer no yast:
x.x.x.x:/volume /localdir nfs defaults 0 0
rpcinfo -p para a caixa do cliente mostra apenas o portmapper v2 em execução, anunciando tanto o TCP quanto o UDP. Para o servidor, mostra todos os serviços habituais:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 4047 status
100024 1 tcp 4047 status
100011 1 udp 4049 rquotad
100021 1 udp 4045 nlockmgr
100021 3 udp 4045 nlockmgr
100021 4 udp 4045 nlockmgr
100021 1 tcp 4045 nlockmgr
100021 3 tcp 4045 nlockmgr
100021 4 tcp 4045 nlockmgr
100005 1 udp 4046 mountd
100005 1 tcp 4046 mountd
100005 2 udp 4046 mountd
100005 2 tcp 4046 mountd
100005 3 udp 4046 mountd
100005 3 tcp 4046 mountd
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
A chamada de montagem, com a entrada / etc / fstab acima, é simplesmente:
mount /localdir
embora eu também tenha tentado com várias opções, como tcp, v3, etc.
Tanto a entrada / etc / fstab (daí a montagem) quanto a chamada rpcinfo -p estão usando o endereço IP, portanto não há problemas de resolução de DNS envolvidos.