Como configurar uma rede no Oracle Solaris 11

Por Andrew Walton
Postado em Dezembro 2014


Novas características da configuração de redes no Oracle Solaris 11
Modos de configuração de redes manual e automático
Configuração manual de redes
   Configuração de serviço de nomeação mediante o serviço SMF
   Configuração do nome de host
   Alterações em /etc/hosts
Configuração automática de redes mediante perfis
   Perfis de rede
   Criação de um perfil de configuração de rede
Sumário
Informações adicionais

A arquitetura de redes Oracle Solaris 11 apresenta importantes diferenças em relação a versões anteriores do Oracle Solaris. Não só mudou a implementação, mas também os nomes das interfaces de rede e os comandos e métodos para gerenciá-los e configurá-los.

O objetivo fundamental da rede OTN é ajudar você a se familiarizar com as tecnologias Oracle, a fim de poder tomar uma decisão segura. Artigos, downloads de software, documentação e muito mais. Una-se e obtenha os recursos técnicos que você precisa para seu trabalho.

Estas mudanças foram introduzidas para oferecer uma experiência de gerenciamento de redes mais consistente e integrada, especialmente, com a incorporação de configurações mais complexas pelos gerentes, incluindo agregação de links, pontes, balanceamento de cargas ou redes virtuais. Além da configuração de rede fixa tradicional, o Oracle Solaris 11 incorpora a configuração automática da rede mediante perfis de rede.


Novas características da configuração da rede no Oracle Solares 11

O Oracle Solaris 11 apresenta dois novos comandos para gerenciamento manual da rede, dladm e ipadm; ambos substituem ifconfig. Diferentemente de ifconfig, as mudanças introduzidas por dladm e ipadm persistem após as reinicializações. Compartilham um formato de comando comum e consistente e, diferentemente de ifconfig, têm saída analisável que pode ser utilizada em sequências de código.
dladm gerencia a camada de datalinks (camada 2) para configurar links físicos, agregações, VLAN, túneis IP e partições InfiniBand. Além disso, gerencia propriedades da camada de links.
ipadm configura interfaces IP, endereços IP e propriedades do protocolo TCP/IP. Também substitui o uso de ndd para o ajuste das camadas de transporte e de rede.
Os nomes dos datalinks não coincidem com a interface física, que pode ser um dispositivo virtual, mas eles agora são genéricos, como net0 o net1; alternativamente, os administradores podem atribuir a eles nomes descritivos. Assim, é possível trocar o hardware subjacente sem nenhum impacto na configuração da rede.
Além disso, o Oracle Solaris 11 incorpora a configuração automática da rede mediante perfis de rede. Os perfis são gerenciados mediante dois comandos administrativos—netadm e netcfg—e descrevem a configuração das interfaces de rede, os serviços de nomes, o roteamento, e as políticas dos filtros IP e IPsec em uma única entidade.


Modos de configuração de redes manual e automático

O Oracle Solaris 11 recorre à configuração de redes baseada em perfis, abrangendo dois modos de configuração de redes: manual e automático.
Dependendo do modo escolhido durante a instalação, será ativado no sistema o perfil de configuração de rede (NCP) DefaultFixed ou o NCP Automatic.
O NCP Automatic usa o protocolo DHCP para obter uma configuração de rede básica (endereço IP, roteador e servidor DNS) de qualquer uma das interfaces Ethernet conectadas. Se o procedimento falhar, este tentará a conexão com a melhor rede sem fio da lista de redes conhecidas.
O NCP DefaultFixed desativa efetivamente a configuração automática de rede e requer a configuração manual das interfaces de rede mediante dladm e ipadm, e do serviço de nomeação mediante a utilidade Service Management Facility (SMF) do Oracle Solaris.
O gerenciamento da configuração de redes no Oracle Solaris 11 é mais simples criando perfis NCP próprios do que usando o NCP DefaultFixed e configurando a rede de forma manual.
O NCP DefaultFixed deve ser usado com sistemas que vão ser reconfigurados mediante Dynamic Reconfiguration do Oracle Solaris ou quando são utilizadas interfaces hot-swap. Seu uso é necessário para a habilitação de múltiplas rotas IP, não admitida quando é utilizado o NCP Automatic .
É possível usar netadm para saber quais perfis de rede estão ativos em um sistema:

root@solaris:~# netadm list
TYPE       PROFILE     STATE
ncp        Automatic   online
ncu:phys   net0        online
ncu:ip     net0        online
loc        Automatic   online
loc        NoNet       offline
loc        User        online

Sem entrar em muitos detalhes agora (vamos abordar este tema em uma seção posterior), a saída anterior mostra que o NCP Automatic está ativado.
Para mudar para o NCP DefaultFixed e assim habilitar a configuração manual da rede, rode o seguinte comando:

root@solaris:~# netadm enable -p ncp DefaultFixed
root@solaris:~# netadm list
netadm:  DefaultFixed NCP is enabled; automatic network management is not available.
'netadm  list' is only supported when automatic network management is active.

E para retornar para o NCP Automatic, use o seguinte comando:

root@solaris:~# netadm enable -p ncp Automatic
root@solaris:~# netadm list
TYPE       PROFILE     STATE
ncp        Automatic   uninitialized
ncu:phys   net0         uninitialized
ncu:ip     net0         uninitialized
loc        Automatic   uninitialized

Quando o sistema inicia a configuração dos datalinks e recebe um endereço IP do servidor DHCP, imediatamente retornamos para o estado online original:

root@solaris:~# netadm list
TYPE       PROFILE     STATE
ncp        Automatic   online
ncu:phys   net0        online
ncu:ip     net0        online
loc        Automatic   online
loc        NoNet       offline
loc        User        online 

 


Configuração de manual de redes

No exemplo a seguir, vamos configurar manualmente nosso servidor para ter o endereço IPv4 estático 10.163.198.20.
Em primeiro lugar, passaremos para o NCP DefaultFixed, se isso não tiver sido feito:

root@solaris:~# netadm enable -p ncp DefaultFixed

 

Em uma máquina com múltiplas redes físicas, você pode usar dladm para determinar o modo em que os nomes de interface de rede são alocados às interfaces físicas.

root@solaris:~# dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE net0              Ethernet             up         1000   full      e1000g0 net1              Ethernet             unknown    0      unknown   pcn0

A criação de um endereço IP estático é um processo de dois passos, envolvendo a criação de uma interface IP e um endereço IP. Podem existir vários endereços IP associados a uma interface IP. Os objetos de endereço IP têm nomes que respondem ao formato interface/descrição.
No exemplo da Lista 1, usamos acme como descrição.

root@solaris:~# ipadm create-ip net0
     root@solaris:~# ipadm show-if
     IFNAME     CLASS       STATE      ACTIVE      OVER
     lo0        loopback   ok          yes         ---
     net0       ip         down       no          ---
     root@solaris:~# ipadm create-addr -T static -a 10.163.198.20/24 net0/acme
     root@solaris:~# ipadm show-if
     IFNAME      CLASS      STATE      ACTIVE      OVER
     lo0         loopback   ok         yes         ---
     net0        ip        ok         yes         ---
     root@solaris:~# ipadm show-addr
     ADDROBJ     TYPE       STATIC     ADDR
     lo0/v4      static     ok         127.0.0.1/8
     net0/acme   static     ok         10.163.198.20/24
     lo0/v6      static     ok         ::1/128


Lista 1. Configuração de um endereço IP estático
A seguir, podemos adicionar uma rota persistente predeterminada:

     root@solaris:~# route -p add default 10.163.198.1
     add net  default: gateway 10.163.198.1
     add  persistent net default: gateway 10.163.198.1


Configuração de serviço de nomeação mediante o serviço SMF

A configuração do serviço de nomeação é agora armazenada e configurada mediante os serviços SMF, e não mais através dos arquivos de configuração de /etc. Esta mudança faz parte de um conjunto mais amplo de mudanças relacionadas às configurações no Oracle Solaris 11, oferecendo maior capacidade de auditoria administrativa e controle sobre a configuração do sistema, particularmente, durante os updates do sistema.
O serviço SMF svc:/network/dns/client gerencia a informação de configuração que anteriormente estava em /etc/resolv.conf. O serviço SMF svc:/system/name-service/switch gerencia a informação de configuração que anteriormente estava em /etc/nsswitch.conf. Em ambos os casos, a informação de configuração é também armazenada nos arquivos legados, a fim de oferecer compatibilidade com outros aplicativos, permitindo sua leitura.  Esses arquivos legados não devem ser editados diretamente. As mudanças nas propriedades não vão se refletir nos arquivos legados até o serviço ser atualizado, reinicializado ou ativado.
Nota: Para especificar listas e cadeias como propriedades SMF é necessário colocá-las entre aspas ou "escapar" parênteses e aspas para evitar que o shell interprete.

Exemplo: Configuração de um cliente DNS mediante SMF
No exemplo a seguir, configuramos o Serviço de Nomeação de Domínio (DNS) com o comando svccfg no serviço SMF svc:/network/dns/client . Assim, poderemos pesquisar endereços IP para nomes de host e vice-versa.

root@solaris:~# svccfg -s svc:/network/dns/client setprop \
config/search='("uk.acme.com"  "us.acme.com" "acme.com")'
root@solaris:~# svccfg -s svc:/network/dns/client listprop config/search
   config/search  astring  "uk.acme.com"  "us.acme.com" "acme.com"
root@solaris:~# svccfg -s svc:/network/dns/client setprop \
config/nameserver=net_address:  '(10.167.162.20 10.167.162.36)'
root@solaris:~# svccfg -s svc:/network/dns/client listprop config/nameserver
   config/nameserver net_address 10.167.162.20 10.167.162.36 
   Após ter introduzido as mudanças de  configuração, atualizamos o serviço SMF: 
   root@solaris:~# svcadm refresh svc:/network/dns/client

Não é necessário definir as propriedades para cada base de dados de serviço de nomeação. Podemos utilizar a propriedade especial config/default para proporcionar um valor predeterminado. Também é possível customizar de forma individual as entradas que não podem usar o valor predeterminado.

Exemplo: Configuração de /etc/switch.conf mediante SMF
No exemplo a seguir, usamos o mecanismo de comutação de serviço de nomeação para permitir que nosso sistema explore as fontes DNS, LDAP, NIS ou de arquivos locais procurando informação de nomes.  Usamos novamente o comando svccfg com o serviço SMF svc:/system/name-service/switch:

   root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/default =  "files nis" 
   root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/host = "files  dns nis" 
   root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/password  = "files nis" 
   root@solaris:~# svcadm refresh svc:/system/name-service/switch

Nota: A propriedade config/host define os valores hosts e ipnodes em /etc/nsswitch.conf, enquanto a propriedade config/password define o valor passwd. As propriedades restantes têm o mesmo nome que seus valores /etc/nsswitch.conf.



Definição do nome de host

No Oracle Solaris 11, foi eliminado /etc/nodename e substituído pela propriedade config/nodename do serviço svc:/system/identity:node.
Para definir o nome de host, usamos novamente svccfg:

   root@solaris:~# svccfg -s svc:/system/identity:node setprop config/nodename = astring:  hostname
   root@solaris:~# svcadm refresh svc:/system/identity:node
   root@solaris:~# svcadm restart identity:node 
   Podemos definir o nome de host deste modo tanto  para as configurações de rede automáticas quanto manuais. 



Alterações em
/etc/hosts
No Oracle Solaris 11, o valor próprio de host em /etc/hosts passou a ser o mesmo que o do localhost. Em versões anteriores do Oracle Solaris, este valor estava associado à primeira interface de rede.

   root@solaris:~# cat /etc/hosts
   #
   #  Copyright 2009 Sun Microsystems, Inc.   All rights reserved.
   # Use is  subject to license terms.
   #
   #  Internet host table
   #
   ::1 solaris localhost 
   127.0.0.1 solaris localhost  loghost 

Nota: Alguns instaladores de aplicativos podem falhar por causa das mudanças introduzidas no arquivo /etc/hosts. Caso aconteça isso com você, é possível que tenha que editar /etc/hosts diretamente.



Configuração automática de redes mediante perfis

No Oracle Solaris 11, os perfis de rede ajudam a agregar a configuração de rede que, em versões prévias do Oracle Solaris, estava desagregada em diversos arquivos de configuração diferentes. A alteração dos perfis de rede resulta em um conjunto de mudanças em diferentes configurações da rede, que se aplicam a uma única operação administrativa.
Os arquivos de configuração tradicionais continuam existindo por razões de compatibilidade, porém, eles não devem ser editados diretamente porque qualquer alteração vai se sobrescrever quando um perfil for ativado ou o sistema for reinicializado.



Perfis de rede

Um perfil de rede contém, no mínimo, um Perfil de configuração de rede (NCP) e um Perfil de localização e, opcionalmente, Modificadores de rede externos (ENM) e Redes sem fio conhecidas (WLAN).
Os NCP definem um conjunto de datalinks e interfaces IP como Unidades de configuração de rede (NCU). Um Perfil de localização especifica parâmetros adicionais de configuração, como serviço de nomeação, regras de filtros IP e políticas IPsec, que podem ser configurados logo após ter definido a configuração IP básica.
Os ENM são aplicações ou serviços que modificam diretamente a configuração da rede quando um perfil é ativado ou desativado.  Por exemplo, para configurar uma rede privada virtual (VPN) é necessário um ENM. O uso de modificadores ENM ou a configuração de redes sem fio não são abordados neste artigo.
Os perfis têm um modo de ativação manual ou automático. Quando encontramos ativo um perfil automático, os eventos externos da rede levam o Oracle Solaris a reavaliar qual o "melhor" perfil automático e ativá-lo. Os eventos externos incluem ligar ou desligar um cabo de Ethernet, obter ou perder uma concessão DHCP ou detectar uma rede sem fio. Há sempre um Perfil de localização e um NCP ativos. Não é possível desativar a integração em rede desativando o perfil atual.



Criação de um perfil de configuração de rede

Sem modificações, o perfil Automatic costuma não ser adequado para a maioria das redes corporativas, que são estáticas ou fornecem mais informações sobre a configuração via DHCP do que a utilizada pelo perfil Automatic.
Caso sua rede tenha um endereço IP alocado estaticamente, deverá criar um NCP e um Perfil de localização.
Neste exemplo, estudamos uma rede corporativa típica de uma corporação Acme fictícia. Esta tem endereços de rede alocados estaticamente, usa uma combinação de NIS e DNS, e não utiliza IPv6.
Para configurar um sistema na rede da Acme, devemos criar um NCP e um Perfil de localização.


Exemplo: Criação de um NCP
Para criar o NCP e seus NCU componentes, usamos netcfg. Para o link físico, aceitamos os valores predeterminados fornecidos por netcfg. Para a configuração IP, precisamos de endereçamento IPv4 e de alocação de um endereço IP estático, como mostrado na Lista 2.

root@solaris:~# netcfg
   netcfg> create ncp acme.corp.ncp
   netcfg:ncp:acme.corp.ncp> create ncu phys net0
   Created  ncu 'net0'.  Walking properties ...
   activation-mode  (manual) [manual|prioritized]> 
   link-mac-addr> 
   link-autopush> 
   link-mtu> 
   netcfg:ncp:acme.corp.ncp:ncu:net0>  list
   ncu:net0
   type               link
   class              phys
   parent             "acme.corp.ncp"
   activation-mode    manual
   enabled            true
   netcfg:ncp:acme.corp.ncp:ncu:net0> end
   Committed  changes
   netcfg:ncp:acme.corp.ncp> create ncu ip net0
   Created  ncu 'net0'.  Walking properties ...
   ip-version  (ipv4,ipv6) [ipv4|ipv6]> ipv4
   ipv4-addrsrc  (dhcp) [dhcp|static]> static
   ipv4-addr> 10.163.198.20/24
   ipv4-default-route> 10.163.198.1
   netcfg:ncp:acme.corp.ncp:ncu:net0> list
   ncu:net0
   type                interface
   class               ip
   parent              "acme.corp.ncp"
   enabled             true
   ip-version          ipv4
   ipv4-addrsrc        static
   ipv4-addr           "10.163.198.20/24"
   ipv4-default-route  "10.163.198.1"
   ipv6-addrsrc        dhcp,autoconf
   netcfg:ncp:acme.corp.ncp:ncu:net0> end
   Committed  changes
   netcfg:ncp:acme.corp.ncp> end
   netcfg> end


Lista 2. Criação do NCP
Agora, temos que criar o Perfil de localização, como mostrado na Lista 3. Associamos o Perfil de localização ao perfil de rede, através do modo de ativação. O Perfil de localização vai se ativar automaticamente, desde que o NCP estiver ativo.
Como a Acme usa uma combinação de serviços de nomeação DNS e NIS, temos que fornecer nosso próprio /etc/nsswitch.conf, o qual chamaremos /etc/nsswitch.acme.

   root@solaris:~# netcfg
   netcfg> create loc acme.corp.loc
   Created  loc 'acme.corp.loc'.  Walking properties  ...
   activation-mode  (manual) [manual|conditional-any|conditional-all]> conditional-all
   conditions> ncp acme.corp.ncp is active
   nameservices  (dns) [dns|files|nis|ldap]> dns,nis
   nameservices-config-file  ("/etc/nsswitch.dns")> /etc/nsswitch.acme
   dns-nameservice-configsrc  (dhcp) [manual|dhcp]> manual
   dns-nameservice-domain> 
   dns-nameservice-servers> 10.167.162.20,10.167.162.36
   dns-nameservice-search> acme.com,uk.acme.com,us.acme.com
   dns-nameservice-sortlist> 
   dns-nameservice-options> 
   nis-nameservice-configsrc  [manual|dhcp]> manual
   nis-nameservice-servers> 10.167.162.21
   default-domain> acme.com
   nfsv4-domain> 
   ipfilter-config-file> 
   ipfilter-v6-config-file> 
   ipnat-config-file> 
   ippool-config-file> 
   ike-config-file> 
   ipsecpolicy-config-file> 
   netcfg:loc:acme.corp.loc> list
   loc:acme.corp.loc
   activation-mode             conditional-all
   conditions                  "ncp acme.corp.ncp is  active"
   enabled                     false
   nameservices                dns,nis
   nameservices-config-file    "/etc/nsswitch.acme"
   dns-nameservice-configsrc   manual
   dns-nameservice-servers      "10.167.162.20","10.167.162.36"
   dns-nameservice-search       "acme.com","uk.acme.com","us.acme.com"
   nis-nameservice-configsrc   manual
   nis-nameservice-servers     "10.167.162.21"
   default-domain              "acme.com"
   netcfg:loc:acme.corp.loc> end
   Committed  changes
   netcfg> end


Lista 3. Criação do Perfil de localização
Agora podemos ativar o NCP, como mostrado na Lista 4, e o Perfil de localização se ativará de forma automática.

   root@solaris:~# netadm enable acme.corp.ncp
   Enabling  ncp 'acme.corp.ncp'
   root@solaris:~# netadm list
   TYPE        PROFILE        STATE
   ncp         acme.corp.ncp  online
   ncu:phys    net0           online
   ncu:ip      net0           online
   ncp         Automatic      disabled
   loc         acme.corp.loc  online
   loc         Automatic      offline
   loc         NoNet          offline
   loc         User           disabled


Lista 4. Ativação do NCP
Edição de um NCP
Há duas formas de editar um NCP existente com netcfg. O comando set permite definir propriedades individuais, enquanto o comando walkprop percorre todas as propriedades.
netcfg executa de forma automática um comando walkprop quando um perfil é criado.
No exemplo da Lista 5, incorporamos um terceiro servidor DNS no Perfil de localização acme.corp.loc existente.

   root@solaris:~# netcfg
   netcfg> select loc acme.corp.loc 
   netcfg:loc:acme.corp.loc> list 
   loc:acme.corp.loc 
   activation-mode             conditional-all 
   conditions                  "ncp acme.corp.ncp is  active" 
   enabled                     false 
   nameservices                dns,nis 
   nameservices-config-file    "/etc/nsswitch.acme" 
   dns-nameservice-configsrc   manual 
   dns-nameservice-servers      "10.167.162.20","10.167.162.36" 
   dns-nameservice-search      "acme.com",  "uk.acme.com","us.acme.com"
   nis-nameservice-configsrc   manual
   nis-nameservice-servers     "10.167.162.21"
   default-domain              "acme.com" 
   netcfg:loc:acme.corp.loc>


Lista 5. Incorporação de um servidor DNS
O comando list só mostra propriedades especificadas; list -a mostra todas as propriedades do perfil, como podemos ver na Lista 6.

   netcfg:loc:acme.corp.loc> list -a
   loc:acme.corp.loc 
   activation-mode             conditional-all 
   conditions                  "ncp acme.corp.ncp is  active" 
   enabled                     false 
   nameservices                dns,nis 
   nameservices-config-file    "/etc/nsswitch.acme" 
   dns-nameservice-configsrc   manual
   dns-nameservice-domain 
   dns-nameservice-servers      "10.167.162.20","10.167.162.36" 
   dns-nameservice-search      "acme.com",  uk.acme.com","us.acme.com"
   dns-nameservice-sortlist
   dns-nameservice-options
   nis-nameservice-configsrc   manual
   nis-nameservice-servers     "10.167.162.21"
   ldap-nameservice-configsrc
   ldap-nameservice-servers
   default-domain              "acme.com"
   nfsv4-domain
   ipfilter-config-file
   ipfilter-v6-config-file
   ipnat-config-file
   ippool-config-file
   ike-config-file
   ipsecpolicy-config-file
   netcfg:loc:acme.corp.loc>
   netcfg:loc:acme.corp.loc> set dns-nameservice-servers =  "10.167.162.20","10.167.162.36","192.135.82.44" 
   netcfg:loc:acme.corp.loc> list 
   loc:acme.corp.loc 
   activation-mode             conditional-all 
   conditions                  "ncp acme.corp.ncp is  active" 
   enabled                     false 
   nameservices                dns,nis 
   nameservices-config-file    "/etc/nsswitch.dns" 
   dns-nameservice-configsrc   manual 
   dns-nameservice-servers      "10.167.162.20","10.167.162.36","192.135.82.44" 
   dns-nameservice-search      "acme.com",  uk.acme.com","us.acme.com"
   nis-nameservice-configsrc   manual
   nis-nameservice-servers     "10.167.162.21"
   netcfg:loc:acme.corp.loc> verify 
   All  properties verified 
   netcfg:loc:acme.corp.loc> commit 
   Committed  changes 
   netcfg:loc:acme.corp.loc> end 
   netcfg> end 
   root@solaris:~#
   

Lista 6. Visualização de todas as propriedades



Sumário

No Oracle Solaris 11, a configuração de rede mudou de maneira substancial com a introdução de perfis de configuração de rede e o gerenciamento consolidado em todas as diferentes facetas da trama de integração em rede no data center. Mediante os perfis de configuração de rede, os gerentes podem simplificar configurações complexas e aplicá-las como uma única unidade de mudança.



Informações adicionais

Para mais informações relacionadas ao gerenciamento de redes no Oracle Solaris 11, leia os seguintes manuais de gerenciamento:

Alguns recursos adicionais relacionados ao Oracle Solaris 11:



Andrew Walton é engenheiro sênior do grupo de ISV da Oracle; trabalhou com o UNIX por mais de 20 anos, durante os quais se desempenhou na Silicon Graphics, na Sun e na Oracle. É especializado em otimização do desempenho de aplicações e migração de código C e C++.