First some background on MAC addresses.
Almost all of what follows is taken from an email from Sun some time ago.
IEEE leaves it up to the vendor to use the station address approach vs. per port approach. Sun used the concept of a host-based MAC identity prior to the newer nic cards.
Usually this does not present a problem. Only systems on the same subnet (connected to same switch/hub) are required to have unique hardware address (arp entries).
If you are configuring a multi-homed host with more than one interface on the same physical subnet (connections to same hub), choosing and configuring a unique ether address that is different from the primary host-based assigned ethernet Mac address may be neccessary.
The older network interface drivers in Sun systems get the MAC address for the ethernet interface from the PROM on the system. The MAC address does not come from the ethernet chip or interface hardware. There is just one ethernet MAC address for all interfaces on a system. The intel, i.e. lance (le), ethernet interfaces along with the SunSwift (hme) and SunFastEthernet 1.0 (be) and 2.0 Adapters (hme) use the host assigned address of the CPU OpenBoot PROM.
Sun Microsystems reserved ethernet range starts with 8:0:20:xx:xx:xx
The ones with local MAC addresses today are: (11-24-1998)
|TRI/P||(4/16mbps UTP/STP Token Ring) x1039a|
|FreshChoice light (PCI)||FastEthernet x1033a|
|FreshChoice (PCI)||FW-scsi/FastEthernet combo x1032a|
|QFE/Sbus||(4 MAC addresses) x1042a, x1049a|
|QFE/PCI||(4 MAC addresses) x1034a|
|GEM/Sbus||(Gigabit v2.0) x1140a|
|GEM/PCI||(Gigabit v2.0) x1141a|
|VGE/SBus||(Gigabit v1.0) x1045a|
|VGE/PCI||(Gigabit v1.0) x1144a|
|FDDI/S 3.0, 4.0, 5.0 SAS and DAS||For fddi-5.0: x1025a, x1026a|
|FDDI/P 1.0||x1035a, x1036a|
|ATM 155 2.0/2.1 Sbus||(2.1 has 16 MAC addr, 2.0 only one) x1060a, x1061a|
|ATM 622 2.1 SBus||(16 MAC addresses) x1064a|
|ATM 155/622 3.0 PCI||(16 MAC addresses) x1066a, x1067a, x1068a|
|+ all NEW Sun network adapters from now on.|
The Sun Adapters with local MAC addresses (machine access code) have addresses encoded in the Fcode Prom. The local-mac-address property in eeprom is used to enable this feature.
ok local-mac-address? (Defaults to false = use system defined mac address).
This can be set for true, which allows network drivers to use their own MAC address, not the system default. For use with the QFE (QuadFastEthernet) or newer ethernet NIC's listed above.
From the eeprom on the command line:
# eeprom local-mac-address?=true
Section 3.2.3(4) of the IEEE 802.3 spec defines a reserved bit in the Ethernet Address that can be used to administer a universally assigned ethernet addresses. A Locally administered address (LAA) can be implemented to ensure a unique HW address.
Setting the LAA bit can be done by using a 0A hex (second bit set 1010, add 2) as the first digit instead of 08 (1000). 8:00:20:x:x:x is Sun's universal assignment. (1010) a:00:20:x:x:x would be local administer address. The first bit is "individual/group" bit and used by multicasting (1001 = 09, odd number) and should be avoided.
Use the ifconfig "ether" option if this is needed on a NIC that do not implement local-mac-address.
examples ( use for qe, le and hme devices ):ifconfig -a shows that hme0 is 8:0:20:77:dc:7bCommand to change ether number on additional hme interfaces:
(using first 3 bytes of 0a:0:20 and last 3 bytes of host-assigned address)ifconfig hme1 ether 0a:0:20:77:dc:7b ifconfig hme2 ether 0c:0:20:77:dc:7bsequencial numbering:ifconfig hme1 ether 0a:0:20:00:00:1 ifconfig hme2 ether 0a:0:20:00:00:2numbering scheme based on part of IP address
( ex: hme1 =220.127.116.11 hme2 = 18.104.22.168
Using 0a:0:20 for first 3 bytes and last 3 octets of IP number):ifconfig hme1 ether 0a:0:20:09:c8:2 ifconfig hme2 ether 0a:0:20:09:c8:10This change can be permenantly added to /etc/rc2.d/S72inetsvc (/etc/init.d/inetsvc startup script) or a new script created.
A sometimes crude method is to ping the broadcast address and randomly choose a number that is not being used on the network. in the form of 8:0:20:XX:XX:XX
Notes: Do not use an odd number ( ex: "09:") for the first byte due to the fact that if you are implementing multicasting, the 1st bit transmitted ("individual/group" bit) of a 1 represents a multicast address.
Additional note: For Security and network isolation. You can set ip_forwarding off and ip_strict_dst_multihoming on, if you are trying to prevent access to the other interfaces.
ndd /dev/ip ip_forwarding Determines if the workstation will route packets.
ndd /dev/ip ip_strict_dst_multihoming Determines whether to use Strict Destination Multihoming. If this variable is set to True, and ip_forwarding is turned off, then the machine will not accept packets destined for a different interface. (RFC1122)
To determine if local-mac-address is implemented, use prtconf to examine local-mac-address value.
( for on-board le or hme = host assigned HW address)$ prtconf -pv |grep idprom idprom: 01800800.208d7e88.00000000.8d7e88a9.00000000.00000000.00000000.00000000 ^^^^^^^^^^^^^(the new nic's have unique addresses, qfe example)$ prtconf -pv |grep local-mac-address local-mac-address?: 'true' local-mac-address: 0800208d.7828 local-mac-address: 0800208d.7829 local-mac-address: 0800208d.782a local-mac-address: 0800208d.782b
** This infodoc only applies to ethernet interfaces, for token ring, atm, fddi and other networks should refer to the documentation for these cards. For example fddi has a "nf_macid nf<inst>" utility to display the on-board ethernet number.
This web page is Copyright © 1997 - 2017, Stephen Hinchey
If you have comments or additions for these web pages please direct them to webmaster @ barbary.com