ThinClientHowTo

O que é um Thin Client?

Para o usuário, um thin client (cliente fino|magro) se comporta como um computador desktop comum. Para o administrador, um thin client não tem armazenamento próprio, é de fácil manutenção e pode dar ao usuário uma experiência moderna de computação mesmo que esteja usando um hardware antigo.

Como thin clients funcionam?

Thin clients são computadores que carregam e executam a maioria dos seus programas de um servidor central, mas são apresentados na tela do cliente. Em termos técnicos, o thin client pode tanto obter um kernel de armazenamento local ou carregar um kernel através da rede. (Usando estas instruções, você irá obter o kernel linux do servidor usando uma placa de rede bootável. Desta maneira, o thin client não precisa mais armazenar nada além da ROM de boot interna a sua placa de rede bootável.)

Sequência de Boot

A placa de rede PXE faz uma requisição DHCP a rede local. O DHCP responde dando informações para a placa de onde carregar o kernel linux. O kernel é carregado através da rede pelo protocolo TFTP.

Uma vez que o kernel é carregado via TFTP, ele é executado; a máquina boota o linux. Um initramfs carregado com o kernel é montado como o sistema de arquivos raiz (root). Este carrega e auto detecta os drivers necessários para placa de rede, mouse, som, teclado e etc. Uma vez que o driver de placa de rede é carregado, uma segunda requisição DHCP diz ao cliente o seu endereço IP, mascara de rede, gateway, servidor DNS e ponto de montagem da base NFS (Network File System).

O kernel do linux executa o initramfs ubuntu, que monta o compartilhamento NFS base do servidor para o thin client somente para leitura (read-only). O thin client agora tem um kernel linux bootado e um sistema de arquivos raiz, tal qual qualquer sistema Linux. A partir de agora, quando falamos do sistema de arquivos base (root) no cliente, nós estamos atualmente falando sobre o sistema de arquivos base montado somente para leitura do servidor. O sistema de arquivos base montado pelo thin client não é o mesmo sistema de arquivos base que o servidor utiliza, mas é um especialmente preparado para thin clients e é compartilhado por todos os thin clients conectados ao servidor (localizado em /opt/ltsp/<arquitetura> no servidor). O initramfs chama o programa init, as configurações do servidor X são auto-detectadas e o gerenciador de login ubuntu ltsp, chamado ldm, é iniciado.

Como funciona o X no LTSP?

Depois de logado, o ldm inicia um túnel ssh e executa uma sessão X no servidor que é mostrado através do túnel no servidor X do thin client. Usando ssh aqui tem a maior vantagem já que você não precisa ter um servidor X configurado no cliente e sem transporte de pacotes tcp sem segurança, é inicializado como era feito antigamente no ltsp.

Requerimentos

Você irá precisar de:

  • Um sistema Ubuntu (5.10 ou mais atual) para ser o servidor
  • Pelo menos um sistema bootável via PXE para ser o cliente
  • Um tanto de espaço em disco
  • Uma conexão rápida de rede, ou um servidor espelhado de pacotes Ubuntu ou muita paciência
  • Um servidor DHCP que é capaz de suportar clientes PXE ou um segmento de rede separado onde você pode executar um servidor DHCP dedicado
  • Familiaridade com comandos de texto
  • Um espírito aventureiro
  • Um desejo ardente de enviar o seu feedback para ubuntu-devel

Avisos

Começando

NOTA: Se você planeja usar o servidor como máquina gateway/nat/firewall, é fortemente sugerido a configurar todas as interfaces de rede antes de proceder com os seguintes passos.

  1. Configurar o servidor DHCP
    • Se você já tem um servidor DHCP que pode suportar clientes PXE:
      • Configure-o para passar o nome de arquivo de boot: /ltsp/pxelinux.0 e p caminho da base: /opt/ltsp/i386

      • Para DHCPD ISC, use as seguintes opções:
        filename "/ltsp/pxelinux.0";
        option root-path "/opt/ltsp/i386";
      • Instale ltsp-server no servidor:

        sudo apt-get install ltsp-server 
    • Se você quer executar um servidor DHCP dedicado no servidor de thin clients:
      1. Instale ltsp-server-standalone no servidor:

        sudo apt-get install ltsp-server-standalone 
      2. Se necessário, customize /etc/ltsp/dhcpd.conf (por padrão é configurado para um servidor no ip 192.168.0.1 servindo clientes PXE)

      3. Se você está executando um firewall no servidor, você poderá precisar de abrir o firewall para os protocolos TFTP e NFS (e DHCP se você está executando o servidor standalone). Também, tenha certeza que o portmap não está limitado a interface de loopback no /etc/default/portmap (descomente a linha com "-i 127.0.0.1") se ela existir, pode ser um resto da versão antiga do Ubuntu. Você pode também editar `/etc/hosts.allow' e limitar o acesso em portmap, rpc.mountd, rpc.statd e in.tftpd para a rede local:

        portmap:    192.168.0.0/24 
        rpc.mountd: 192.168.0.0/24
        rpc.statd:  192.168.0.0/24
        in.tftpd:   192.168.0.0/24
      4. Reiniciar o subsistema nfs:
        sudo invoke-rc.d nfs-kernel-server restart 
        sudo invoke-rc.d nfs-common restart
        sudo invoke-rc.d portmap restart
  2. Construir o ambiente de execução do thin client:
    sudo ltsp-build-client 
    • Este script é fortemente codificado para uso de um servidor espelho de Ubuntu, então você pode desejar editá-lo se você tem um espelho de pacotes próximo ou um CD (sudo ltsp-build-client --mirror file:///cdrom), lembre-se de copiar o sources.list do servidor no chroot)

    • Se você mudou suas configurações de dependências do aptitude para não selecionar pacotes recomendados automaticamente, nem todos os pacotesserão "downloadeados" e instalados por este script. Então nenhum login com ldm será possível, por exemplo por causa de algumas partes do servidor X faltantes
  3. sudo apt-get install openssh-server 
    sudo ltsp-update-sshkeys
    • Cheque /opt/ltsp/i386/etc/ssh/ssh_known_hosts e certifique-se que sua chave do host é associada com seu endereço IP. Dependendo da sua configuração /etc/hosts, isto poderá (ainda) não ser sempre automaticamente correto. Se parece com isto:

    servername ssh-rsa AAAAB3NzaC1yc2EAAAABI...
    • então adicione o endereço IP assim:
    servername,192.168.0.1 ssh-rsa AAAAB3NzaC1yc2EAAAABI...
    • E preencha um bug no Malone. ISTO NÃO DEVE ACONTECER.

  4. sudo invoke-rc.d dhcp3-server start 
  5. Opcionalmente, criar /opt/ltsp/i386/etc/lts.conf. Se você não criá-lo, padrões razoáveis e valores auto-detectados serão usados. Nota: Nem todas as opções são suportadas (veja [EdubuntuLtsConfParams]).

  6. Use o boot PXE boot do cliente e veja o que acontece. Se tudo der certo, você deve ver uma caixa de diálogo gráfica.
  7. Se seu cliente não tiver PXE na placa de rede, você pode gerar um CD ou disquete de boot customizado no ROM-o-matic.net. Queime a ISO ou imagem de floppy e boot isto.

  8. Logue, com qualquer usuário autorizado para logar remotamente via ssh e veja o que acontece. Se tudo der certo, você poderá ter uma sessão desktop de trabalho no servidor.
  9. Envie e-mail para ubuntu-devel com suas descobertas

Dicas

Se você tem um DHCP que você não quer instalar LTSP, você pode somente redirecionar o thin client para carregar em um servidor diferente.

Em seu servidor DHCP, o arquivo dhcpd.conf:

next-server 192.168.0.3; 
  • onde 192.168.0.3 é o endereço do servidor LTSP

Bugs

  • Bug 19407: OpenSSH parece não liberar portas usadas pelo X forwarding de maneira temporária, prevenindo você de deslogar e logar de volta imediatamente depois quando o suporte IPv6 está habilitado. Disabilite-o adicionando "AddressFamily inet" ao /etc/ssh/sshd_config e reinicializando o daemon do openssh.

Extras

  1. ThinClientHowtoNAT


ThinClientHowTo (last edited 2011-09-19 23:21:02 by localhost)