Contents

Ambiente de execução de pré-inicialização (PXE, às vezes pronunciado como pixie)

Redirecionar cliente PXE para servidor TFTP diferente

Notas importantes sobre solução de problemas

Opções de DHCP que podem ser usadas na inicialização de PXE

Topologia do cliente

Ambiente de execução de pré-inicialização (PXE, às vezes pronunciado como pixie)

O PXE ou Network Booting permitem que o BIOS baixe e inicialize um sistema operacional (SO) pela rede. Nos roteadores Cisco NX-OS, isso é equivalente ao carregador de inicialização [loader>] também conhecido como Kickstart.

Na inicialização PXE, o BIOS do PXE Client examina a ordem de inicialização configurada e, se a inicialização PXE estiver configurada, determina se o hardware suporta a inicialização PXE. Se sim, ele tenta DHCP e um endereço IP da placa de rede. Na solicitação DHCP, o cliente PXE solicita determinadas opções DHCP, como 67 [Nome do arquivo]. Na resposta DHCP, o servidor DHCP responde com as opções solicitadas. O cliente PXE, em seguida, baixa o nome do arquivo [Network Bootstrap Program (NBP)] especificado na resposta DHCP e o executa para que o SO seja carregado no servidor.

Redirecionar cliente PXE para servidor TFTP diferente

Por padrão, o cliente PXE tentará fazer o download do nome do arquivo na resposta DHCP do servidor DHCP, a menos que receba uma opção 66, próximo servidor ou a opção 60/43 na resposta DHCP para redirecioná-lo para um endereço ip diferente. O endereço do próximo servidor é usado em inicialização e PXE para especificar o uso de servidores diferentes para DHCP e TFTP.

As opções de DHCP do próximo servidor (opção 12) e do arquivo de inicialização (opção 0) normalmente especificam o servidor TFTP e o nome do arquivo do carregador de inicialização inicial. O arquivo de inicialização é opcionalmente usado por um cliente para solicitar um tipo específico de arquivo de inicialização em uma mensagem DHCPDISCOVER. Ele é usado por um servidor DHCP em um DHCPOFFER para especificar totalmente um caminho e um nome de arquivo do diretório do arquivo de inicialização.

A opção 67 também deve ser especificada para o nome do arquivo. A diferença entre o arquivo de inicialização e a opção 67 é onde na resposta DHCP o nome do arquivo é encontrado. Com os campos reservados, as respostas não são numeradas na parte Opções do pacote de resposta, mas fornecidas em uma ordem específica.

Por exemplo, Server Host Name (Nome do host do servidor) e Bootfile (Arquivo de inicialização) são exibidos antes das opções numeradas na imagem abaixo.

Notas importantes sobre solução de problemas

Se o cliente de inicialização PXE não solicitar uma opção de DHCP específica na Lista de Solicitações de Parâmetro da Opção 55 no pacote de solicitação de DHCP, a opção de DHCP NÃO ESTARÁ no pacote de resposta do servidor DHCP mesmo que esteja configurada no servidor DHCP. É importante obter um rastreamento de farejador para verificar as opções solicitadas e fornecidas.

NOTE: se a ACI estiver configurada para o endereço auxiliar de DHCP (DHCP Relay) para um servidor DHCP, o tcpdump poderá ser usado no switch leaf do primeiro salto. Como o switch leaf deve agir como um relay DHCP, a CPU deve processar os pacotes DHCP para encaminhá-los ao servidor DHCP. Você pode fazer login usando a conta admin e usar o comando

tcpdump -i any -w /tmp/packet.pcap "porta 67"

para capturar os pacotes DHCP entre o host e o servidor DHCP. Se o switch leaf não tiver nenhum endereço IP OOB, você poderá transferir o arquivo capturado para o APIC fazendo login no apic usando o nome de usuário admin e usando

scp admin@<switch TEP>:/tmp/packet.pcap /home/admin

Você pode transferir o arquivo do APIC usando o endereço ip da GUI.

Pode haver muitos nomes de arquivos diferentes dependendo do que o servidor PXE suporta. O nome de arquivo do carregador de inicialização mais comum para um servidor linux é chamado "/pxelinux.0" e normalmente está localizado no diretório /tftpboot.

Opções de DHCP que podem ser usadas na inicialização de PXE

NOME

Nº DA OPÇÃO

Configuração

BOOTFILE

0

Bootfile <file>

DEFAULT_ROUTER

3

Default-router 10.250.118.1

REDE

11

Rede 10.250.118.0 255.255.255.0

NEXT_SERVER

12

Próximo servidor 10.45.67.8

Enviar com opção correspondente 60

43

opção 43 hex 06010708070000010afbd015

String correspondente à opção 43

60

Opção 60 "PXEClient"

Servidor TFTP único

66

Opção 66 ip 10.240.221.21

Nome do arquivo PXE

67

Opção 67 "/pxelinux.0"

Lista de servidores TFTP

150

Opção 150 10.240.208.21

A opção 43 é retornada ao cliente PXE se o servidor DHCP corresponder a sua string de opção 60 à string de opção 60 enviada pelo cliente. A opção 43 tem várias subopções em ordem crescente (opção 6 e 8, etc.):

A subopção 6 é definida como

06 : subopção 6

01 : 1 byte de comprimento

07 : use a lista PXE_BOOT_SERVERS, desative o multicast e a descoberta de broadcast (somente unicast)

A subopção 8 é definida como

08 : subopção 8

07 : tamanho da opção 08 em bytes

0000 : Servidor PXE tipo 0 (servidor de inicialização PXE)

01 : número de servidores PXE

0afbd015 : 10.251.208.21

A opção é semelhante a esta na configuração do DHCP

Opção 43 hex 0601070807000010afbd015

De acordo com https://support.microsoft.com/en-us/kb/259670, quando o servidor DHCP tiver estas opções definidas:

60 = Identificador do cliente (definido para "PXEClient")

66 = Nome do host ou endereço IP do servidor de inicialização

67 = Nome do arquivo de inicialização

e quando a oferta DHCP inicial do servidor DHCP contém essas opções de inicialização, é feita uma tentativa de conexão com a porta 4011 no servidor DHCP do cliente PXE e ocorre o erro "Proxy DHCP service did not reply on Port 4011".

NOTE: A Microsoft não suporta o uso dessas opções em um servidor DHCP para redirecionar clientes PXE.

Topologia do cliente

Neste caso de exemplo, o usuário tinha duas estruturas ACI diferentes. Na estrutura nº 1 da ACI, os clientes PXE estavam fazendo DHCPing e inicializando um servidor Microsoft dentro da estrutura. Na outra estrutura da ACI, os clientes PXE usavam DHCPing em um roteador IOS-XE 4507 externo por meio de um L3Out, mas usando o mesmo servidor da Microsoft para fazer download do arquivo de modo que o servidor DHCP não estivesse atuando como o servidor TFTP.

A solução que o cliente finalmente adotou foi mudar para um servidor DHCP linux. Analisando os rastreamentos do pacote DHCP, parece que o cliente configurou incorretamente a string opcional 43 e o servidor DHCP IOS-XE nunca funcionou.

Para que isso funcione na ACI:

1. um relé DHCP deve ser configurado para retransmitir os pacotes do cliente DHCP

2. Os contratos devem permitir pacotes DHCP e TFTP entre o L3Out e o EPG em que o cliente PXE está

Você pode ver quedas de contrato nos switches leaf para os pacotes TFTP usando o comando

calo2-leaf2# show logging ip access-list internal packet-log | grep <endereço ip do cliente>

Esse comando será alterado na versão 2.0 para adicionar a palavra-chave deny ou permit e se tornará

calo2-leaf2# show logging ip access-list internal packet-log deny | grep <endereço ip do cliente>

No caso do exemplo, o cliente PXE não estava solicitando a opção 66, mas estava especificando a opção 60 e solicitando a opção 43 na lista de parâmetros da opção 55. Também estava solicitando o próximo servidor (opção 12). Observe que ele solicitou o nome de arquivo PXE através da opção 67.

A resposta mostra o arquivo de inicialização e a opção 67

TCPdump no switch leaf: