跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中使用反应性网络配置连接系统 Oracle Solaris 11.1 Information Library (简体中文) |
可以使用 netcfg 命令创建用户定义的配置文件。该命令在交互模式或命令行模式下都可使用。netcfg 命令还支持将配置文件配置信息导出到输出文件。有关命令行模式和交互模式的详细信息,请参见netcfg 命令行模式和netcfg 交互模式。
如果您具有 "Console User"(控制台用户)特权,可使用 netcfg 命令创建用户定义的配置文件。这些特权会自动指定给任何从 /dev/console 登录到系统的用户。具有 "Network Autoconf Admin"(网络自动配置管理员)权限配置文件的用户还可以创建和修改所有类型的反应性网络(NWAM 管理的)配置文件和配置对象。有关更多信息,请参见网络配置安全和授权。
可以创建以下配置文件和配置对象:
网络配置文件 (network configuration profile, NCP)
位置配置文件
外部网络修饰器 (External Network Modifier, ENM)
已知无线局域网 (Known wireless local area network, Known WLAN)
网络配置单元 (Network Configuration Unit, NCU)
有关配置文件和配置对象的信息,请参见网络配置文件和类型。
注 - Automatic 和 DefaultFixed NCP 及位置配置文件是系统定义的。请勿尝试使用 netcfg 命令创建这些配置文件。
用于从命令行创建配置文件的基本命令语法如下所示:
netcfg create [ -t template ] object-type [ class ] object-name
创建指定类型和名称的内存配置文件(或配置对象)。
指定新的配置文件与 template 完全相同,其中 template 是相同类型的现有配置文件的名称。如果未使用 -t 选项,将使用缺省值创建新的配置文件。
指定要创建的配置文件的类型。
可以为 object-type 选项指定以下值之一:
ncp
ncu
loc
enm
wlan
必须在全局范围内创建由除 ncu 以外的 object-type 选项指定的所有配置文件,才能使用 netcfg 命令选择特定对象。
指定由 object-type 所指定的配置文件的类。此参数仅用于 ncu 对象类型且有两个可能值,phys(用于链路 NCU)或 ip(用于接口 NCU)。
指定用户定义的配置文件的名称。对于 NCU,object-name 是相应的链路或接口的名称。对于所有其他配置文件类型,object-name 是任何用户定义的名称。
注 - 创建 NCP 时,class 不是必需选项。
也可以使用 Automatic NCP 的副本作为模板,然后对该配置文件进行更改,如下所示:
$ netcfg> create -t Automatic ncp test
要创建一个名为 office 的位置配置文件,应键入以下命令:
$ netcfg> create loc office
有关 netcfg 子命令的信息,请参见netcfg 子命令。
在交互模式下创建配置文件,会在以下范围之一内显示命令提示符:
在 NCP 范围内(如果创建了 NCP)
在配置文件范围内,如果创建了位置配置文件、ENM 配置文件或已知 WLAN 配置文件
创建 NCP 或 NCU 会将焦点移到该对象范围中,带您遍历指定配置文件的缺省属性。
要以交互方式创建 NCP,可通过启动 netcfg 交互式会话开始。然后,使用 create 子命令创建新的 NCP。例如:
$ netcfg netcfg> create ncp User netcfg:ncp:User>
NCP 本质上是一个容器,包含一组 NCU。所有 NCP 都包含链路 NCU 和接口 NCU。链路 NCU 指定链路配置策略和链路选择策略。接口 NCU 指定接口配置策略。如果要求 IP 连接,就需要提供链路 NCU 和接口 NCU 两者。必须使用 netcfg 命令或网络管理 GUI 显式添加或删除 NCU。有关使用网络管理 GUI 添加和删除 NCU 的更多信息,请参见编辑网络配置文件。
无法使用 netcfg 命令修改 DefaultFixed NCP。当 NCP 处于活动状态时,可以使用 ipadm 和 dladm 命令在 DefaultFixed 中创建、修改或删除 NCU。还可以使用 ipadm 和 dladm 命令将物理链路和 IP 接口以外的 NCU 类添加到反应性 NCP。ipadm 和 dladm 命令可提供创建和修改更复杂的链路和接口类的功能。
有关 ipadm 和 dladm 命令的更多信息,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的第 3 章 "使用数据链路"和《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的第 4 章 "使用 IP 接口"。
注 - 用户可以添加不与系统中当前安装的任何链路相关联的 NCU。此外,也可以删除映射到系统中当前安装的某个链路的 NCU。
可以使用 netcfg 命令在交互模式或命令行模式下创建 NCU。因为创建 NCU 包括数个操作,所以在交互模式下创建 NCU,比试图构建一个单行命令来创建 NCU 及其所有属性更为轻松高效。NCU 可以在最初创建 NCP 时创建,也可以在这之后创建。创建或修改 NCU 的过程包括设置常规的 NCU 属性,以及设置专门适用于每个 NCU 类型的属性。
根据您在创建 NCP 过程中所做的选择,在为该特定 NCP 创建 NCU 的过程中,系统将最为合理地向您显示相关属性。
当您以交互方式创建 NCU 时,netcfg 会遍历每个相关属性并显示其缺省值(如果有)和可能值。不指定值,按 Return(回车键),就会应用缺省值(如果没有缺省值,就会将该属性留空),您也可以指定一个其他值。在为 NCP 创建 NCU 的过程中显示的属性,与您之前所做的选择有关。例如,对于一个接口 NCU,如果您已为 ipv4-addrsrc 属性选择了 dhcp,系统就不会提示您为 ipv4-addr 属性指定值。
下表描述创建或修改 NCU 时可能指定的所有 NCU 属性。某些属性对 NCU 的两种类型都适用。有些属性或者只适用于链路 NCU,或者只适用于接口 NCU。有关所有 NCU 属性(包括指定这些属性时可能适用的规则和条件)的完整说明,请参见 netcfg(1M) 手册页。
表 2-1 创建或修改 NCU 时涉及的 NCU 属性
|
以下过程介绍了如何在交互模式下创建 NCP 以及其 NCU。
注 - 系统网络在初始配置文件创建过程中执行的“遍历”过程可以确保系统根据您先前做出的选择,仅向您提示那些适用的属性。
$ netcfg netcfg>
netcfg> create ncp User netcfg:ncp:User>
其中 ncp 是配置文件类型,User 是配置文件名称。
创建 NCP 会自动使您进入 NCP 范围。如果您创建的是位置、ENM 或 WLAN 对象,则命令提示符会使您进入配置文件范围。
注 - 重复步骤 3 和 4,直到为该 NCP 创建了所有必需的 NCU。
netcfg:ncp:User> create ncu phys net0 Created ncu `net0', Walking properties ...
其中 ncu 是对象类型,phys 是类,net0(只是为了举例)是对象名称。
创建 NCU 会使您进入该对象的范围,并使您遍历该对象的缺省属性。
有关 NCU 属性的信息,请参见表 2-1。
netcfg:ncp:User> create ncu ip net0 Created ncu `net0'. walking properties ...
其中 ncu 是对象类型,ip 是类,net0(只是为了举例)是对象名称。
创建 NCU 会使您进入该对象的范围,并使您遍历该对象的缺省属性。
在创建 NCU 的过程中,class 选项用于区分 NCU 的两种类型。在不同 NCU 类型共享同一名称的情况下,此选项特别有用。如果省略 class 选项,区分共享同一名称的 NCU 就要困难得多。
netcfg:ncp:User:ncu:net0> verify All properties verified
verify 子命令会验证您的配置并通知是否缺少任何必需值。可以在创建或修改配置文件时显式使用 verify 子命令验证更改。
netcfg:ncp:User:ncu:net0> commit committed changes.
commit 子命令会隐式验证更改。
您也可以使用 end 子命令执行隐式提交,这会将交互式会话上移一级,移到紧邻的较高范围。在这种情况下,如果您已经创建完 NCP 并向其中添加了 NCU,则可以直接从 NCP 范围退出交互式会话。
在交互模式下,更改不会保存到持久性存储,直到您提交这些更改。使用 commit 子命令时,会提交整个配置文件。为了保持持久性存储的一致性,commit 操作还包括验证步骤。如果验证失败,commit 操作也将失败。如果隐式提交失败,则会向您提供选项以结束或退出交互式会话,而不提交当前更改。也可以保持在当前范围内并继续对配置文件进行更改。
注 - 要取消所做的更改,可使用 cancel 或 revert 子命令。
cancel 子命令结束当前的配置文件配置而不将当前更改提交到持久性存储,然后将交互式会话级别上移到紧邻的较高范围。revert 子命令撤消您进行的更改,并重新读取以前的配置。使用 revert 子命令时,交互式会话将保持在相同的范围内。
netcfg:ncp:User> exit
任何时间使用 exit 子命令结束 netcfg 交互式会话,都会验证和提交当前配置文件。如果验证或提交操作失败,系统会发出相应的错误消息,您可以选择退出而不提交当前更改,也可以保持在当前范围内并继续对配置文件进行更改。
注 - 要退出范围而不退出 netcfg 交互式会话,请键入 end 子命令:
netcfg:ncp:User> end netcfg>
示例 2-1 以交互方式创建具有 NCU 的 NCP
在以下示例中,创建了一个 NCP 和两个 NCU(一个链路 NCU,一个接口 NCU)。
$ netcfg netcfg> create ncp User netcfg:ncp:User> create ncu phys net0 Created ncu `net0', Walking properties ... activation-mode (manual) [manual|prioritized]> mac-address> autopush> mtu> netcfg:ncp:User:ncu:net0> end Committed changes netcfg:ncp:User> create ncu ip net0 Created ncu `net0'. Walking properties ... ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4 ipv4-addrsrc (dhcp) [dhcp|static]> dhcp ipv4-default-route> netcfg:ncp:User:ncu:net0> verify All properties verified netcfg:ncp:User:ncu:net0> end Committed changes netcfg:ncp:User> list ncp:User management-type reactive NCUs: phys net0 ip net0 netcfg:ncp:User> list ncu phys net0 ncu:net0 type link class phys parent "User" activation-mode manual enabled true netcfg:ncp:User> list ncu ip net0 ncu:net0 type interface class ip parent "User" enabled true ip-version ipv4 ipv4-addrsrc dhcp netcfg:ncp:User> exit $
在此示例中,因为选择的值是 ipv4,未使用 ipv6-addrsrc 属性,所以没有显示对此属性的提示。同样,对于 phys NCU,由于采用了 priority-group 属性的缺省值(手动激活),所以没有应用条件相关的其他属性。
示例 2-2 以交互方式为现有 NCP 创建 NCU
要为现有 NCP 创建 NCU 或修改任何现有配置文件的属性,请将 netcfg 命令与 select 子命令一起使用。
在以下示例中,为现有 NCP 创建了一个 IP NCU。在交互模式下修改现有配置文件的过程类似于创建配置文件。以下示例和示例 2-1 的区别是,在本示例中,使用 select 子命令代替了 create 子命令,因为该 NCP 已经存在。
$ netcfg netcfg> select ncp User netcfg:ncp:User> list ncp:User management-type reactive NCUs: phys net0 netcfg:ncp:User> create ncu ip net0 Created ncu `net0'. Walking properties ... ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4 ipv4-addrsrc (dhcp) [dhcp|static]> dhcp ipv4-default-route> netcfg:ncp:User:ncu:net0> end Committed changes netcfg:ncp:User> list ncp:User management-type reactive NCUs: phys net0 ip net0 netcfg:ncp:User> list ncu phys net0 ncu:net0 type link class phys parent "User" activation-mode manual enabled true netcfg:ncp:User> list ncu ip net0 NCU:net0 type interface class ip parent "User" enabled true ip-version ipv4 ipv4-addrsrc dhcp netcfg:ncp:User> exit $
位置配置文件包含的属性用于定义与基本链路和 IP 连接不直接相关的网络配置值。例如,在需要时结合应用的命名服务和 IP 过滤器设置。在任何给定时刻,系统中必须有一个位置配置文件和一个 NCP 处于活动状态。
存在系统定义的位置和用户定义的位置。系统定义的位置是网络管理守护进程 nwamd 在某些情况下选择的缺省位置,例如,如果您未指定位置,或者如果未启用手动启用的位置,或者根据条件启用的位置的条件一个都不满足。系统定义的位置具有 system 激活模式。用户定义的位置配置为根据网络状况(例如,通过网络连接获取的 IP 地址)手动或根据条件启用。
有关手动激活(启用)位置配置文件的信息,请参见启用和禁用配置文件。
可以使用 netcfg 命令在交互模式或命令行模式下创建位置。创建位置配置文件时,必须通过指定那些定义该位置的特定配置属性的值来设置位置的属性。位置属性按组进行分类,这里的组表示配置首选项的某个特定类。
位置属性也存储在系统信息库中。当启用某个特定位置配置文件时,其属性将自动应用到正在运行的系统。创建或修改位置配置文件包括设置用于定义配置文件的配置方式的各种属性以及设置用于定义配置文件的启用时间的属性。在配置过程中为您提供的属性基于已设置的属性值。
下表描述了可以指定的所有位置属性。请注意位置属性是按组分类的。有关所有位置属性(包括指定这些属性时可能适用的任何规则、条件和相关项)的完整说明,请参见 netcfg(1M) 手册页。
表 2-2 位置属性及其说明
|
以下过程描述如何创建位置配置文件。
注 - 在创建初始配置文件过程中,反应性网络执行的“遍历”过程会根据您先前输入的值,仅向您提示那些适用的属性。
有关 netcfg 子命令的信息,请参见netcfg 子命令。
$ netcfg netcfg>
netcfg> create loc office netcfg:loc:office>
在此示例中,创建了位置 office。
创建位置会自动将您移到此位置的配置文件范围内。
有关位置属性的信息,请参见表 2-2。
例如,以下输出显示位置 office 的属性:
netcfg:loc:office> list LOC:office activation-mode conditional-any conditions "ncu ip:wpi0 is active" enabled false nameservices dns nameservices-config-file "/etc/nsswitch.dns" dns-nameservice-configsrc dhcp ipfilter-config-file "/export/home/test/wifi.ipf.conf"
以下示例中,验证了位置 office 的配置:
netcfg:loc:office> verify All properties verified
verify 子命令会验证您的配置并通知是否缺少任何必需值。可以在创建或修改配置文件时显式使用 verify 子命令验证更改。
netcfg:loc:office> commit Committed changes
commit 子命令会隐式验证更改。
也可以使用 end 子命令结束会话,这样也会保存配置文件配置。
netcfg:loc:office> end Committed changes
在交互模式下,更改不会保存到持久性存储,直到您提交这些更改。使用 commit 子命令时,会提交整个配置文件。为了保持持久性存储的一致性,commit 操作还包括验证步骤。如果验证失败,commit 操作也将失败。如果隐式提交失败,则会向您提供选项以结束或退出交互式会话,而不提交当前更改。也可以保持在当前范围内并继续对配置文件进行更改。
注 - 要取消所做的更改,请使用 cancel 子命令。
cancel 子命令结束当前的配置文件配置而不将当前更改提交到持久性存储,然后将交互式会话上移一级,移到紧邻的较高范围内。
netcfg> exit $
示例 2-3 以交互方式创建位置配置文件
在以下示例中,创建了名为 office 的位置。
$ netcfg netcfg> create loc office Created loc 'office'. Walking properties ... activation-mode (manual) [manual|conditional-any|conditional-all]> conditional-any conditions> ncu ip:wpi0 is active nameservices (dns) [dns|files|nis|ldap]> nameservices-config-file ("/etc/nsswitch.dns")> dns-nameservice-configsrc (dhcp) [manual|dhcp]> nfsv4-domain> ipfilter-config-file> /export/home/test/wifi.ipf.conf ipfilter-v6-config-file> ipnat-config-file> ippool-config-file> ike-config-file> ipsecpolicy-config-file> netcfg:loc:office> list LOC:office activation-mode conditional-any conditions "ncu ip:wpi0 is active" enabled false nameservices dns nameservices-config-file "/etc/nsswitch.dns" dns-nameservice-configsrc dhcp ipfilter-config-file "/export/home/test/wifi.ipf.conf" netcfg:loc:office> verify All properties verified netcfg:loc:office> commit Committed changes netcfg:loc:office> end netcfg> list NCPs: DefaultFixed User Automatic Locations: Automatic NoNet office DefaultFixed WLANs: sunwifi ibahn gogoinflight admiralsclub hhonors sjcfreewifi netcfg> exit $
在此示例中,为 office 位置指定了以下属性:
activation-mode 属性被设置为 conditional-any,使命令提示符出现在要指定的激活启用条件位置。有关可用于构造条件字符串的条件和操作的信息,请参见表 1-1。
激活条件被指定为:ncu ip:wpi0 is active。
注 - 因为在上一步中指定了 conditional-any 属性,所以需要使用 conditions 属性。举例来说,如果先前指定了 manual 属性,就不需要使用 conditions 属性。
通过按回车键接受以下缺省值:
nameservices
nameservices-config-file
dns-nameservice-configsrc
nfsv4-domain
对于 ipfilter-config-file 属性,指定了 /export/home/test/wifi.ipf.conf 文件。
通过按回车键接受以下缺省值:
ipfilter-v6-config-file
ipnat-config-file
ippool-config-file
ike-config-file
ipsecpolicy-config-file
list 子命令用于查看位置配置文件的属性。
verify 子命令用于执行配置验证。
commit 子命令用于将更改提交到持久性存储。
再次使用 list 子命令是为了确保新的位置已正确创建并包含正确的信息。
exit 子命令用于退出 netcfg 交互式会话。
通过 ENM 可以指定应用程序或脚本(例如 VPN 应用程序)应何时执行自己的网络配置,即 NCP 和位置配置文件中指定的配置以外的配置。有关 ENM 的更多信息,请参见ENM 说明。
注 - 系统不会自动识别您可能要为其创建 ENM 的应用程序。只有先在系统中安装并配置这些应用程序后,才能使用 netcfg 命令为这些应用程序创建 ENM。
要创建 ENM,请键入以下命令:
$ netcfg netcfg> create enm my_enm Created enm 'my_enm'. Walking properties ...
其中 enm 是ENM配置文件,my_enm 是对象名称。
创建 ENM 的过程会将您带到新创建的 ENM 的配置文件范围内,并自动开始遍历新创建的 ENM 中的属性。您可以从配置文件范围为 ENM 设置属性,指示何时启用 ENM、如何启用 ENM 以及其他条件(包括 ENM 的启动和停止方法)。
有关指定 ENM 属性的详细说明,请参见 netcfg(1M) 手册页。
下表描述了创建或修改 ENM 时可能指定的属性。
表 2-3 ENM 属性和说明
|
以下过程以 test-enm 为例介绍了如何创建 ENM 配置文件。
$ netcfg netcfg>
netcfg> create enm test-enm Created enm 'test-enm'. Walking properties ... activation-mode (manual) [manual|conditional-any|conditional-all]> fmri> svc:/application/test-enm:default start> stop> netcfg:enm:test-enm>
创建 ENM 会自动将您移动到此 ENM 的配置文件范围内并遍历这些属性。然后,设置 fmri 属性。
有关 ENM 属性的信息,请参见表 2-3。
netcfg:enm:test-enm> list ENM:test-enm activation-mode manual enabled false fmri "svc:/application/test-enm:default" netcfg:enm:test-enm>
netcfg:enm:test-enm> verify All properties verified
verify 子命令会验证您的配置并通知是否缺少任何必需值。可以在创建或修改配置文件时显式使用 verify 子命令验证更改。
netcfg:enm:test-enm> commit Committed changes
commit 子命令会隐式验证更改,然后提交这些更改。
也可以使用 end 子命令结束会话,这样也会保存配置文件配置。
netcfg:enm:test-enm> end Committed changes
示例 2-4 以交互方式创建 ENM 配置文件
在以下示例中,在交互模式下创建了名为 test-enm 的 ENM。
$ netcfg netcfg> create enm test-enm Created enm 'testenm'. Walking properties ... activation-mode (manual) [manual|conditional-any|conditional-all]> fmri> svc:/application/test-app:default start> stop> netcfg:enm:test-enm> list ENM:test-enm activation-mode manual enabled false fmri "svc:/application/test-enm:default" netcfg:enm:test-enm> verify All properties verified netcfg:enm:test-enm> end Committed changes netcfg> list NCPs: DefaultFixed User Automatic Locations: Automatic NoNet test-loc DefaultFixed ENMs: test-enm WLANs: sunwifi ibahn gogoinflight admiralsclub hhonors sjcfreewifi netcfg> exit $
在此示例中,使用以下属性值创建了名为 test-enm 的 ENM:
通过按回车键接受了 activation-mode 属性的缺省值 (manual)。
指定了 SMF FMRI 属性 svc:/application/test-enm:default 作为启用或禁用该应用程序所使用的方法。
请注意,因为指定了 FMRI,将忽略 start 和 stop 方法属性。
list 子命令用于查看 ENM 的属性。
verify 子命令用于确保配置文件配置是正确的。
end 子命令用于隐式保存配置。
再次使用 end 子命令将结束交互式会话。
已知 WLAN 配置文件存储关于无线网络的信息,使 NCP 可以根据您的系统连接到的无线网络的配置信息自动配置无线接口。有关已知 WLAN 的更多信息,请参见已知 WLAN 的说明。
要创建 WLAN 对象,请键入以下命令:
$ netcfg netcfg> create wlan mywifi Created wlan 'mywifi'. Walking properties ...
其中 wlan 是 WLAN 对象,mywifi 是对象名称。
创建 WLAN 对象的过程会将您带到新创建的 WLAN 的配置文件范围内,并自动开始遍历新创建的 WLAN 中的属性。您可以从这里为 WLAN 设置那些定义其配置的属性。
下表描述了创建或修改 WLAN 时可能指定的属性。
表 2-4 已知 WLAN 属性和数据类型
|
以下过程以 mywifi 为例介绍了如何创建已知 WLAN 配置文件。
$ netcfg netcfg>
netcfg> create wlan mywifi Created wlan 'mywifi'. Walking properties ... priority (0)> 100 bssids> keyname> mywifi-key keyslot> security-mode [none|wep|wpa]> wpa netcfg:wlan:mywifi>
创建 WLAN 会自动将您移动到此 WLAN 的配置文件范围内并遍历这些属性。
有关已知 WLAN 属性的信息,请参见表 2-4。
netcfg:wlan:mywifi> list known wlan:mywifi priority 100 keyname "mywifi-key" security-mode wpa netcfg:wlan:mywifi>
netcfg:wlan:mywifi> verify All properties verified
verify 子命令会验证您的配置并通知是否缺少任何必需值。可以在创建或修改配置文件时显式使用 verify 子命令验证更改。
netcfg:wlan:mywifi> end Committed changes
end 子命令会结束回话并保存配置文件配置。
netcfg> exit
示例 2-5 以交互方式创建 WLAN 配置文件
在以下示例中,创建了名为 mywifi 的 WLAN 对象。
此示例假定在添加 WLAN mywifi 之前,创建了一个名为 mywifi-key 的安全对象,其中包含由该 WLAN 的 keyname 属性指定的密钥。
添加或删除其他 WLAN 时优先级数字可以随之更改。请注意不能对不同的两个 WLAN 指定相同的优先级数字。数字越小,指示优先级越高,对应的 WLAN 就会优先选用。在此示例中,为该 WLAN 指定优先级数字 100 以确保它的优先级低于其他任何已知 WLAN。
在过程结尾使用 list 子命令时,该新 WLAN 将添加到列表底部,指示它在所有现有的已知 WLAN 中优先级最低。如果为该 WLAN 指定了优先级数字零(0,这是缺省值),它就会显示在列表顶部,指示其优先级最高。随后,所有其他现有 WLAN 的优先级相应下调,在列表中显示在新添加的 WLAN 之后。
$ netcfg netcfg> create wlan mywifi Created wlan 'mywifi'. Walking properties ... priority (0)> 100 bssids> keyname> mywifi-key keyslot> security-mode [none|wep|wpa]> wpa netcfg:wlan:mywifi> list known wlan:mywifi priority 100 keyname "mywifi-key" security-mode wpa netcfg:wlan:mywifi> verify All properties verified netcfg:wlan:mywifi> end Committed changes netcfg> list NCPs: DefaultFixed User Automatic Locations: Automatic NoNet test-loc DefaultFixed ENMs: test-enm WLANs: sunwifi ibahn gogoinflight admiralsclub hhonors sjcfreewifi mywifi netcfg> exit $