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

高手,请讲解下,如何开始在 Oracle Solaris 11 中配置网络
最新回答
回忆毕竟是远了

2021-05-30 16:47:10

Oracle Solaris 11 网络架构与先前版本的 Oracle Solaris 相比有了很大的变化。不但实现方式发生了变化,而且网络接口的名称以及管理和配置这些接口的命令和方法也有了变化。

OTN 旨在帮助您充分熟悉 Oracle 技术以便作出明智的决策。提供文章、软件下载、文档等。立即加入,获取完成工作所需的技术资源。

引入这些变化是为了给网络管理带来更统一的集成式体验,特别是当管理员添加如链路聚合、桥接、负载平衡或虚拟网络等较复杂的配置时。除了传统的固定网络配置之外,Oracle Solaris 11 还引入了使用网络配置文件的自动网络配置。

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 和一个位置配置文件。

示例:创建 NCP

要创建 NCP 及其 NCU,我们使用 netcfg。对于物理链路,我们接受 netcfg 提供的默认值。对于 IP 配置,我们希望采用 IPv4 寻址和静态 IP 地址分配,如清单 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