SRDB ID   Synopsis   Date
48120   Sun Fire[TM] 15K: Management Networks (MAN)   4 Nov 2002

Status Issued

Description
What is a Management Network and how is it related to the Sun Fire[TM] 15K server 
(Starcat) platform?                  

SOLUTION SUMMARY:
The Sun Fire 15K has three ethernet Management (MAN) Networks. Each system controller
incorporates 20 RIO (eri) and two Cheerio (hme) based ethernet interfaces to comprise
the Sun Fire 15K MAN network.
This management network consists of three individual ethernet networks:

1)	C network- Consisting of two network interfaces connected to the system
controller front panel providing the external community remote access to the system
controller. This network is often referred to as the Community Network.

2)	I1 network- Consisting of 18 separate RIO-based Ethernet controllers between
the system controller and each I/O board on the platform. These 18 interfaces provide
a highly available, secure network console interface to facilitate communication
between a possible 18 domains and the system controller. This network is an internally
connected network. It is also referred to as the dman network.

3)	I2 network- Consisting of two Ethernet interfaces to the other system
controller to provide a heartbeat and synchronizes system controller configuration
data between the main and spare system controller. This network is also referred to
as the scman network. It is an internally connected network.

--------------------------------------------------------------------------------------------------------

C Network

The world accesses the system controllers (sc0 and sc1) through the C Network (community
network). This means that the world will be attaching to either the hme0 interface or
the eri1 interface on the control board. This external interface set can be built on
top of Solaris IP Multi-Pathing (IPMP) to provide HA network access to the system
controllers.

The C Network interfaces on the system controller are the hme0 and the eri1 interfaces.
The hme0 interface is the top most RJ 45 connector on the system controller, while the
eri1 interface is the bottom most RJ 45 connector on the system controller.

The function of this network is as follows:

-Have one or more customer-provided network connection to the platform administrative
server (i.e.. the system controllers).

Here's an example of an ifconfig -a from a system controller (showing only the C network
interface):

# ifconfig -a 
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
     inet 172.20.66.148 netmask ffffff00 broadcast 172.20.66.255 ether 8:0:20:da:7e:f6 

--------------------------------------------------------------------------------------------------------

I1 Network

The system controllers communicate directly to the platform's domains via the I1 Network
(dman network). The system controllers use eri2 through eri19 interfaces onboard on the
system controller to communicate with eri chips on each possible I/O board in the
platform (connections are internal, using circuitry). When configured into a domain,
the I/O board's eri interface on this network is called a dman0 interface. The interface
the system controller uses to connect to the domains dman0 interface is called scman0.

The system controller has the eri2 through eri19 chips imbedded in the system controller's
circuitry. Take a look at the system controller skematic from the Sun System Handbook and
you will see the eri basics (labeled as RIO chips; Note that two of the RIO chips are
partially obscured under the power supply daughter card). The system controller has an
individual chip for each possible domain which can be configured on the F15K/Starcat
platform (18 possible). Thus each of the eri chips on the system controller connects to
an individual eri chip on the I/O boards configured in their respective domains. If
multiple I/O boards are configured into a domain, the system controller's eri chip
communicates to the lowest numbered I/O board in the domain (typically). The eri chip
on the lowest configured I/O board is called the golden IOSRAM . You will see this "golden
IOSRAM" being configured in the last stages of an HPOST run when bringing up a domain. The
purpose behind the golden IOSRAM is to facilitate a network boot off of the MAN network
for that individual domain. What this means is that during the bringup stages, the eri
interface which is configured as the golden IOSRAM becomes the man-net device alias,
thus a network boot could be made by doing a "boot man-net", and thus the domain would be
booting off the dman network using the system controller as it's boot server.

The functions of this network are as follows:

-Log all domain console messages to the system controller(s).
-Log all domain messages to the system controller(s).
-Perform Dynamic Reconfiguration (DR) operations.
-Perform network boot/Solaris installation (optional).
-Perform time synchronization (optional).

Here's an example of an ifconfig -a from a system controller (showing only the I1 interface)

# ifconfig -a 
scman0: flags=1008843<UP,BROADCAST,RUNNING,MULTICAST,PRIVATE,IPv4> mtu 1500 index 3
     inet 10.1.1.1 netmask ffffffe0 broadcast 10.1.1.31 ether 8:0:20:da:7e:f6 

Here's an example of an ifconfig -a from a domain (showing only the I1 interface):

# ifconfig -a 
dman0: flags=1008863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,PRIVATE,IPv4> mtu 1500 index 2
inet 10.1.1.2 netmask ffffffe0 broadcast 10.1.1.31 ether 0:0:be:a8:4a:40 

--------------------------------------------------------------------------------------------------------

I2 Network

The system controllers communicate directly to each other via internally connected
circuitry called the I2 Network (scman network). Specifically, the system controllers
interfaces, hme1 and eri0, communicate directly to each other. The interface the system
controllers plumb up to communicate to each other is scman1.

The I2 Network is internally connected. Therefore the system controllers themselves
will have no RJ 45 connectors or external cables whatsoever related to the I2 network.
The hme1 and eri0 interfaces themselves are simply chips on the system controllers that
are connected to each other via internal circuitry on the expanders and centerplane that
the system controllers connect with.

The functions of this network are as follows:
-Perform inter-system controller communication (This is sometimes referred to as the
Heartbeat Network).

-The SMS failover mechanisms use this network as one means to determine the health of the
opposite system controller.
-This network is also used for SMS file propagation (datasync).

Here's an example of an ifconfig -a from a system controller (showing only the I2 interface):

# ifconfig -a 
scman1: flags=1008842<BROADCAST,RUNNING,MULTICAST,PRIVATE,IPv4> mtu 1500 index 4
inet 10.2.1.1 netmask fffffffc broadcast 10.2.1.3 ether 8:0:20:da:7e:f6 

--------------------------------------------------------------------------------------------------------

Management Network Daemon

The F15K/Starcat server uses a combination of hardware and software to provide
administrative services to the platform's network configuration. The management
network daemon (mand) supports all of the networks in the F15K/Starcat platform.
The primary operations this daemon serves are:

-Manages domain consoles and message logging services.
-Manages time synchronization.
-Manages Dynamic Reconfiguration (DR) processes.
-Manages network boot for the domains, as well as Solaris installation.
-Manages the system controller heartbeats.

How mand interacts with the platform functionality:

At system controller startup, the failover daemon (fomd) determines what role the system
controller will function in, whether it be spare mode or main mode. At the very beginning
of system controller startup, mand will be in spare mode. It does not switch over to main mode until fomd tells it to do so. The fomd daemon then starts mand appropriately.

The mand daemon (once in main mode) then checks the contents of the /etc/opt/SUNWSMS/config/MAN.cf
file (discussed later in this doc) to create a mapping between the "domain ID" and it's IP
address in the platform configuration database (pcd). Mand then obtains domain configuration
information from the pcd daemon in order to properly configure the scman driver.

Next, mand seeks domain change notifications, such as newly added system boards to a
particular domain, and as appropriate will then update the scman driver of the changes.
Also, mand tracks the active ethernet interface in the scman driver and if changes to that
interface occur (Such as a failure to one of the scman interfaces), then updates those
changes back to the pcd daemon.

When a domain is powered on (setkeyswitch -d <domainID> on) mand relays the system startup
MAN network information to that particular domain. The mand does not plumb up actual
interfaces on the domain, it simply passes on the network information (includes ethernet
and MAN network IP address information) to the dman driver running in the domain, and
the dman driver then plumbs up it's domain interfaces (This is where the golden IOSRAM
interface is used---obtaining the information passed on from the system controller via
mand). This process occurs during the domain's boot cycle and during the initial domain
OS install. This process is how the domain's dman obtains the main system controller's
MAC address.

So, to summarize, mand is responsible for updating all the responsible network drivers of
the platform's network configuration. Without mand running properly, the entire F15K/Starcat
platform's network is unlikely to continue working properly (certainly no new configuration
updates will occur at all). Also, because mand is responsible for assuring that the system
controller's remain synched, if it is having issues, it is possible that system clock can
become disrupted resulting in a platform wide disruption of service. So, mand is an
extremely critical daemon.

--------------------------------------------------------------------------------------------------------

Path "Policing" Mechanisms

C Network

The C Network is not "policed" per say via any direct inter-platform process or configuration.

If IPMP is configured, network testing on the C Network is done via the "test" network
interface. This test interface is an actual NIC (ex. qfe0) which has an IP address used
exclusively for testing whether the particular NIC is still active. The system uses the
logical interface (ex. qfe0:1) to transfer it's data to the C Network. If in the C network
tests on the test interface (Typically a ping test to a router or a multicast to the
network) a response does not come back, IPMP automatically will fail the logical IP over
to the failover IP, which is configured as the other interface(s) in the IPMP group
(assuming of course that failover was configured properly, and that the other interface
is also fine).

Outside of IPMP, the C Network is not "policed" any differently than a standard Solaris[TM]
network interface would be.

To see the "policing" in action, a snoop of the test interface (ex. qfe0) should be
executed if the configuration is IPMP. On the test interface, the only traffic is the
test ping or multicast.

If IPMP is not configured, the "policing" of the C Network is handled by Solaris. Solaris
uses tpe-link-test to perform network connection tests. Responses to this test come from
the pieces of equipment connected on the other side of the cable that is attached to the
particular C Network interface, such as a router, switch, hub, or other node.


I1 Network

The I1 Network is "policed" every 10 seconds. Specifically the dman0 interface on the
domain pings the system controller via the active domain NIC (golden IOSRAM) every 10
seconds. Also, dman0 checks the inbound packet count every 30 seconds. If the packet
count has increased, the connection is considered good. If not, a path switch is initiated
and the next available path is selected.

To see this "policing" in action, simply snoop the dman0 interface and watch out for
these 10 second and 30 second interface tests.


I2 Network

The I2 Network is also "policed" every 10 seconds. Specifically, scman1 on the main
system controller pings the spare system controller via it's active NIC every 10 seconds.
Also, every 30 seconds, scman1 on the main system controller checks it's inbound packet
count. If the packet count has increased, the connection is considered good. If not, the
active path is switched to the other NIC on the main system controller, provided it was
not previously marked as failed.

Assuming you have both system controllers up and running in the platform configuration,
you can see the "policing" in action simply by snooping the scman1 interface on one or
both of the system controllers.

NOTE: If at anytime a failure is detected with any of these NICs, mand is responsible
for updating the pcd (platform configuration database) and making sure all networks are
aware that a particular NIC is offline and that communication has switched over to a
different NIC if possible.

--------------------------------------------------------------------------------------------------------

Management Network (MAN) Configuration Files

 /etc/opt/SUNWSMS/config/MAN.cf

-This is the MAN configuration file.
-Located on the system controllers.
-Read by the daemon mand when entering main system controller mode.
-The file contains all the IP addresses for the system controller, domain, and external
community interfaces.
-This file is created by smsconfig -m during the MAN Network configuration stage at install.
It should not be edited by hand.

Example:
# cat  /etc/opt/SUNWSMS/config/MAN.cf
#
# ident "@(#)MAN.cf     1.5     01/05/23 SMI"
#
# Copyright (c) 2000-2001 by Sun Microsystems, Inc.
# All rights reserved.
#
# /etc/opt/SUNWSMS/config/MAN.cf
#
mc15k
I1      NM-I1   netmask-i1      255.255.255.224
I1      SC-I1   mc15k-sc-i1     10.1.1.1
I1      DA-I1   mc15k-a 10.1.1.2
I1      DB-I1   mc15k-b 10.1.1.3
I1      DC-I1   mc15k-c 10.1.1.4
I1      DD-I1   mc15k-d 10.1.1.5
I1      DE-I1   mc15k-e 10.1.1.6
I1      DF-I1   mc15k-f 10.1.1.7
I1      DG-I1   mc15k-g 10.1.1.8
I1      DH-I1   mc15k-h 10.1.1.9
I1      DI-I1   mc15k-i 10.1.1.10
I1      DJ-I1   mc15k-j 10.1.1.11
I1      DK-I1   mc15k-k 10.1.1.12
I1      DL-I1   mc15k-l 10.1.1.13
I1      DM-I1   mc15k-m 10.1.1.14
I1      DN-I1   mc15k-n 10.1.1.15
I1      DO-I1   mc15k-o 10.1.1.16
I1      DP-I1   mc15k-p 10.1.1.17
I1      DQ-I1   mc15k-q 10.1.1.18
I1      DR-I1   mc15k-r 10.1.1.19
I2      NM-I2   netmask-i2      255.255.255.252
I2      SC0-I2  mc15k-sc0-i2    10.2.1.1
I2      SC1-I2  mc15k-sc1-i2    10.2.1.2                        


 /var/opt/SUNWSMS/data/<domain>/idprom.image

-This file contains the ethernet address of the domain.
-Located on the system controllers.
-This file is referenced by mand when creating the IOSRAM handoff structure.
-To view this file, you must run sysid -d <DomainID> on the system controller.
-It is also very important to note that these files are not easily regenerated (If lost,
at this point only CPRE can reproduce them), so back them up!

Example:
# sysid -d A

IDPROM in /var/opt/SUNWSMS/data/A/idprom.image for domain A

                 Format = 0x01
           Machine Type = 0x82
       Ethernet Address = 0:0:be:a8:4a:40
     Manufacturing Date = Wed Jun 27 14:58:00 MDT 2001
Serial number (Host ID) = 0xa84a40 (11029056)
               Checksum = 0xac                        


 /var/opt/SUNWSMS/doors/mand

-This is the doors for mand.
-Located on the system controllers.
-This allows other processes to invoke mand methods. For example fomd instructing mand
to enter main mode. It is important to note that this is not a file, simply it is a file
structure which allows interprocess communication.

Example:
# file  /var/opt/SUNWSMS/doors/mand
/var/opt/SUNWSMS/doors/mand:    door to mand[18356]                        


 /etc/hosts

-This is the standard Solaris hosts listing.
-Located on system controllers and domains in the platform.
-It contains the certain hosts specific to the MAN Networks.

Example:
# cat hosts
#
# Internet host table
#
127.0.0.1       localhost       
172.20.66.148   mc15k-sc0       loghost
172.20.66.149   mc15k-sc1       loghost
172.20.66.19    route66
10.1.1.2        mc15k-a #smsconfig-entry#
10.1.1.3        mc15k-b #smsconfig-entry#
10.1.1.4        mc15k-c #smsconfig-entry#
10.1.1.5        mc15k-d #smsconfig-entry#
10.1.1.6        mc15k-e #smsconfig-entry#
10.1.1.7        mc15k-f #smsconfig-entry#
10.1.1.8        mc15k-g #smsconfig-entry#
10.1.1.9        mc15k-h #smsconfig-entry#
10.1.1.10       mc15k-i #smsconfig-entry#
10.1.1.11       mc15k-j #smsconfig-entry#
10.1.1.12       mc15k-k #smsconfig-entry#
10.1.1.13       mc15k-l #smsconfig-entry#
10.1.1.14       mc15k-m #smsconfig-entry#
10.1.1.15       mc15k-n #smsconfig-entry#
10.1.1.16       mc15k-o #smsconfig-entry#
10.1.1.17       mc15k-p #smsconfig-entry#
10.1.1.18       mc15k-q #smsconfig-entry#
10.1.1.19       mc15k-r #smsconfig-entry#
10.1.1.1        mc15k-sc-i1 #smsconfig-entry#
10.2.1.2        mc15k-sc1-i2 #smsconfig-entry#
10.2.1.1        mc15k-sc0-i2 #smsconfig-entry#                        


/etc/hostname.* /etc/hostname6.*

-This file shows the dman0, scman0, and scman1 varieties.
-Located on the system controllers (in the case of the scman varieties; dman interfaces
will be exclusive to the domains).
-They are referenced by drivers when the interfaces are plumbed.

Example:
# cat hostname.hme0
mc15k-sc0
# cat hostname.scman0
10.1.1.1 netmask + private up
# cat hostname.scman1
10.2.1.1 netmask + private up
# cat hostname6.hme0

#                         


 /etc/ipnodes

-This is the standard Solaris hosts listing that contains hosts relevant to IPv6 hosts.
-Located on system controllers and domains where appropriate.


/etc/netmasks

-This is the standard Solaris netmasks settings file.
-Located on system controllers and domains.
-It may contain netmasks relevant to the MAN Networks.

Example:
# cat netmasks
#
# The netmasks file associates Internet Protocol (IP) address
# masks with IP network numbers.
# 
#       network-number  netmask
#
# The term network-number refers to a number obtained from the Internet Network
# Information Center.  Currently this number is restricted to being a class
# A, B, or C network number.  In the future we should be able to support
# arbitrary network numbers per the Classless Internet Domain Routing
# guidelines.
#
# Both the network-number and the netmasks are specified in
# "decimal dot" notation, e.g.:
#
#               128.32.0.0 255.255.255.0
#
172.20.66.0     255.255.255.0
192.168.103.0   255.255.255.224
192.168.103.32  255.255.255.252
10.1.1.0        255.255.255.224
10.2.1.0        255.255.255.252                        


/etc/nsswitch.conf

-This is the standard Solaris name service configuration file.
-Located on system controllers and domains.
-It may require modification based on the site's name service.            

INTERNAL SUMMARY:

SUBMITTER: Joshua Freeman APPLIES TO: ATTACHMENTS:


Copyright (c) 1997-2003 Sun Microsystems, Inc.