[gentoo-user] MAC from IPv6 address. WAS: Re: How to find the MAC address
April 20th, 2012 - 01:30 pm ET by Michael Mol | Report spam
On Fri, Apr 20, 2012 at 6:43 AM, Joost Roeleveld <joost@antarean.org> wrote:
[snip]
https://en.wikipedia.org/wiki/IPv6_...ied_EUI-64
The inet6 address listed is
fe80::be5f:f4ff:fe19:ad18
and your MAC is
bc:5f:f4:19:ad:18
First, let's chop off the fe80:: portion. The fe80 means it's a
link-local address, and the :: means that that space in the address is
greedily (think regex) filled with 0s. That leaves us with
be5f:f4ff:fe19:ad18
Right in the middle of that, you see ff:fe. That part is added by
IPv6's autoconfiguration logic. Yank that out, and you're left with
be5f:f419:ad18
IPv6 addresses put the : between every group of 16 bits. The
representation of your MAC address has the : between every group of 8
bits. So we just insert more : characters where they're missing.
be:5f:f4:19:ad:18
Which is your MAC.
This autoconfiguration logic is used all over the place as part of
Stateless Link Automatic Address Configuration, or SLAAC, and it means
you don't need DHCP for many environments.
As an exercise example, here are the numbers on the latop I'm using right now:
MAC: e0:69:95:c5:29:5f
IPv6 link-local address: fe80::4eed:deff:fe93:63a0
IPv6 global address: 2001:470:c5b9:beef:4eed:deff:fe93:63a0
The breakdown of my global-scope address is slightly trickier, because
there aren't a bunch of 0s for a :: to consume. My IPv6 ISP gave me a
prefix of 2001:470:c5b9::/48, I set up my wireless network to have a
prefix of 2001:470:c5b9:beef::/64. What's left, 4eed:deff:fe93:63ao,
is common between the link-local and global-scope addresses.
And you should now know enough to derive my MAC address from either my
link-local address or my global-scope address.
Note that this won't necessarily work on all platforms. If you have
IPv6 privacy extensions enabled, a conforming IP stack (including on
Linux) should still work this way...except Windows uses a *randomized
MAC* as a basis. Also, if you're on a network which uses DHCPv6, I
can't guarantee what you'd get for ULA or global-scope addresses
(depends on your network admin's choices), but your link-local address
should still look the same.
:wq
On Thursday, April 19, 2012 04:12:35 PM Michael Mol wrote:
On Thu, Apr 19, 2012 at 4:01 PM, Alex Schuster <wonko@wonkology.org> wrote:
> Michael Mol writes:
>> On Thu, Apr 19, 2012 at 3:40 PM, Alex Schuster <wonko@wonkology.org>
>>
>> wrote:
>> > New output:
>> > eth0: flagsA63<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
>> > inet 192.168.2.42 netmask 255.255.255.0 broadcast
>> > 192.168.2.255 inet6 fe80::be5f:f4ff:fe19:ad18 prefixlen 64 scopeid
>> > 0x20<link>
>> >
>> > ether bc:5f:f4:19:ad:18 txqueuelen 1000 (Ethernet)
[snip]
Incidentally, you can derive it from your IPv6 LL address, but that's
a bit of a roundabout way, and may not work if you've disabled IPv6.
How do you derive it?
I don't see the mac-address in the inet6 address.
https://en.wikipedia.org/wiki/IPv6_...ied_EUI-64
The inet6 address listed is
fe80::be5f:f4ff:fe19:ad18
and your MAC is
bc:5f:f4:19:ad:18
First, let's chop off the fe80:: portion. The fe80 means it's a
link-local address, and the :: means that that space in the address is
greedily (think regex) filled with 0s. That leaves us with
be5f:f4ff:fe19:ad18
Right in the middle of that, you see ff:fe. That part is added by
IPv6's autoconfiguration logic. Yank that out, and you're left with
be5f:f419:ad18
IPv6 addresses put the : between every group of 16 bits. The
representation of your MAC address has the : between every group of 8
bits. So we just insert more : characters where they're missing.
be:5f:f4:19:ad:18
Which is your MAC.
This autoconfiguration logic is used all over the place as part of
Stateless Link Automatic Address Configuration, or SLAAC, and it means
you don't need DHCP for many environments.
As an exercise example, here are the numbers on the latop I'm using right now:
MAC: e0:69:95:c5:29:5f
IPv6 link-local address: fe80::4eed:deff:fe93:63a0
IPv6 global address: 2001:470:c5b9:beef:4eed:deff:fe93:63a0
The breakdown of my global-scope address is slightly trickier, because
there aren't a bunch of 0s for a :: to consume. My IPv6 ISP gave me a
prefix of 2001:470:c5b9::/48, I set up my wireless network to have a
prefix of 2001:470:c5b9:beef::/64. What's left, 4eed:deff:fe93:63ao,
is common between the link-local and global-scope addresses.
And you should now know enough to derive my MAC address from either my
link-local address or my global-scope address.
Note that this won't necessarily work on all platforms. If you have
IPv6 privacy extensions enabled, a conforming IP stack (including on
Linux) should still work this way...except Windows uses a *randomized
MAC* as a basis. Also, if you're on a network which uses DHCPv6, I
can't guarantee what you'd get for ULA or global-scope addresses
(depends on your network admin's choices), but your link-local address
should still look the same.
:wq
Similar topics
- [gentoo-user] courier ssl on ipv6 only
- [gentoo-user] SSH UseDNS without IPv6?
- [gentoo-user] iftop and 'ipv6' USE-flag
Make your own search :
Tags
Create a new topic
Follow the discussion
3 replies
Make a reply
May 18th, 2013 - 3:40 PM ET
Join now


Replies