如何开始在 Oracle Solaris 11 中配置网络

如题所述

  Oracle Solaris 11 引入了两个新命令来进行手动管理网络:dladm 和 ipadm,二者结合使用可以取代 ifconfig。与 ifconfig 不同,由 dladm 和 ipadm 所做的更改在重新启动后持久保存。它们有着通用、一致的命令格式,并且与 ifconfig 不同,它们的输出可以解析,从而可在脚本中使用。

  dladm 可执行数据链路(第 2 层)管理,配置物理链路、聚合、VLAN、IP 隧道和 InfiniBand 分区。它还管理链路层属性。

  ipadm 可配置 IP 接口、IP 地址和 TCP/IP 协议属性。它还可取代 ndd 来进行网络层和传输层调优。

  数据链路名称不再与物理接口相同,它们可能是虚拟设备。它们改为使用通用名称,如 net0 或 net1,管理员也可以为它们指定描述性名称。这就使得在更改基础硬件时不会影响网络配置。

  此外,Oracle Solaris 11 添加了使用网络配置文件自动配置网络的功能。配置文件由两个管理命令(netadm 和 netcfg)管理,用一个实体描述网络接口、名称服务、路由和 IP 过滤器和 IPsec 策略的配置。

  手动和自动网络模式
  Oracle Solaris 11 使用基于配置文件的网络配置,其配置模式有两种:手动配置和自动配置。

  根据您在安装过程中所选的模式,系统激活 DefaultFixed 网络配置文件 (NCP) 或 Automatic NCP。

  Automatic NCP 使用 DHCP 来从连接的任何以太网接口获取基本网络配置(IP 地址、路由器和 DNS 服务器)。如果失败,它将尝试连接已知网络列表中信号最好的无线网络。

  DefaultFixed NCP 有效地禁用了自动网络配置,需要使用 dladm 和 ipadm 手动配置网络接口以及使用 Oracle Solaris Service Management Facility (SMF) 配置名称服务。

  与使用 DefaultFixed NCP 并手动配置网络相比,创建自己的 NCP 可以更轻松地管理 Oracle Solaris 11 联网。

  对于要使用 Oracle Solaris Dynamic Reconfiguration 重新配置的系统或使用了可热交换接口的情形,应用使用 DefaultFixed NCP。IP 多路径传送必须使用这种配置方式,这是因为使用 Automatic NCP 时不支持 IP 多路径传送。

  可以使用 netadm 查看系统上哪些网络配置文件是活动的:

  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

  我们在这里不做过多讲解,后面将有一节对此进行介绍。以上输出显示已经启用了 Automatic NCP。

  要切换到 DefaultFixed NCP,从而启用手动联网,运行以下命令:

  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.

  要切换回 Automatic NCP,使用以下命令:

  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

  随着系统开始配置数据链路并从 DHCP 服务器接收 IP 地址,我们很快会回到原始联机状态:

  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

  手动网络配置
  在以下示例中,我们将手动配置服务器来获得静态 IPv4 地址 10.163.198.20。

  首先,我们将切换到 DefaultFixed NCP(如果尚未进行此操作):

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

  在有多个物理网络的计算机上,可以使用 dladm 确定如何将网络接口名称映射到物理接口。

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

  创建静态 IP 地址是分两步进行,一是创建 IP 接口,二是创建 IP 地址。一个 IP 接口可以关联多个 IP 地址。IP 地址对象的名称采用这种形式 接口/描述。

  在清单 1 所示示例中,我们使用 acme 作为描述。

  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
  清单 1. 配置静态 IP 地址

  然后我们可以添加持久性默认路由:

  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

  使用 SMF 的名称服务配置
  名称服务配置现在通过 SMF 服务而不是通过 /etc 中的配置文件来存储和配置。这个变化是 Oracle Solaris 11 中更广泛配置变化中的一部分,它提供了更大程度的管理可审计性和对系统配置的控制,尤其是在系统更新期间。

  SMF 服务 svc:/network/dns/client 管理过去位于 /etc/resolv.conf 中的配置信息。SMF 服务 svc:/system/name-service/switch 管理过去位于 /etc/nsswitch.conf 中的配置信息。在两种情况下,配置信息还存储在老式文件中,以便与可能读取它们的其他应用程序兼容。您不 应直接编辑这些老式文件。对属性的更改只有在刷新、重新启动或启用服务后才会反映到老式文件中。

  注:指定列表和字符串作为 SMF 属性时要求用引号将它们括起来或转义括号和引号以防止 shell 解释它们。

  示例:使用 SMF 配置 DNS 客户端
  在以下示例中,我们对 svc:/network/dns/client SMF 服务使用 svccfg 命令配置域名服务 (DNS)。这使我们能够通过主机名查找 IP 地址或反之:

  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

  进行配置更改之后,刷新 SMF 服务:

  root@solaris:~# svcadm refresh svc:/network/dns/client

  不必设置每个名称服务数据库的属性。可以使用特殊属性 config/default 提供默认值。不能使用默认值的项可以单独定制。

  示例:使用 SMF 配置 /etc/switch.conf
  在以下示例中,我们使用名称服务切换机制让系统可以搜索 DNS、LDAP、NIS 或本地文件源来查找命名信息。再次对 svc:/system/name-service/switch SMF 服务使用 svccfg 命令:

  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

  注:config/host 属性定义 /etc/nsswitch.conf 中的 hosts 和 ipnodes 项,而 config/password 属性定义 passwd 项。其余属性与其 /etc/nsswitch.conf 项的名称相同。

  设置主机名
  在 Oracle Solaris 11 中,已经删除 /etc/nodename 并代之以 svc:/system/identity:node 服务的 config/nodename 属性。

  为设置主机名,我们再次使用 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

  这种设置主机名的方式适用于自动和手动网络配置。

  /etc/hosts 的变化
  在 Oracle Solaris 11 中,主机 /etc/hosts 中的项现与 localhost 中的一样。在先前版本的 Oracle Solaris 中,此项与第一个网络接口关联。

  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

  注:有些应用程序安装程序可能会因 /etc/hosts 文件中的变化而失败。如果遇到这种情况,可能需要直接编辑 /etc/hosts。

  使用配置文件的自动网络配置
  在 Oracle Solaris 11 中,网络配置文件有助于聚合分散在先前版本 Oracle Solaris 多个不同配置文件中的网络配置。切换网络配置文件将导致由单个管理操作应用的不同网络配置的一系列更改。

  虽然由于兼容问题,保留了传统配置文件,但您不 应直接编辑任何这些文件,这是因为在配置文件激活或系统重新启动时将覆盖任何修改。

  网络配置文件
  网络配置文件至少包含网络配置文件 (NCP) 和位置配置文件,并且还可能包含外部网络修饰器 (ENM) 和已知无线网络 (WLAN)。

  NCP 将一组数据链路和 IP 接口定义为网络配置单元 (NCU)。位置配置文件定义只能在基本 IP 配置之后配置的其他配置,如名称服务、IP 筛选器规则和 IPsec 策略。

  ENM 是在激活或取消激活配置文件时直接修改网络配置的应用程序或服务。例如,配置虚拟私有网络 (VPN) 需要 ENM。本文不介绍 ENM 的使用或无线网络的配置。

  配置文件有手动或自动激活模式。当自动配置文件处于活动状态时,外部网络事件会使 Oracle Solaris 重新评估哪个是“最佳”自动配置文件并使该配置文件进入活动状态。外部事件包括连接或断开以太网电缆、获得或失去 DHCP 租约或发现无线网络。总有一个活动 NCP 和位置配置文件。无法通过禁用当前配置文件来禁用联网。

  创建网络配置文件
  未经过修改的 Automatic 配置文件一般不适用于大多数企业网络,无论这些网络是静态的还是通过 DHCP 提供的配置信息多于 Automatic 配置文件使用的信息的。

  如果网络具有静态分配的 IP 地址,则需要创建一个 NCP 和一个位置配置文件。

  在本例中,我们将以一个杜撰的 Acme 公司的典型企业网络为例。它有静态分配的网络地址,使用 NIS 和 DNS 组合,不使用 IPv6。

  要在 Acme 网络上配置系统,我们需要创建一个 NCP 和一个位置配置文件。
温馨提示:答案为网友推荐,仅供参考
相似回答