跳过导航链接 | |
退出打印视图 | |
![]() |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11 Information Library (简体中文) |
- 创建和修改网络配置文件
netcfg
netcfg subcommand [options...]
netcfg [-d] -f command-file
netcfg help [subcommand]
netcfg 实用程序处理系统网络配置文件。可以通过单个子命令或通过指定一个包含一系列子命令的命令文件,以交互方式调用 netcfg。
netcfg 实用程序可对几种不同类型的配置文件进行操作:
网络配置文件 (NCP)
位置
外部网络修饰符 (ENM)
已知的 WLAN
有关这些配置文件类型的更多详细信息,请参阅“配置文件”部分。
netcfg 命令在作用域内执行。作用域有以下三种:全局、配置文件和 NCP。如果不带任何参数调用 netcfg,则会在全局作用域内开始编辑会话。在全局作用域内,NCP、位置和 ENM 配置文件以及已知的 WLAN 项均可用于操作。选择 NCP 将使编辑会话移到 NCP 作用域;在该作用域中,可以创建或选择单个 NCU 以移到配置文件作用域。此外,如果在全局作用域中选择或创建位置、ENM 或已知的 WLAN,将使编辑会话移到配置文件作用域。
在给定的配置文件作用域中,可查看和修改配置文件属性。
在交互模式下,调用提交之前不会将更改存储到持久性存储器。提交会在“结束”或“退出”时隐式调用,也可由用户显式调用。在调用提交时,将提交整个配置文件。为了维护持久性存储器的一致性,提交操作中加入了一个验证步骤;如果验证失败,则提交也会失败。如果隐式提交失败,则将为用户提供结束或退出的选项而不提交当前更改,或者保留在当前作用域内进行进一步更改。
NWAM 服务将所需的属性值存储在配置文件中,以此管理网络配置。接着,该服务根据当前网络条件确定应在给定时间激活哪个配置文件,然后激活该配置文件。除了上一节中所讨论的网络配置文件 (NCP) 之外,nwamd 还管理位置和 ENM 配置文件。
NCP 指定本地网络组件(包括物理链路、IP 隧道链路和 IP 接口)的配置。IP 接口必须与任意类型的基础链路相关联。这些组件统称为网络配置单元 (Network Configuration Unit, NCU)。
可在系统上配置任意数量的 NCP。自动 NCP 由 nwamd 创建和管理,不能由用户修改。此 NCP 由一个链路 NCU 和一个接口 NCU 组成,它们均表示系统中的每个物理链路。当在系统中添加或删除链路时,也将在自动 NCP 中添加或删除它们的相应 NCU。通过此 NCP 实现的策略将选择有线链路而不是无线链路,并检查所有已连接有线链路上的 IP;如果未连接有线链路,该策略将选择一个无线链路。
在从早期版本的 NWAM 服务升级后,系统还会根据旧 /etc/nwam/llp 文件中找到的配置创建用户 NCP。在大多数情况下,如果 NWAM 服务在升级时处于活动状态,则最初是自动 NCP 处于活动状态(即使已创建用户 NCP)。但是,如果在旧配置中检测到显式更改(如静态 IP 地址更改),则最初是用户 NCP 处于活动状态。
最后,用户可以创建任意数量的附加 NCP。这些 NCP 完全由用户管理;必须显式添加或删除 NCU,可以添加未映射到当前已安装到系统中的任何链路的 NCU,也可以删除映射到系统中的链路的 NCU。用户可以确定适用于这些 NCP 的策略。
在进行初始 NCP 选择后,系统不会更改活动 NCP。用户可以随时使用 GUI 或 netadm(1M) 命令执行此操作。
位置指定系统范围的网络配置,包括名称服务、域、IP 过滤器和 IPsec 配置。
顾名思义,外部网络修饰符是 NWAM 服务的外部应用程序,可用于修改和/或创建网络配置。nwamd 可根据 ENM 配置文件中指定的条件来激活或取消激活 ENM。或者,用户可根据需要选择手动激活/取消激活 ENM。
当位置配置文件允许根据当前网络条件自动配置一组特定的网络相关服务的同时,也限制了该组服务。ENM 提供附加的灵活性,允许用户指定对 SMF 服务属性和/或状态或要在特定条件下应用的任何其他系统设置的更改。
netcfg 支持以下类型的属性:
NCU 属性
接口 NCU 的属性
所有链路 NCU 的通用属性
位置属性
ENM 属性
已知的 WLAN 属性
以下小节中将介绍这些属性。
以下属性是所有 NCU 的通用属性。
指定 NCU 类型(link 或 interface)。根据指定的类隐式确定值。
指定 NCU 类。
指定此 NCU 所属的 NCP。
type、class 和 parent 属性是在创建 NCU 时设置的,并且以后无法更改。
如果 activation-mode 是 manual,则 enabled 属性将反映 NCU 的当前状态。此属性是只读属性;通过使用 netadm(1M) 启用或禁用 NCU,可间接更改此属性。
缺省值为 true。
在此 NCU 上应使用的 IP 版本。
缺省值为 ipv4,ipv6。
标识分配给此 NCU 的 IPv4 地址的源;可分配多个值。如果分配的值之一是 static,则 ipv4-addr 属性必须包括至少一个要分配给 NCU 的 IPv4 地址。
缺省值为 dhcp。
一个或多个要分配给此 NCU 的 IPv4 地址。
缺省路由器的 IPv4 地址;如果设置了此属性,则在启动此接口时,IPv4 通信的缺省路由将与此接口关联。
标识分配给此 NCU 的 IPv6 地址的源;可分配多个值。如果分配的值之一是 static,则 ipv6-addr 属性必须包括至少一个要分配给 NCU 的 IPv6 地址。
缺省值为 dhcp,autoconf。
一个或多个要分配给此 NCU 的 IPv6 地址。
缺省路由器的 IPv6 地址;如果设置了此属性,则在启动此接口时,IPv6 通信的缺省路由将与此接口关联。
用于自动激活此 NCU 的触发器类型。
缺省值为 manual。
如果 activation-mode 设置为 prioritized,该属性将指定此 NCU 所属的优先级组。组由一个或多个 NCU 组成;数字越小,优先级越高。确定为可用的最高优先级组将通过 nwamd(1M) 激活,并且一直保持到不再可用为止,或保持到更高优先级组变为可用为止。
如果 activation-mode 设置为 prioritized,此属性将指定用于确定优先级组的可用性和激活行为的模式。
至少必须有一个 NCU 可用,才能使组可用,并且只会激活一个 NCU。如果有多个成员 NCU 可用,nwamd(1M) 将随机选择一个进行激活。
至少必须有一个 NCU 可用,才能使组可用;将激活所有可用的 NCU。
所有组成员 NCU 均必须可用,才能使组可用;将激活所有成员 NCU。
分配给此链路的 MAC 地址。缺省情况下,NWAM 将要求链路的出厂分配 MAC 地址或缺省 MAC 地址;在此设置一个不同的值可覆盖该选项。
标识链路打开时应在其上自动推动的一列模块。
此属性将被自动设置为物理链路的缺省 MTU;将此属性设置为不同的值可覆盖该值。
请注意,允许的 MTU 值的范围取决于底层硬件。由于在提供附带有驱动程序的底层硬件之前可以创建 NCU,因此无法验证在编辑 NCU 时设置的值。如果由于 MTU 大小无效而未能激活 NCU,则会在系统日志中指明这种情况,并且 NCU 将被置于维护状态。
用于自动激活此位置的触发器类型。
缺省值为 manual。
如果 activation-mode 是 manual,则 enabled 属性将反映位置的当前状态。此属性是只读属性;通过使用 netadm(1M) 启用或禁用位置,可间接更改此属性。
缺省值为 false。
如果 activation-mode 设置为 conditional-all 或 conditional-any,则此属性会指定测试来确定是否应激活此位置。条件表达式由可赋予布尔值的一系列条件组成,例如 "advertised-domain is sun.com" 或 "ip:bge0 is-not active"。下面的“条件表达式”一节中定义了这些表达式的格式。如果指定了多个条件,则要满足激活要求,要么所有条件均为真(当 activation-mode 是 conditional-all 时),要么任何一个条件为真(当 activation-mode 是 conditional-any 时)。
注意 advertised-domain 与 system-domain 之间的区别。声明域可通过外部通信方式了解,例如 DHCP 服务器声明的 DNSdmain 或 NISdmain。此属性适用于位置的条件激活;例如,如果声明域是 mycompany.com,则激活“工作”位置。系统域是当前分配给系统的域,即由 domainname(1M) 命令返回的值。此属性适用于 ENM 的条件激活,因为只有在激活位置并且为该特定域配置系统后,条件才会变为真。
应适用于系统的域名;此域名将由 NIS 和 LDAP 使用。
指定应配置的名称服务,例如 DNS、NIS 和 LDAP。
指定要使用的 nsswitch.conf 文件。此属性必须始终具有一个值。如果 nameservices 属性指定单个名称服务,则此属性缺省情况下将包含 nameservices 属性中指定的名称服务的 /etc/nsswitch.nameservice;用户可更改该值。如果 nameservices 属性标识多个名称服务,则用户必须为此属性另外指定一个值。
指定应该用来获取 DNS 名称服务的配置信息的源。如果带有 manual,则将使用其余的 dns-nameservice-* 属性。
如果 DNS 是已配置的名称服务之一,并且 manual 是其配置源之一,则这些属性可指定其配置参数。只有 servers 是必需属性;search 和 domain 是互斥的,因此只能指定其中一项,如果同时使用了 dhcp,则会覆盖 DHCP 服务器提供的域。这些值的格式与 resolv.conf(4) 中的各个选项相同。
指定应该用来获取 NIS 名称服务的配置信息的源。如果带有 manual,则将使用其余的 nis-nameservice-* 属性。
如果 NIS 是已配置的名称服务之一,并且 manual 是其配置源之一,则此属性可指定其服务器地址。如果未指定此属性,则会以广播模式启动 NIS 客户机。
指定应该用来获取 LDAP 名称服务的配置信息的源。manual 当前是 LDAP 的唯一选项;因此必须提供 ldap-nameservice-* 属性才能完成 LDAP 配置。
如果 LDAP 是已配置的名称服务之一,则此属性可指定其服务器地址。此属性为必需属性,并且预计指定的服务器将具有用于完成客户机配置的客户机配置文件。
指定要使用的 NVSv4 域。如果不指定此值,则将使用名称服务域。
这些属性分别为 ipfilter(5) 配置的组件指定规则文件的路径。如果设置了给定的 config-file 属性,则将启用对应的 IP 过滤器组件,并从指定的文件读取配置。
指定 IKE 配置文件。如果指定了一个值,则将启用 svc:/network/ipsec/ike 服务,并从指定的文件读取配置。
指定 IPsec 策略配置文件。如果指定了一个值,则将启用 svc:/network/ipsec/policy 服务,并从指定的文件读取配置。
用于自动激活此 ENM 的触发器类型。
缺省值为 manual。
如果 activation-mode 是 manual,则 enabled 属性将反映 ENM 的当前状态。此属性是只读属性;通过使用 netadm(1M) 启用或禁用 ENM,可间接更改此属性。
缺省值为 false。
如果 activation-mode 设置为 conditional-all 或 conditional-any,则此属性会指定测试来确定是否应激活此 ENM。条件表达式由可赋予布尔值的一系列条件组成,例如 "system-domain is sun.com" 或 "ip:bge0 is-not active"。下面的“条件表达式”一节中定义了这些表达式的格式。如果指定了多个条件,则要满足激活要求,要么所有条件均为真(当 activation-mode 是 conditional-all 时),要么任何一个条件为真(当 activation-mode 是 conditional-any 时)。
注意 advertised-domain 与 system-domain 之间的区别。声明域可通过外部通信方式了解,例如 DHCP 服务器声明的 DNSdmain 或 NISdmain。此属性适用于位置的条件激活;例如,如果声明域是 mycompany.com,则激活“工作”位置。系统域是当前分配给系统的域,即由 |domainname|(1M) 命令返回的值。此属性适用于 ENM 的条件激活,因为只有在激活位置并且为该特定域配置系统后,条件才会变为真。
如果此 ENM 已作为 SMF 服务执行,则此属性会标识该服务。如果指定了此属性,则将通过启用服务来激活 ENM,通过禁用服务来取消激活 ENM。
如果此 ENM 未作为 SMF 服务执行,则此属性会标识应执行以启动或激活 ENM 的命令。如果已设置 FMRI 属性,则将忽略此属性。
如果此 ENM 未作为 SMF 服务执行,则此属性会标识应执行以停止/取消激活 ENM 的命令。如果已设置 FMRI 属性,则将忽略此属性。
如果一个特定访问点的优先级高于具有相同名称/ESSID 的其他访问点,则此属性允许指定 AP 的 BSSID。
此 WLAN 的相对优先级;数字越小表示优先级越高。
请注意,可以更改该数字,前提是对已知 WLAN 对象的设置的后续更改需要进行此类更改。以配置有两个已知的 WLAN 对象 wlanA 和 wlanB 的系统为例。wlanA 优先级为 1,wlanB 优先级为 2。创建一个新的已知 WLAN wlanC,并且分配的优先级为 2。在此情况下,整个列表将被更新,使 wlanA 的优先级为 1,wlanC 的优先级为 2,而 wlanB 的优先级为 3。任何两个 WLAN 都不得具有相同的优先级值,因此增加优先级为 2 的 wlanC 会强制 wlanB 的优先级下降。如果存在优先级低于 wlanB 的任何其他 WLAN,则它们的优先级也会相应地改变。
如果 WLAN 使用支持多个密钥插槽的加密模式,则可在此属性中指定放置密钥的插槽。如果未指定,缺省情况下将使用插槽 1。
允许用户将使用 dladm(1M) 创建的安全对象与已知的 WLAN 进行关联。
可根据用户指定的一组条件激活位置和 ENM。下表概述了这些条件表达式的语法。
|
Object Type Condition Object ------------------------------------------------------------ essid is/is-not/contains/does-not-contain name string bssid is/is-not bssid string ip-address is/is-not IPv4 or IPv6 address ip-address is-in-range/is-not-in-range IPv4 or IPv6 address plus netmask/prefixlen advertised-domain is/is-not/contains/does-not-contain name string system-domain is/is-not/contains/does-not-contain name string
以下选项与任何特定的 netcfg 子命令无关联:
在从命令文件(参见以下选项)读取子命令之前删除所有配置。
读取并执行 command_file 中的 netcfg 子命令。
所支持的子命令如下。
结束当前配置文件指定,而不向持久性存储器提交当前所做的更改,然后进入下一更高级别的作用域。
此子命令在 NCP 和配置文件作用域中有效。
清除指定属性的值。
此子命令在配置文件作用域中有效。
将当前配置文件提交至持久性存储器。由于待提交的配置必须正确,因此该操作还会在对象上自动执行验证。在离开当前作用域(使用 end 或 exit 子命令)时,会自动尝试执行提交操作。
此子命令在配置文件作用域中有效。
请注意,在非交互模式中不需要进行提交,这是由于更改值的任何子命令均采用隐式提交。
创建指定类型和名称的内存中配置文件。-t template 选项指定新对象应与 template 完全相同,其中 template 是相同类型的现有对象的名称。如果不使用 -t 选项,则用缺省值创建新对象。对于 NCP,只可创建一个“用户”NCP。
此子命令在全局和 NCP 作用域中有效。
从内存和持久性存储器中删除所有配置文件或指定的配置文件。此操作是即时操作,不需要提交。已销毁的对象无法进行恢复。
如果指定了特定对象,此子命令将在全局和 NCP 作用域中有效;-a 选项仅在全局作用域中有效。
结束当前配置文件指定,然后进入下一更高级别的作用域。在结束前将验证并提交当前对象;如果验证或提交失败,则会发出一条相应的错误消息,并为用户提供结束机会,而不提交当前所做的更改,或者保留在当前作用域中继续进行编辑。
此子命令在任何作用域中均有效。
退出 netcfg 会话。在结束前将验证并提交当前配置文件;如果验证或提交失败,则会发出一条相应的错误消息,并为用户提供退出机会,而不提交当前所做的更改,或者保留在当前作用域中继续进行编辑。
此子命令在任何作用域中均有效。
将当前作用域或指定作用域中的当前配置输出到标准输出,或输出到使用 -f 选项指定的文件。-d 选项生成 destroy -a 作为首行输出。此子命令以适用于命令文件的格式生成输出。无法导出系统创建的对象(包括 Automatic NCP 和 Automatic、NoNet 以及 User 位置)。
此子命令在任何作用域中均有效。
获取指定属性的当前(内存中)值。缺省情况下,将会同时输出属性名称和属性值;如果指定了 -V 选项,则只会显示属性值。
此子命令在配置文件作用域中有效。
显示一般帮助或有关特定子命令的帮助。
此子命令在任何作用域中均有效。
列出当前作用域或指定作用域中的所有配置文件、属性值对和资源。在列出对象的属性时,缺省行为是仅列出适用于所指定配置的属性。也就是说,如果列出 ipv4-addrsrc 是 dhcp 的 IP NCU,则不会列出 ipv4-addr 属性。包含 -a 选项将导致列出所有属性,无论这些属性是否适用于当前设置。
此子命令在任何作用域中均有效。
删除对当前配置文件所做的任何当前更改,并从持久性存储器中恢复值。
此子命令在配置文件作用域中有效。
选择当前作用域级别中可用的配置文件之一,向下跳转到该对象的作用域中。所选对象将从持久性存储器装入到内存中。
此子命令在全局和 NCP 作用域中有效。
设置指定属性的当前(内存中)值。如果在非交互模式下执行,则会同时将所做的更改提交到持久性存储器。
用于分隔多值属性的值的分隔符是 ","(逗号)。如果此类属性中的任何单个值包含逗号,则必须对其进行转义(即表示为 \,)。如果属性只有一个值,其中的逗号不会被解释为分隔符,因此无需进行转义。
此子命令在配置文件作用域中有效。
验证当前的内存中对象的配置是否有效。
此子命令在配置文件作用域中有效。
遍历与当前配置文件关联的每个属性。对于每个属性,均会显示名称和当前值,并给出提示以便用户更改当前值。
用于分隔多值属性的值的分隔符是 ","(逗号)。如果此类属性中的任何单个值包含逗号,则必须对其进行转义(即表示为 \,)。如果属性只有一个值,其中的逗号不会被解释为分隔符,因此无需进行转义。
缺省情况下,只会遍历对于已设置的属性而言所需要的属性;也就是说,如果将 ipv4-addrsrc 设置为 dhcp,则不会遍历 ipv4-addr。包含 -a 选项将导致遍历所有可用的属性。
此子命令在配置文件作用域中有效。
此子命令仅在交互模式下有意义。
示例 1 设置 NCU 属性
以下命令从命令行(即在非交互模式下)设置 NCU 属性。
# netcfg "select ncp User; select ncu phys net1; set link-mtu=1492"
示例 2 列出顶层配置文件
以下命令从命令行列出所有顶层配置文件。
# netcfg list NCPs: Automatic User Locations: Automatic home NoNet office ENMs: enmtest myenm WLANs: sunwifi coffeeshop linksys
示例 3 销毁位置配置文件
以下命令从命令行销毁位置配置文件。
# netcfg destroy loc home Destroyed loc 'home'
示例 4 创建 NCU 配置文件
以下命令序列以交互方式创建 NCU 配置文件。
# netcfg netcfg> select ncp user netcfg:ncp:User> create ncu ip net1 Created ncu 'net1'. Walking properties ... ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4 ipv4-addrsrc (dhcp) [dhcp|static]> static ipv4-addr> 168.1.2.3 netcfg:ncp:User:ncu:net1> list ncu:net1 type: interface class: ip parent: "User" enabled true ip version: ipv4 ipv4-addrsrc: static ipv4-addr: "168.1.2.3" ipv6-addrsrc dhcp,autoconf netcfg:ncp:User:ncu:net1> commit Committed changes netcfg:ncp:User:ncu:net1> end netcfg:ncp:User> exit
示例 5 处理 ENM
以下命令序列选择现有的 ENM、显示其内容并更改属性值。
# netcfg netcfg>select enm myenm netcfg:enm:myenm>list ENM:myenm activation-mode manual enabled true start "/usr/local/bin/myenm start" stop "/usr/local/bin/myenm stop" netcfg:enm:myenm>set stop="/bin/alt_stop" netcfg:enm:myenm>list ENM:myenm activation-mode manual enabled true start "/usr/local/bin/myenm start" stop "/bin/alt_stop" netcfg:enm:myenm>exit Committed changes
示例 6 配置静态地址
以下命令序列使用 Home NCP 在接口 bge0 上配置静态地址 192.168.2.12/24。在激活 Home NCP 时,缺省情况下会启用此接口。
# netcfg netcfg> create ncp Home
首先配置 phys NCU:
netcfg:ncp:Home> create ncu phys bge0 Created ncu 'bge0'. Walking properties ... activation-mode (manual) [manual|prioritized]> link-mac-addr> link-autopush> link-mtu> netcfg:ncp:Home:ncu:bge0> end Committed changes netcfg:ncp:Home>
然后配置 IP NCU:
netcfg:ncp:Home> create ncu ip bge0 Created ncu 'bge0'. Walking properties ... ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4-addrsrc (dhcp) [dhcp|static]> static ipv4-addr> 192.168.2.10/24 ipv4-default-route> ipv6-addrsrc (dhcp,autoconf) [dhcp|autoconf|static]> ipv6-default-route> netcfg:ncp:Home:ncu:bge0> list ncu:bge0 type interface class ip parent "Home" enabled true ip-version ipv4,ipv6 ipv4-addrsrc static ipv4-addr "192.168.2.10/24" ipv6-addrsrc dhcp,autoconf netcfg:ncp:Home:ncu:bge0> exit Committed changes #
使用 netadm(1M) 切换到 Home NCP。
示例 7 根据条件配置位置
以下命令序列根据条件配置位置。只要 IP 地址位于 10.0.8.0/24 子网中,就会激活此位置。此外,在此位置也会配置 NIS。
netcfg> select loc office netcfg:loc:office> list loc:office activation-mode conditional-any conditions "ip-address is 10.0.8.0/24" enabled false nameservices dns,nis nameservices-config-file "/etc/nsswitch.nis" dns-nameservice-configsrc dhcp nis-nameservice-configsrc manual nis-nameservice-servers "10.2.18.24" default-domain "labs.east.sun.com" netcfg:loc:office>
示例 8 创建已知的 WLAN
以下命令序列使用 WEP 密钥建立一个名为 coffeeshop 的已知 WLAN。
netcfg> select wlan coffeeshop netcfg:wlan:coffeeshop> list known wlan:coffeeshop priority 2 keyname "foo" security-mode wep netcfg:wlan:coffeeshop> set priority=1 netcfg:wlan:coffeeshop> end Committed changes
示例 9 将当前配置导出到文件
以下命令将当前配置导出到文件。
netcfg> export -f /tmp/nwam.config
或者,从 Unix 命令行执行同样的任务:
# netcfg export -f /tmp/nwam.config
示例 10 从文件中导入当前配置
以下命令从文件中导入当前配置。
# netcfg -f /tmp/nwam.config
有关下列属性的描述,请参见 attributes(5):
|
dladm(1M)、domainname(1M)、netadm(1M)、netcfgd(1M)、nwamd(1M)、resolv.conf(4)、attributes(5)、ipfilter(5)
另请参见 JDS/GNOME 手册页集合中的 nwam-manager(1M)。