When network booting, the first part of the process is for the Client system to send out an Reverse Address Resolution Protocol request (RARP request) to request the corresponding IP address from the boot server. It’s important to know which interface will be used, as this can influence which ethernet address is sent onto the network.
The local-mac-address setting in the OBP controls whether the system uses the system’s ethernet address, as displayed by the OBP banner command, or uses the ethernet address associated with each specific interface.
To check if the system wide MAC address will be used:
ok> printenv local-mac-address local-mac-address = true
This means that the system will use the interface specific MAC address (ethernet address) when broadcasting it’s RARP request. This is typically the desired behaviour. If set to false, then ALL interfaces would use the system’s ethernet address, which is not desirable if any of these interfaces are to be connected to the same network.
When network booting, the boot command is typically:
ok> boot net
It should be noted, however, that this is actually instructing the system to boot from the device alias ‘net‘. To check what the current ‘net’ alias is at the OBP:
ok> devalias net net /pci@7c0/pci@0/network@4
In the event that there are multiple ethernet devices in the system, one can plug an interface into the network, and watch each connection in series to determine which port has been connected to the network. An example on a T5210 follows; to check what the available network device paths are, at the OBP show-nets can be run:
ok> show-nets a) /pci@0/pci@0/pci@1/pci@0/pci@3/network@0,1 b) /pci@0/pci@0/pci@1/pci@0/pci@3/network@0 c) /pci@0/pci@0/pci@1/pci@0/pci@2/network@0,1 d) /pci@0/pci@0/pci@1/pci@0/pci@2/network@0 q) NO SELECTION Enter Selection, q to quit: q
And to check which of these are connected to a network, on a SPARC system:
ok> watch-net-all /pci@0/pci@0/pci@1/pci@0/pci@3/network@0,1 Timed out waiting for Autonegotation to complete Check cable and try again Link Down /pci@0/pci@0/pci@1/pci@0/pci@3/network@0 Timed out waiting for Autonegotation to complete Check cable and try again Link Down /pci@0/pci@0/pci@1/pci@0/pci@2/network@0,1 Timed out waiting for Autonegotation to complete Check cable and try again Link Down /pci@0/pci@0/pci@1/pci@0/pci@2/network@0 1000 Mbps full duplex Link up Looking for Ethernet Packets. '.' is a Good Packet. 'X' is a Bad Packet. Type any key to stop. ....................................................
From here, it is clear that only /pci@0/pci@0/pci@1/pci@0/pci@2/network@0 is connected to a network, and can see packets. As this is the only interface plugged in, this would be the port to use for our network boot. Check the local MAC address of this interface by cd’ing to it’s pathname in the OBP
ok> cd /pci@0/pci@0/pci@1/pci@0/pci@2/network@0
and checking it’s properties:
ok> .properties local-mac-address 00 14 4f 46 52 30 mac-addresses 00 14 4f 46 52 30 ...
To set the ‘net’ device alias to this interface, you would use the following:
ok> nvalias net /pci@0/pci@0/pci@1/pci@0/pci@2/network@0
and then perform the network boot :
ok> boot net
knowing that this interface would send out ethernet address 00:14:4f:46:52:30 onto the subnet we are connected to. Alternately, if this is to be a one time boot, one could simply boot from the device path itself:
ok> boot /pci@0/pci@0/pci@1/pci@0/pci@2/network@0