//
you're reading...
Multicast, Multicast

IP Multicast to MAC Address Mapping

Map Multicast MAC address to IP Multicast Addresses

In the course of reading through the BSCI authorize self-study guide, I’ve come across a multicast example where the author talks about the concepts behind the multicast IP to MAC address mapping.

  • In order to achieve the translation between a Layer 3 IP multicast address and Layer 2 multicast MAC address, the low-order 23 bits of the IP address (Layer 3) is mapped into the low-order 23 bits of the MAC address (Layer 2).
  • The high order 4 bits of the Layer 3 IP address is fixed to 1110 to indicate the Class D address space between 224.0.0.0 through 239.255.255.255
    • Ethernet MAC addresses start with 01:00:5E, allowing for a range from 01:00:5E:00:00:00 through 01:00:5E:7F:FF:FF.
  • With 32 total bits present in an IP address and 4 high order bits of it set at 1110, we are left with 28 bits of unique IP addresses we can use (32 – 4 = 28).
  • But remember, 23 low-order bits out of the 28 available bits are mapped to the MAC address, giving us 5 remaining bits of overlap.
  • With the 5 bits of extra overlap, there are  32 (25 = 32) IP multicast address that map to one MAC multicast address.

The problem is, the book does not explain or show how it solved the mapping. So I went about researching how it was done. If you happened to be studying for BSCI, I am referring to the section of the BSCI: Authorized Self-Study Guide, by Teare and Paquet, that starts on page 598 – 600.

The following is an example of how we arrive with those 32 IP addresses that map to a single MAC address:

For reference, use the following conversion chart for converting hex to binary and vice versa

Let’s start by using the example MAC address given in the book :

01:00:5e:0a:00:01

  1. Convert the hexadecimal MAC address 01:00:5e:0a:00:01 to binary
    • 0000 0001 : 0000 0000 : 0101 1110 : 0000 1010 : 0000 0000 : 0000 001
    • Here’s a breakdown of the conversion bit by bit:

    • hex-bin
  2. Isolate the 23 low-order binary bits from the converted MAC address:
    • 0000 0001 : 0000 0000 : 0101 1110 : 0000 1010 : 0000 0000 : 0000 0001
  3. Take the low order 23 bits from step 2 and plug it into the low-order 23 bits of the IP address (do this in binary):
    • 1110 xxxx : x000 1010 : 0000 0000 : 0000 0000
      • 1110 –  First 4 high-order bits of the IP address for the multicast address space (224.x.x.x).
      • xxxx x – 5 remaining bits after the 23bits of the IP address is mapped to the MAC address plus the 4 high order bits 1110. This is equal to 32 total IP addresses.
  4. Convert the binary equivalent of the IP addresses to decimal, replacing the x variables with all the values to get all 32 possible IP addresses:
    • 11100000 : 0000 1010 : 0000 0000 : 0000 0001= 224.10.0.1
    • 11100001 : 0 000 1010 : 0000 0000 : 0000 0001= 225.10.0.1
    • 11100010 : 0 000 1010 : 0000 0000 : 0000 0001= 226.10.0.1
    • 11100011 : 0 000 1010 : 0000 0000 : 0000 0001= 227.10.0.1
    • 11100100 : 0 000 1010 : 0000 0000 : 0000 0001= 228.10.0.1
    • 11100101 : 0 000 1010 : 0000 0000 : 0000 0001= 229.10.0.1
    • 11100110 : 0 000 1010 : 0000 0000 : 0000 0001= 230.10.0.1
    • 1110 0111 : 0 000 1010 : 0000 0000 : 0000 0001= 231.10.0.1
    • 11101000 : 0 000 1010 : 0000 0000 : 0000 0001= 232.10.0.1
    • 11101001 : 0 000 1010 : 0000 0000 : 0000 0001= 233.10.0.1
    • 11101010 : 0 000 1010 : 0000 0000 : 0000 0001= 234.10.0.1
    • 11101011 : 0 000 1010 : 0000 0000 : 0000 0001= 235.10.0.1
    • 11101100 : 0 000 1010 : 0000 0000 : 0000 0001= 236.10.0.1
    • 11101101 : 0 000 1010 : 0000 0000 : 0000 0001= 237.10.0.1
    • 11101110 : 0 000 1010 : 0000 0000 : 0000 0001= 238.10.0.1
    • 11101111 : 0 000 1010 : 0000 0000 : 0000 0001= 239.10.0.1
    • 11100000 : 1 000 1010 : 0000 0000 : 0000 0001= 224.138.0.1
    • 11100001 : 1 000 1010 : 0000 0000 : 0000 0001= 225.138.0.1
    • 11100010 : 1000 1010 : 0000 0000 : 0000 0001= 226.138.0.1
    • 11100011 : 1000 1010 : 0000 0000 : 0000 0001= 227.138.0.1
    • 11100100 : 1000 1010 : 0000 0000 : 0000 0001= 228.138.0.1
    • 11100101 : 1000 1010 : 0000 0000 : 0000 0001= 229.138.0.1
    • 11100110 : 1000 1010 : 0000 0000 : 0000 0001= 230.138.0.1
    • 11100111 : 1000 1010 : 0000 0000 : 0000 0001= 231.138.0.1
    • 11101000 : 1000 1010 : 0000 0000 : 0000 0001= 232.138.0.1
    • 11101001 : 1000 1010 : 0000 0000 : 0000 0001= 233.138.0.1
    • 11101010 : 1000 1010 : 0000 0000 : 0000 0001= 234.138.0.1
    • 11101011 : 1000 1010 : 0000 0000 : 0000 0001= 235.138.0.1
    • 11101100 : 1000 1010 : 0000 0000 : 0000 0001= 236.138.0.1
    • 11101101 : 1000 1010 : 0000 0000 : 0000 0001= 237.138.0.1
    • 11101110 : 1000 1010 : 0000 0000 : 0000 0001= 238.138.0.1
    • 11101111 : 1000 1010 : 0000 0000 : 0000 0001= 239.138.0.1
  5. All the 32 IP addresses on step 4 map to MAC address 01:00:5e:0a:00:01

Convert IP Multicast Address to Multicast MAC Address

Conversely, a multicast IP address can be converted to its equivalent MAC address. Once you’ve figured out how to convert from Layer 2 MAC to Layer 3 IP, doing the reverse is easy.

To start, we can pick any address from the 32 IP addresses we converted above. Let’s pick a random one like 227.138.0.1

  1. First convert the address 227.138.0.1 to binary:
    • 11100011 : 10001010 : 00000000 : 00000001
    • We’re only concerned with the red colored portion which represents the low-order 23bits of the IP address.
    • Notice that we are dropping the high order bit of the second octet.
  2. Convert those 23 bits to hexadecimal:
    • 0A:00:01
  3. We already know that the first 3-bytes (24 bits) of the MAC address is 01:00:5E. This was established earlier in the article. Simply append the result on step 2 to the first 3-bytes and you have your MAC address:
    • 01:00:5E:0A:00:01
    • *You can pick any of the 32 Ip addresses we have on the list above and you will always get 01:00:5E:0A:00:01 as your MAC address following the steps just mentioned.
Advertisements

Discussion

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: