5 Replies Latest reply: Nov 2, 2010 1:07 AM by dmahler

# Multicast - Convert IP to MAC

Hi,

Studying for BSCI an I am looking for a detailed example of how to convert a Multicast IP address to a Multicast MAC address. I have found several examples including my BSCI Student Guide and Cisco Press Exam Cert Guide but none of them show me a detailed bit by bit example of how this works.

Would appreciated a detailed bit by bit example.

Col

• ###### 2. Re: Multicast - Convert IP to MAC

If you can obtain a copy of the CCIE R&S Exam Cert Guide v3, in Chapter 16, titled "Introduction to IP Multicasting", section 3 "Multicast IP Addresses" they provide a process with diagram on how to calculate the MAC from the IP.

Not sure if Cisco is OK with me posting snippets from their books online, if they OK that then I can try to post it online for you.

• ###### 3. Re: Multicast - Convert IP to MAC

Many thanks Brent as that link sorted it out for me. I was very comfortable doing the Decimal / Binary / Hex conversions I guess I just needed a different example that detailed the rules for Multicast address conversion.

I also found this useful: https://learningnetwork.cisco.com/docs/DOC-1557

Travis Newshott I am sure that CCIE material would have been useful but I do not access to it. Thanks for responding.

• ###### 4. Re: Multicast - Convert IP to MAC

Hi Colan,

Going on the MS article that Brent posted, which was of considerable help to me as well, I think a way to quickly calculate a corresponding overlap address would be as follows;

If the 2nd Octet has a IP address value less than 128, then to calculate the corresponding overlap address you would simply add 128 (remember the rightmost bit in the 2nd Octet is ignored) only the last 23 bits are translated/considered.

A random choice example;

224.42.16.1, overlap is 224.172.16.1, (42 + 128 = 172)

and if I were given the address 224.172.16.4, I'd do a subtraction 172 - 128 =42

therefore the same overlap would occur in any mulicast class D address e.g. 227.42.16.1, rendering a 32:1 overlap

224 to 239 = 16 Class D, therefore 16 (Class D's) x 2(overlaps in the 2nd octet) = 32 Overlaps

I tested this on a number of addresses (in the 2nd octet) and got the same result as you would expected (no suprises).

This calculation is reliant on the microsoft description Brent provided and their description made sense, so I hope my calculation is right.

Cheers,

Dave

• ###### 5. Re: Multicast - Convert IP to MAC

Replying to something 2 years later could be construed as silly but I wanted to comment on dmorrows post for the next person who wanders by and reads this chain like I did :-).

So first - converting multicast IP to multicast MAC for dummies.

1) Take the last 23 bits of the IP address in question (in binary)

2) prepend it with a binary 0

3) convert it to hex

4) prepend 01:00:5e

Done!

So an easier example: 224.0.0.5 (OSPF hello)

1) In binary this is 11100000.00000000.00000000.00000101 so the last 23 bits are 0000000.00000000.00000101

2) Prepend a 0 to the last 23 - so this becomes : 00000000.00000000.00000101

3) Convert this to hex which is 00:00:05

4) Prepend 01:00:5e so this becomes 01:00:5e:00:00:05

Oh so easy (sort of)

The "32 overlaps" comes from this:

When converting the IP you are only considering the last 23 bits, but IPs have 32 bits - so you are ignoring 9 bits.  However ALL multicast addresses start with 1110 in binary, so those don't count as being ignored.  So you are really ignoring 5 bits (9 minus 4 bits in 1110).  Ignoring 5 binary bits means there are 2^5 or 32 overlapping IP addresses that would all convert to the exact same multicast mac address.

dmorrow is correct in that adding or subtracting 128 in the second octet can find you 1 example of any overlapping address - but there are 31 more examples :-)

1110 [  0000.0  ]  0000000.00000000.00000101

The bits in brackets above are being ignored so:

These multicast IPs would all result in the same multicast MAC address:

1110 [  0000.0  ]  0000000.00000000.00000101

1110 [  0010.0  ]  0000000.00000000.00000101

1110 [  1100.0  ]  0000000.00000000.00000101

1110 [  0010.1  ]  0000000.00000000.00000101