Implantar o controlador de rede usando o Windows PowerShell

Este tópico fornece instruções sobre como usar o PowerShell do Windows para implantar o Controlador de Rede em uma ou mais VMs (máquinas virtuais) que executam o Windows Server 2019 ou 2016.

Importante

Não implante a função de servidor do Controlador de Rede em hosts físicos. Para implantar o Controlador de Rede, é necessário instalar a função de servidor do Controlador de Rede em uma VM (máquina virtual) do Hyper-V instalada em um host Hyper-V. Após instalar o Controlador de Rede em VMs em três hosts Hyper-V diferentes, será necessário habilitar os hosts Hyper-V para SDN (Rede Definida por Software) adicionando os hosts ao Controlador de Rede usando o comando do Windows PowerShell New-NetworkControllerServer. Ao fazer isso, você habilitará o Load Balancer do Software SDN para funcionar. Para obter mais informações, consulte New-NetworkControllerServer.

Este tópico inclui as seções a seguir.

Instalar a função de servidor do Controlador de Rede

Use esse procedimento para instalar a função de servidor do Controlador de Rede em uma VM (máquina virtual).

Importante

Não implante a função de servidor do Controlador de Rede em hosts físicos. Para implantar o Controlador de Rede, é necessário instalar a função de servidor do Controlador de Rede em uma VM (máquina virtual) do Hyper-V instalada em um host Hyper-V. Depois de instalar o Controlador de Rede em VMs em três hosts Hyper-V diferentes, é necessário habilitar os hosts Hyper-V para SDN (Rede Definida por Software) adicionando os hosts ao Controlador de Rede. Ao fazer isso, você ativa o SDN Software Load Balancer.

A associação em Administradores, ou equivalente, é o requisito mínimo para executar este procedimento.

Observação

Caso queira usar o Gerenciador do Servidor em vez de PowerShell do Windows para instalar o Controlador de Rede, consulte Instalar a função de servidor controlador de rede usando Gerenciador do Servidor

Para instalar o Controlador de Rede usando PowerShell do Windows, digite os comandos a seguir em um prompt de PowerShell do Windows e pressione ENTER.

Install-WindowsFeature -Name NetworkController -IncludeManagementTools

A instalação do Controlador de Rede requer que você reinicie o computador. Para isso, digite o comando a seguir e pressione ENTER.

Restart-Computer

Configurar o cluster do Controlador de Rede

O cluster do Controlador de Rede fornece alta disponibilidade e escalabilidade para o aplicativo Controlador de Rede, que é possível configurar depois de criar o cluster e que está hospedado na parte superior do cluster.

Observação

Execute os procedimentos nas seções a seguir diretamente na VM em que instalou o Controlador de Rede ou use as Ferramentas de Administração de Servidor Remoto para Windows Server 2016 para executar os procedimentos de um computador remoto que está executando Windows Server 2016 ou Windows 10. Além disso, a associação em Administradores, ou equivalente, é o requisito mínimo para executar este procedimento. Se o computador ou a VM no qual você instalou o Controlador de Rede estiver ingressado em um domínio, sua conta de usuário deverá ser membro de Usuários de Domínio.

Crie um cluster de Controlador de Rede criando um objeto de nó e, em seguida, configurando o cluster.

Criar um objeto de nó

É necessário criar um objeto de nó para cada VM que seja membro do cluster do Controlador de Rede.

Para criar um objeto de nó, digite o seguinte comando no prompt de comando do PowerShell do Windows e pressione ENTER. Adicione valores para cada parâmetro apropriado para sua implantação.

New-NetworkControllerNodeObject -Name <string> -Server <String> -FaultDomain <string>-RestInterface <string> [-NodeCertificate <X509Certificate2>]

A tabela a seguir fornece descrições para cada parâmetro do comando New-NetworkControllerNodeObject.

Parâmetro Descrição
Nome O parâmetro Name especifica o nome amigável do servidor que você deseja adicionar ao cluster
Servidor O parâmetro Server especifica o nome do host, o FQDN (Nome de Domínio Totalmente Qualificado) ou o endereço IP do servidor que você deseja adicionar ao cluster. Para computadores ingressados no domínio, o FQDN é necessário.
FaultDomain O parâmetro FaultDomain especifica o domínio de falha para o servidor que você está adicionando ao cluster. Esse parâmetro define os servidores que podem apresentar falha ao mesmo tempo que o servidor que você está adicionando ao cluster. Essa falha pode ser devido a dependências físicas compartilhadas, como fontes de energia e rede. Normalmente, os domínios de falha representam hierarquias relacionadas a essas dependências compartilhadas, com servidores mais propensos a falhar juntos em um ponto mais alto na árvore do domínio de falha. Durante o tempo de execução, o Controlador de Rede considera os domínios de falha no cluster e tenta distribuir os serviços do Controlador de Rede para que fiquem em domínios de falha separados. Esse processo ajuda a garantir que, em caso de falha de qualquer domínio de falha, a disponibilidade do serviço e seu estado não sejam comprometidos. Os domínios de falha são especificados em um formato hierárquico. Por exemplo: "Fd:/DC1/Rack1/Host1", em que DC1 é o nome do datacenter, Rack1 é o nome do rack e Host1 é o nome do host em que o nó é colocado.
RestInterface O parâmetro RestInterface especifica o nome da interface no nó em que a comunicação REST (transferência de estado representacional) é encerrada. Essa interface do Controlador de Rede recebe solicitações da API DO Northbound da camada de gerenciamento da rede.
NodeCertificate O parâmetro NodeCertificate especifica o certificado que o Controlador de Rede usa para autenticação de computador. O certificado será necessário se você usar a autenticação baseada em certificado para comunicação dentro do cluster. O certificado também é usado para criptografia de tráfego entre os serviços do Controlador de Rede. O nome da entidade do certificado deve ser o mesmo que o nome DNS do nó.

Configurar o cluster

Para configurar o cluster, digite o seguinte comando no prompt de comando do PowerShell do Windows e pressione ENTER. Adicione valores para cada parâmetro apropriado para sua implantação.

Install-NetworkControllerCluster -Node <NetworkControllerNode[]> -ClusterAuthentication <ClusterAuthentication> [-ManagementSecurityGroup <string>][-DiagnosticLogLocation <string>][-LogLocationCredential <PSCredential>] [-CredentialEncryptionCertificate <X509Certificate2>][-Credential <PSCredential>][-CertificateThumbprint <String>] [-UseSSL][-ComputerName <string>][-LogSizeLimitInMBs<UInt32>] [-LogTimeLimitInDays<UInt32>]

A tabela a seguir fornece descrições para cada parâmetro do comando Install-NetworkControllerCluster.

Parâmetro Descrição
ClusterAuthentication O parâmetro ClusterAuthentication especifica o tipo de autenticação usado para proteger a comunicação entre nós e também é usado para criptografia de tráfego entre os serviços do Controlador de Rede. Os valores com suporte são Kerberos, X509 e None. A autenticação Kerberos usa contas de domínio e só poderá ser usada se os nós do Controlador de Rede forem ingressados no domínio. Caso especifique a autenticação baseada em X509, deverá fornecer um certificado no objeto NetworkControllerNode. Além disso, é necessário provisionar manualmente o certificado antes de executar esse comando.
ManagementSecurityGroup O parâmetro ManagementSecurityGroup especifica o nome do grupo de segurança que contém usuários que têm permissão para executar os cmdlets de gerenciamento de um computador remoto. Isso só será aplicável se ClusterAuthentication for Kerberos. É necessário especificar um grupo de segurança de domínio e não um grupo de segurança no computador local.
O parâmetro Node especifica a lista de nós do Controlador de Rede criado usando o comando New-NetworkControllerNodeObject.
DiagnosticLogLocation O parâmetro DiagnosticLogLocation especifica o local de compartilhamento em que os logs de diagnóstico são carregados periodicamente. Caso não especifique um valor para esse parâmetro, os logs serão armazenados localmente em cada nó. Os logs são armazenados localmente na pasta %systemdrive%\Windows\tracing\SDNDiagnostics. Os logs de cluster são armazenados localmente na pasta %systemdrive%\ProgramData\Microsoft\Service Fabric\log\Traces.
LogLocationCredential O parâmetro LogLocationCredential especifica as credenciais necessárias para acessar o local de compartilhamento onde os logs são armazenados.
CredentialEncryptionCertificate O parâmetro CredentialEncryptionCertificate especifica o certificado que o Controlador de Rede usa para criptografar as credenciais usadas para acessar binários do Controlador de Rede e o LogLocationCredential, se especificado. O certificado deve ser provisionado em todos os nós do Controlador de Rede antes de executar esse comando e o mesmo certificado deve ser registrado em todos os nós de cluster. O uso desse parâmetro para proteger binários e logs do Controlador de Rede é recomendado em ambientes de produção. Sem esse parâmetro, as credenciais são armazenadas em texto não criptografado e podem ser usadas incorretamente por qualquer usuário não autorizado.
Credencial Esse parâmetro só será necessário se você estiver executando esse comando de um computador remoto. O parâmetro Credential especifica uma conta de usuário que tem permissão para executar esse comando no computador de destino.
CertificateThumbprint Esse parâmetro só será necessário se você estiver executando esse comando de um computador remoto. O parâmetro CertificateThumbprint especifica o certificado de chave pública digital (X509) de uma conta de usuário que tem permissão para executar esse comando no computador de destino.
UseSSL Esse parâmetro só será necessário se você estiver executando esse comando de um computador remoto. O parâmetro UseSSL especifica protocolo SSL (Secure Sockets Layer) que é usado para estabelecer uma conexão com o computador remoto. Por padrão, SSL não é usado.
ComputerName O parâmetro ComputerName especifica o nó do Controlador de Rede no qual esse comando é executado. Caso não especifique um valor para esse parâmetro, o computador local será usado por padrão.
LogSizeLimitInMBs Esse parâmetro especifica o tamanho máximo do log, em MB, que o Controlador de Rede pode armazenar. Os logs são armazenados de forma circular. Se DiagnosticLogLocation for fornecido, o valor padrão desse parâmetro será 40 GB. Se DiagnosticLogLocation não for fornecido, os logs serão armazenados nos nós do Controlador de Rede e o valor padrão desse parâmetro será 15 GB.
LogTimeLimitInDays Esse parâmetro especifica o limite de duração, em dias, para o qual os logs são armazenados. Os logs são armazenados de forma circular. O valor padrão desse parâmetro é 3 dias.

Configurar o aplicativo do Controlador de Rede

Para configurar o aplicativo Controlador de Rede, digite o seguinte comando no prompt de comando do PowerShell do Windows e pressione ENTER. Adicione valores para cada parâmetro apropriado para sua implantação.

Install-NetworkController -Node <NetworkControllerNode[]> -ClientAuthentication <ClientAuthentication>  [-ClientCertificateThumbprint <string[]>]  [-ClientSecurityGroup <string>] -ServerCertificate <X509Certificate2> [-RESTIPAddress <String>] [-RESTName <String>] [-Credential <PSCredential>][-CertificateThumbprint <String> ] [-UseSSL]

A tabela a seguir fornece descrições para cada parâmetro do comando Install-NetworkController.

Parâmetro Descrição
Clientauthentication O parâmetro ClientAuthentication especifica o tipo de autenticação usado para proteger a comunicação entre REST e o Controlador de Rede. Os valores com suporte são Kerberos, X509 e None. A autenticação Kerberos usa contas de domínio e só poderá ser usada se os nós do Controlador de Rede forem ingressados no domínio. Caso especifique a autenticação baseada em X509, deverá fornecer um certificado no objeto NetworkControllerNode. Além disso, é necessário provisionar manualmente o certificado antes de executar esse comando.
O parâmetro Node especifica a lista de nós do Controlador de Rede criado usando o comando New-NetworkControllerNodeObject.
ClientCertificateThumbprint Esse parâmetro é necessário somente ao usar a autenticação baseada em certificado para clientes do Controlador de Rede. O parâmetro ClientCertificateThumbprint especifica a impressão digital do certificado registrado para clientes na camada Northbound.
ServerCertificate O parâmetro ServerCertificate especifica o certificado que o Controlador de Rede usa para provar sua identidade aos clientes. O certificado do servidor deve incluir a finalidade de Autenticação de Servidor em extensões de Uso Avançado de Chave e deve ser emitido para o Controlador de Rede por uma AC que seja confiável para os clientes.
RESTIPAddress Não é necessário especificar um valor para RESTIPAddress com uma implantação de nó único do Controlador de Rede. Para implantações de vários nós, o parâmetro RESTIPAddress especifica o endereço IP do ponto de extremidade REST na notação CIDR. Por exemplo, 192.168.1.10/24. O valor nome da entidade de ServerCertificate deve ser resolvido para o valor do parâmetro RESTIPAddress. Esse parâmetro deve ser especificado para todas as implantações do Controlador de Rede de vários nós quando todos os nós estiverem na mesma sub-rede. Se os nós estiverem em sub-redes diferentes, você deverá usar o parâmetro RestName em vez de usar RESTIPAddress.
RestName Não é necessário especificar um valor para RestName com uma implantação de nó único do Controlador de Rede. A única vez que é necessário especificar um valor para RestName é quando implantações de vários nós têm nós que estão em sub-redes diferentes. Para implantações de vários nós, o parâmetro RestName especifica o FQDN para o cluster do Controlador de Rede.
ClientSecurityGroup O parâmetro ClientSecurityGroup especifica o nome do grupo de segurança do Active Directory cujos membros são clientes do Controlador de Rede. Esse parâmetro só será necessário se você usar a autenticação Kerberos para ClientAuthentication. O grupo de segurança deve conter as contas das quais as APIs REST são acessadas e você deve criar o grupo de segurança e adicionar membros antes de executar esse comando.
Credencial Esse parâmetro só será necessário se você estiver executando esse comando de um computador remoto. O parâmetro Credential especifica uma conta de usuário que tem permissão para executar esse comando no computador de destino.
CertificateThumbprint Esse parâmetro só será necessário se você estiver executando esse comando de um computador remoto. O parâmetro CertificateThumbprint especifica o certificado de chave pública digital (X509) de uma conta de usuário que tem permissão para executar esse comando no computador de destino.
UseSSL Esse parâmetro só será necessário se você estiver executando esse comando de um computador remoto. O parâmetro UseSSL especifica protocolo SSL (Secure Sockets Layer) que é usado para estabelecer uma conexão com o computador remoto. Por padrão, SSL não é usado.

Depois de concluir a configuração do aplicativo do Controlador de Rede, a implantação do Controlador de Rede será concluída.

Validação de implantação do Controlador de Rede

Para validar a implantação do Controlador de Rede, adicione uma credencial ao Controlador de Rede e, em seguida, recuperar a credencial.

Caso esteja usando Kerberos como o mecanismo ClientAuthentication, a associação no ClientSecurityGroup criada será o mínimo necessário para executar esse procedimento.

Procedimento:

  1. Em um computador cliente, caso esteja usando Kerberos como o mecanismo ClientAuthentication, faça logon com uma conta de usuário que seja membro do ClientSecurityGroup.

  2. Abra PowerShell do Windows, digite os comandos a seguir para adicionar uma credencial ao Controlador de Rede e pressione ENTER. Adicione valores para cada parâmetro apropriado para sua implantação.

    $cred=New-Object Microsoft.Windows.Networkcontroller.credentialproperties
    $cred.type="usernamepassword"
    $cred.username="admin"
    $cred.value="abcd"
    
    New-NetworkControllerCredential -ConnectionUri https://networkcontroller -Properties $cred -ResourceId cred1
    
  3. Para recuperar a credencial que você adicionou ao Controlador de Rede, digite o comando a seguir e pressione ENTER. Adicione valores para cada parâmetro apropriado para sua implantação.

    Get-NetworkControllerCredential -ConnectionUri https://networkcontroller -ResourceId cred1
    
  4. Examine a saída do comando, que deve ser semelhante à saída de exemplo a seguir.

    Tags                   :
    ResourceRef     : /credentials/cred1
    CreatedTime    : 1/1/0001 12:00:00 AM
    InstanceId        : e16ffe62-a701-4d31-915e-7234d4bc5a18
    Etag                  : W/"1ec59631-607f-4d3e-ac78-94b0822f3a9d"
    ResourceMetadata :
    ResourceId       : cred1
    Properties       : Microsoft.Windows.NetworkController.CredentialProperties
    

    Observação

    Ao executar o comando Get-NetworkControllerCredential, atribuía a saída do comando a uma variável usando o operador dot para listar as propriedades das credenciais. Por exemplo, $cred. Propriedades.

Comandos de PowerShell do Windows adicionais para o Controlador de Rede

Depois de implantar o Controlador de Rede, use os comandos do PowerShell do Windows para gerenciar e modificar sua implantação. A seguir estão algumas das alterações que é possível fazer em sua implantação.

  • Modificar as configurações de nó, cluster e aplicativo do Controlador de Rede

  • Remover o cluster e o aplicativo do Controlador de Rede

  • Gerenciar nós de cluster do Controlador de Rede, incluindo adicionar, remover, habilitar e desabilitar nós.

A tabela a seguir fornece a sintaxe para os comandos do PowerShell do Windows que é possível usar para realizar essas tarefas.

Tarefa Comando Sintaxe
Modificar as configurações do cluster do Controlador de Rede Set-NetworkControllerCluster Set-NetworkControllerCluster [-ManagementSecurityGroup <string>][-Credential <PSCredential>] [-computerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Modificar as configurações de aplicativo do Controlador de Rede Set-NetworkController Set-NetworkController [-ClientAuthentication <ClientAuthentication>] [-Credential <PSCredential>] [-ClientCertificateThumbprint <string[]>] [-ClientSecurityGroup <string>] [-ServerCertificate <X509Certificate2>] [-RestIPAddress <String>] [-ComputerName <String>][-CertificateThumbprint <String> ] [-UseSSL]
Modificar configurações de nó do Controlador de Rede Set-NetworkControllerNode Set-NetworkControllerNode -Name <string> > [-RestInterface <string>] [-NodeCertificate <X509Certificate2>] [-Credential <PSCredential>] [-ComputerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Modificar as configurações de diagnóstico do Controlador de Rede Set-NetworkControllerDiagnostic Set-NetworkControllerDiagnostic [-LogScope <string>] [-DiagnosticLogLocation <string>] [-LogLocationCredential <PSCredential>] [-UseLocalLogLocation] >] [-LogLevel <loglevel>][-LogSizeLimitInMBs <uint32>] [-LogTimeLimitInDays <uint32>] [-Credential <PSCredential>] [-ComputerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Remover o aplicativo do Controlador de Rede Uninstall-NetworkController Uninstall-NetworkController [-Credential <PSCredential>][-ComputerName <string>] [-CertificateThumbprint <String> ] [-UseSSL]
Remover o cluster do Controlador de Rede Uninstall-NetworkControllerCluster Uninstall-NetworkControllerCluster [-Credential <PSCredential>][-ComputerName <string>][-CertificateThumbprint <String> ] [-UseSSL]
Adicionar um nó ao cluster do Controlador de Rede Add-NetworkControllerNode Add-NetworkControllerNode -FaultDomain <String> -Name <String> -RestInterface <String> -Server <String> [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-Force] [-NodeCertificate <X509Certificate2> ] [-PassThru] [-UseSsl]
Desabilitar um nó de cluster do Controlador de Rede Disable-NetworkControllerNode Disable-NetworkControllerNode -Name <String> [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-PassThru] [-UseSsl]
Habilitar um nó de cluster do Controlador de Rede Enable-NetworkControllerNode Enable-NetworkControllerNode -Name <String> [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-PassThru] [-UseSsl]
Remover um nó do Controlador de Rede de um cluster Remove-NetworkControllerNode Remove-NetworkControllerNode [-CertificateThumbprint <String> ] [-ComputerName <String> ] [-Credential <PSCredential> ] [-Force] [-Name <String> ] [-PassThru] [-UseSsl]

Observação

Os comandos do PowerShell do Windows para o Controlador de Rede estão na Biblioteca TechNet em Cmdlets do Controlador de Rede.

Script de configuração do Controlador de Rede de exemplo

O script de configuração de exemplo a seguir mostra como criar um cluster do Controlador de Rede de vários nós e instalar o aplicativo Controlador de Rede. Além disso, a variável $cert seleciona um certificado no repositório de certificados de computador local que corresponde à cadeia de caracteres de nome da entidade "networkController.contoso.com".

$a = New-NetworkControllerNodeObject -Name Node1 -Server NCNode1.contoso.com -FaultDomain fd:/rack1/host1 -RestInterface Internal
$b = New-NetworkControllerNodeObject -Name Node2 -Server NCNode2.contoso.com -FaultDomain fd:/rack1/host2 -RestInterface Internal
$c = New-NetworkControllerNodeObject -Name Node3 -Server NCNode3.contoso.com -FaultDomain fd:/rack1/host3 -RestInterface Internal

$cert= get-item Cert:\LocalMachine\My | get-ChildItem | where {$_.Subject -imatch "networkController.contoso.com" }

Install-NetworkControllerCluster -Node @($a,$b,$c)  -ClusterAuthentication Kerberos -DiagnosticLogLocation \\share\Diagnostics - ManagementSecurityGroup Contoso\NCManagementAdmins -CredentialEncryptionCertificate $cert
Install-NetworkController -Node @($a,$b,$c) -ClientAuthentication Kerberos -ClientSecurityGroup Contoso\NCRESTClients -ServerCertificate $cert -RestIpAddress 10.0.0.1/24

Etapas pós-implantação para implantações não Kerberos

Caso não esteja usando o Kerberos com a implantação do Controlador de Rede, deverá implantar certificados.

Para obter mais informações, consulte Etapas pós-implantação para o controlador de rede.