IP Aliasing In a LAN environment, clients and servers are connected to the network by one or more network controller cards. Each controller has a factory-set (hard-coded) primary physical address called the MAC address. The MAC address is also known as the primary unicast address. For an Ethernet controller, the MAC address is a string of hex bytes that looks, for example, like this: 08:0a:10:bc:7f:5d In addition to its own name, the controller can recognize up to 16 alias names placed in the its driver's multicast address list. The controller accepts any packet sent to its primary unicast address and any packets sent to an address in its multicast list. The IP address is a unique name given to a controller to identify it on the network. The IP address is a broken numeric string that looks similar to: 129.226.55.33 Traditional internet protocol (IP) allows each controller on a network to have one IP address, which is mapped to the MAC address to establish its network identity. IP aliasing allows each controller to have a secondary IP address (an alias) supporting up to 16 unique virtual addresses, so that a network administrator can greatly expand the effective size of the network without installing additional hardware. The virtual addresses are mapped to the multicast list of the physical controller. The utilities ipalias and macconfig are used to create multiple virtual interfaces on a single physical network interface. Although the primary interface is brought on line with ifconfig, the IP layer treats the primary and secondary addresses as equals with identical responses ping, ftp, telnet, rcp, rlogin, and so forth. Aliasing the MAC Address The macconfig utility is used to add a multicast address to the list of multicast addresses on system X. This task involves the conversion of a unicast address to a new form, the multicast address. An understanding of 48-bit Universal LAN MAC address structure makes this task easier. 48-bit Universal LAN MAC Address The concept of universal addressing is based on the requirement that all members of a network have a unique identifier. Otherwise they cannot coexist. The advantage of a universal address is that a node with such an address can be attached to any LAN in the world with an assurance that its address is unique. The 48-bit Universal Address consists of two parts: 1. The first 24 bits correspond to the Organizationally Unique Identifier (OUI) as assigned by the IEEE, except that the assignee may set a control bit for group addresses (multicast addresses) or for individual addresses (unicast addresses).2. The second part, comprising the remaining 24 bits, is administered locally by the assignee. In the following 48 bit LAN MAC address, the Organizationally Unique Identifier is contained in octets 0, 1, 2 and the remaining octets 3, 4 and 5 are assigned locally. Octet 0 1 1 3 4 5 Binary 0011 0101 0111 1011 0001 0010 0000 0000 0000 0000 0000 0001 Hex C A E D 8 4 0 0 0 0 0 8 The least significant bit or first bit octet 0 is the I/G address bit used to identify the destination address, either as an individual/unicast address (0) or as a group/multicast address (1) that identifies one, several, or all stations connected to the LAN. The all-station broadcast address is a special predefined group address off all 1's. The second bit of octet 0 is the Universally or Locally Administered (U/L) bit. This bit indicates whether the address has been assigned by a local or universal administrator. Universally administered addresses have this bit set to 0 and they are globally/universally unique. This is the normal case. If this bit is set to 1, the entire address (all 48 bits) has been locally administered and may not be globally unique. Thus, for example, bytes 0,1 and 2 would be unique for SynnerGy Networks, and SynnerGy Networks can then assign the last 24 bits for each network interface controller it manufactures, thereby allowing approximately 16 million individual addresses and 16 million unique group addresses that no other organization can have (universally unique). Converting a Unicast Address to a Multicast Address For a given 48-bit Universal LAN MAC address, the first 24 bits correspond to OUI. The least significant bit (the first bit or I/G bit) of the OUI is the only bit that can be changed to make this address a multicast address. We cannot change any other bit without either compromising uniqueness of the address or violating some IEEE addressing standards. The U/L bit for a universally unique address is always 0. This leaves the following four possibilities in the least significant nibble (4 bits) of a valid universally unique unicast/individual address: 0x0(0000) 0x4(0100) 0x8(1000) 0xC(1100) where 0x indicates a hexadecimal digit. Given the fact that we can only change one bit (the I/G bit) to convert the unicast address to a multicast address, we have the following transformations: 0x0(0000) ? 0x1(0001) 0x4(0100) ? 0x5(0101) 0x8(1000) ? 0x9(1001) 0xC(1100) ? 0xD(1101) Thus, for a given unicast address, 08:00:0b:06:1d:50, for example, the multicast form is 09:00:0b:06:1d:50. Address Resolution Protocol The IP addresses must be mapped to MAC addresses before a client can successfully send a packet to a server or peer on the network. In TCP/IP, the Address Resolution Protocol (ARP) is used to seek and map the address information. The client sends an ARP broadcast query that says, in effect, "Here is a destination IP address. Send me your MAC address." This query is seen by all the controllers on the network, and the owner of the IP address replies with its MAC address. The client stores the IP/MAC address map entry in a small table called the ARP cache. This information can be published by ARP. Aliasing the IP address - An Example Initially, the network controller is brought online and given a primary IP address using ifconfig. Now we use ipalias to create up to 16 additional network identities on the secondary IP address and will honor all communication sent to its IP Aliases. Steps to bring a virtual network interface up on a system are: 1. Add the alias IP address to the interface using the following command sequence: $ ipalias -a 129.226.55.33 et5961 where (as an example) 129.226.55.33 is the alias IP address and et5961 is the controller name. 2. Add the multicast address to the interface $ macconfig -m 129.226.55.33 9:6:a:b:3:e et5961 where 9:6:a:b:3:e is the example MAC address and et5961 is the controller name. 3. Invoke ARP to publish the mapping. $ arp -s 129.226.55.33 9:6:a:b:3:e pub 4. Check the mapping published by ARP, which should appear as shown on the seconds line of this example. $ arp -a (129.226.55.33) at 9:6:a:b:3:e permanent published >From this point onward any system on the network can access this aliased IP address (129.226.55.33) using ping, telnet, ftp, rlogin, rcp, rsh, and so forth. guidob (guidob@synnergy.net) Synnergy Networks (c) 1999, http://www.synnergy.net