apt-get update preso em “Aguardando cabeçalhos” ao usar o Windows XP ICS

13

Estou configurando um servidor Maverick em um PC de reserva. A instalação é concluída e o sistema é inicializado no shell. No entanto, quando eu tento fazer um apt-get update , o apt trava em quase todas as entradas com a mensagem 99% [Waiting for headers] as vezes uma mensagem de 96 b/s aparece na extrema direita. O percentual real que ele alega também varia.

A pesquisa on-line deu uma possível solução usando a opção Acquire::http::Pipeline-Depth="0" , o que atenua o problema, ou seja, ele atrasa em todas as outras entradas com a mesma mensagem acima.

Se você esperar (a atualização inteira demorou cerca de 4 horas), a atualização ainda falhará, pois uma boa parte dos hits mostra uma mensagem "não é possível conectar" ou semelhante, apesar do fato de que eu posso fazer o ping do servidor o pc bem.

O problema também não está relacionado ao espelho usado desde que eu tentei cerca de uma dúzia de espelhos sem sucesso, eu até tentei comentar tudo menos a entrada main em sources.list e ele ainda se recusa a atualizar.

A conexão de rede é boa, já que eu posso fazer ping e wget (o apt não me deixa instalar o lynx até executar uma atualização bem-sucedida). Eu também reinstalei a distro sem sorte.

A única coisa estranha sobre a configuração é que o PC está se conectando à Internet através do meu laptop com Windows ICS configurado corretamente, mas como eu disse antes, a conexão de rede está bem.

    
por crasic 03.01.2011 / 06:40

2 respostas

9
Parece haver uma questão fundamental com a implementação do ICS e o encaminhamento de IP em geral no Windows XP, ele simplesmente não pode manipular várias conexões para o mesmo servidor, talvez seja uma estranha combinação de um bug com incompetência intencional (como eu gosto de mas o resultado final é que o XP não pode funcionar como um roteador / proxy competente para um sistema linux (talvez as limitações sejam intencionalmente postas em prática para sistemas que não sejam Windows).

É interessante notar que isso não se limita apenas ao ICS. Existe uma opção oculta no registro do Windows que permite o encaminhamento de IP para interfaces de rede e sofre com o mesmo problema.

A única solução - parece - é alterar a topologia da rede para evitar o uso do ICS (seja conectando diretamente ou comprando um switch / ponto de acesso dedicado) ou para usar um sistema operacional diferente para configurar a ponte temporária. Eu usei um live-cd do Ubuntu (não era meu computador ou teria sido executado algum * nix para começar) e habilitei o encaminhamento de pacotes e o mascaramento de ip para que o computador se comporte como um roteador genuíno.

    
por crasic 06.01.2011 / 21:58
3

Existem alguns rumores na web (não consigo verificá-los) sobre os problemas do ICS com o IP6. Eles disseram que quando o ICS recebe mais de uma conexão IP6, ele pára por um tempo. Isso poderia explicar por que o wget funciona (apenas uma conexão) e o apt-get update falha (muitas conexões simultâneas).

Você pode tentar desativar o IP6 em seu servidor para testar se esse é o problema.

Você pode desativar o IP6 do terminal com:

echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf

Em seguida, reinicie e verifique se consegue atualizar. Se funcionar, pelo menos você sabe onde está o problema. Você pode desativar o IP6 permanente ou planejar uma nova configuração. Note que a desativação do IP6 será um hack temporal, o IP6 parece inevitável no futuro próximo.

Para ativar o IP6 de volta, exclua as linhas anteriores do /etc/sysctl.conf e reinicialize.

    
por Javier Rivera 03.01.2011 / 09:00