some quick questions.

how does this functionality interact with different network management
services, specifically network/physical:nwam and
network/physical:default?  is network configuration only supported for
one of these methods?  if so, what happens if that method is disabled
and another one is in use?

does enabling the svc:/network/dns/install have any interactions with
nsswitch.conf(4)?  for example, is it an error to enable
svc:/network/dns/install if dns is not enabled via nsswitch.conf(4).

will the svc:/network/install service reconfigure interfaces that
already have an existing configuration?

will the svc:/network/install service ever unconfigure interfaces?  for
example, if no install_ipv4_interface and install_ipv6_interface values
are specified, and the svc:/network/install service is brought online,
will it do anything?

ed

On Wed, May 12, 2010 at 09:01:22AM -0700, Sebastien Roy wrote:
> I'm submitting this fast-track for Mark Haywood.  The release binding
> is Minor.  Note that this case has a dependency on PSARC 2010/157.
>
> Background
> ==========
> The Solaris Next installers intend to use SMF properties, and install
> derived, SMF profiles to customize system configurations. This is
> driving the requirement that Solaris provide public interfaces, in the
> form of of SMF properties, which, when consumed, will provide an
> initial physical network interface configuration and an initial DNS
> client configuration for the installed system. This case proposes a
> set of SMF properties that will satisfy the following requirements:
>
> 1 - the ability to plumb and assign an IPv4 and/or IPv6 address to a
>     physical interface.
>
> 2 - the ability to assign a default route to an IPv4 and/or IPv6
>     physical interface.
>
> 3 - the ability to configure a DNS client with a nameserver list, a
>     search list and a domain.
>
> A subsequent ARC case will explain how the installers intend to
> consume the interfaces during install.
>
> Proposal
> ========
> Two new SMF services will be created, svc:/network/install and
> svc:/network/dns/install. Each of these services will contain
> properties that will be used by the services to configure an initial
> physical network interface and/or an initial DNS client
> configuration. The services will initially be disabled with property
> values that will not result in any system configuration. As part of
> install, an SMF profile, enabling the services and containing the
> appropriate configuration property values for the services, will be
> applied to the system. On the first reboot following the install, the
> service start methods will check the properties to see if property
> values have been assigned. If so, then the services will use these
> property values to configure the system. The service start methods
> will terminate after deleting their service properties and disabling
> the services themselves.
>
> The svc:/network/install service will support configuring one IPv4
> interface and/or one IPv6 interface and, optionally, a default route
> reachable by these interfaces. The service will define two property
> groups, one for an IPv4 interface and one for an IPv6 interface.  The
> service will use its properties and ipadm(1M) to configure the network
> interfaces. And similarly, the service will use its properties and
> route(1M) to define a default route.
>
> The install_ipv4_interface property group will contain the following
> properties:
>
> name              a required property of the property group and will
>                   contain the value that will be used as the value of
>                   <addrobj> when adding an IPv4 interface address. It
>                   has an SMF property type of 'astring'.
>
> address_type    a required property and will contain the value that
>                   will be used to construct the -T option for the
>                   ipadm(1M) create-addr sub-command. Therefore, the
>                   valid values are ?static? or ?dhcp?. It has an SMF
>                   property type of 'astring'.
>
> static_address    only required with an 'address_type' of ?static? and
>                   will be used to construct the ?local? address for
>                   the ipadm(1M) create-addr sub-command. It has an SMF
>                   property type of 'net_address_v4'.
>
> dhcp_wait         optional property that only applies with an
>                   'address_type' of ?dhcp?. If defined, then the
>                   property value will be used to construct the ?-w
>                   <seconds> | forever? portion of the ipadm(1M)
>                   create-addr sub-command. It has an SMF property type
>                   of 'astring'.
>
> default_route     an optional property whose value will be used to
>                   define a default route using route(1M). In other
>                   words, ?/usr/sbin/route -p add default default-route
>                   -ifp ifname? (where ifname is the interface name
>                   portion of the 'name' property). It has an SMF
>                   property type of 'net_address_v4'.
>
> The install_ipv6_interface property group will contain the following
> properties:
>
> name              a required property of the property group and will
>                   contain the value that will be used as the value of
>                   <addrobj> when adding an IPv6 interface address. It
>                   has an SMF property type of 'astring'.
>
> address_type      a required property and will contain the value that
>                   will be used to construct the -T option for the
>                   ipadm(1M) create-addr sub-command. Therefore, the
>                   valid values are ?static? or ?addrconf?. It has an
>                   SMF property type of 'astring'.
>
> static_address    only required with an 'address_type' of ?static? and
>                   will be used to construct the ?local? address for
>                   the ipadm(1M) create-addr sub-command. It has an SMF
>                   property type of 'net_address_v6'.
>
> interface_id      an optional property that only applies with an
>                   'address_type' of ?addrconf?. If defined, then the
>                   property value will be used to construct the ?-i
>                   interface_id? portion of the ipadm(1M) create-addr
>                   sub-command. It has an SMF property type of
>                   'net_address_v6'.
>
> stateless         an optional property that only applies with an
>                   'address_type' of ?addrconf?. If defined, then the
>                   property value will be used to construct the ?-p
>                   stateless=yes|no? portion of the ipadm(1M)
>                   create-addr sub-command. It has an SMF property type
>                   of 'astring'.
>
> stateful          an optional property that only applies with an
>                   'address_type' of ?addrconf?. If defined, then the
>                   property value will be used to construct the ?-p
>                   stateful=yes|no? portion of the ipadm(1M)
>                   create-addr sub-command. It has an SMF property type
>                   of 'astring'.
>
> default_route     an optional property whose value will be used to
>                   define a default route using route(1M). In other
>                   words, ?/usr/sbin/route -p add default default-route
>                   -ifp ifname? (where ifname is the interface name
>                   portion of the 'name' property). It has an SMF
>                   property type of 'net_address_v6'.
>
> The svc:/network/dns/install service will support the configuration of
> a DNS client. The service will define one property group,
> install_props. The service will use its properties to construct a DNS
> resolv.conf(4) file.
>
> The install_props property group will contain the following
> properties:
>
> domain            an optional property of the property group and, if
>                   defined, will contain the value of the local domain
>                   name. Its value will be used to construct the
>                   ?domain? directive in resolv.conf(4). It has an SMF
>                   property type of 'astring'.
>
> nameserver        a required property whose value will be used to
>                   construct the ?nameserver? directives in
>                   resolv.conf(4). It has an SMF property type of
>                   'net_address', but should contain an
>                   'net_address_list' of IPv4 and/or IPv6 addresses.
>
> search            an optional property that if defined, it will
>                   contain a value for the search order host name
>                   lookup. Its value will be used to construct the
>                   ?search? directive in resolv.conf(4). It has an SMF
>                   property type of 'astring', but should contain an
>                   'astring_list' of domain values.
>
> An example SMF profile configuring both IPv4 and IPv6 interfaces and a
> DNS client follows:
>
> <?xml version='1.0'?>
> <!DOCTYPE service_bundle SYSTEM
> '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
> <service_bundle type='profile' name='default'>
>     <service name='network/physical' version='1' type='service'>
>         <instance name='nwam' enabled='false'/>
>     </service>
>     <service name='network/install' version='1' type='service'>
>         <instance name='default' enabled='true'/>
>         <property_group name='install_ipv4_interface' type='application'>
>             <propval name='name' type='astring' value='bge0/v4' />
>             <propval name='address_type' type='astring' value='static' />
>             <propval name='static_address' type='net_address_v4'
>                 value='10.4.235.146/24' />
>             <propval name='default_route' type='net_address_v4'
>                 value='10.4.235.1' />
>         </property_group>
>         <property_group name='install_ipv6_interface' type='application'>
>             <propval name='name' type='astring' value='bge0/v6' />
>             <propval name='address_type' type='astring' value='addrconf' />
>                                                   9
>             <propval name='static_address' type='net_address_v6'
>                 value='::0/0' />
>             <propval name='interface_id' type='net_address_v6'
>                 value='::abcd/64' />
>             <propval name='stateless' type='astring' value='no' />
>             <propval name='stateful' type='astring' value='no'/>
>             <propval name='default_route' type='net_address_v6'
>                 value='::0' />
>         </property_group>
>     </service>
>     <service name='network/dns/install' version='1' type='service'>
>         <instance name='default' enabled='true'/>
>         <property_group name='install_props' type='application'>
>             <property name='nameserver' type='net_address'>
>                 <net_address_list>
>                     <value_node value='129.145.155.220' />
>                     <value_node value='129.145.154.118' />
>                     <value_node value='129.147.9.5' />
>                     <value_node value='129.147.4.5' />
>                 </net_address_list>
>             </property>
>             <propval name='domain' type='astring' value='sfbay.sun.com' />
>             <property name='search' type='astring'>
>                 <astring_list>
>                     <value_node value='sfbay.sun.com' />
>                     <value_node value='east.sun.com' />
>                 </astring_list>
>             </property>
>         </property_group>
>     </service>
> </service_bundle>
>
> This case has a dependency on the new SMF property type,
> SCF_TYPE_NET_ADDR, described in PSARC/2010/157.
>
> The exported interfaces below are intended for Solaris Next (Minor
> binding) only.
>
> Interface Table
>
> Exported Interfaces
>
> Name                            Commitment      Comments
> ---------------------------------------------------------------------------
> svc:/network/install            Committed       Network interface install
>                                                 service
> install_ipv4_interface          Committed       IPv4 network interface
>                                                 SMF property group
> install_ipv4_interface.name
> install_ipv4_interface.address_type
> install_ipv4_interface.static_address
> install_ipv4_interface.dhcp_wait
> install_ipv4_interface.default_route
>
> install_ipv6_interface          Committed       IPv6 network interface
>                                                 SMF property group
> install_ipv6_interface.name
> install_ipv6_interface.address_type
> install_ipv6_interface.static_address
> install_ipv6_interface.interface_id
> install_ipv6_interface.stateless
> install_ipv6_interface.stateful
> install_ipv6_interface.default_route
>
> svc:/network/dns/install        Committed       DNS client install svc
> install_props                 Committed       DNS client configuration
>                                                 property group
> install_props.domain
> install_props.nameserver
> install_props.search
>
> Imported Interfaces
> Name                            Commitment      Comments
> ---------------------------------------------------------------------------
> ipadm(1M)                       Committed       Configure network interfaces
> route(1M)                       Committed       Configure default routes
> resolv.conf(4)                  Committed       DNS client configuration
_______________________________________________
opensolaris-arc mailing list
[email protected]

Reply via email to