Why can't we use the physical address instead of the logical address in IPv6, when the physical address is 48 bits and the logical address is 128 bits?


2 Answers 2


Hardware (MAC) address prefixes are allocated on a per-vendor basis and that vendor may assign addresses within said prefixes however they see fit. There is also no guarantee that a given address is unique.

The result? There's no way to hierarchically summarize addresses. Worst case this yields a global routing table with some significant subset of 2^48 addresses. To put this in context, as of today the number of prefixes in the (IPv4) global routing table is just shy of 246,000 routes. That quarter million routes represents the summarization of hundreds of millions of individual host addresses.

IPv6, in contrast, is designed and allocated with the idea of hierarchical addressing. Lots of addresses means that subnets can be large, sparse and scalably allocated while still stemming the propagation of routes. Keep in mind that the /48 that's readily available as a basic unit of allocation is equivalent to 65K times the size of the entire IPv4 Internet. A well-summarized IPv6 Internet can accommodate literally trillions of end host addresses in a table the same size as- or smaller than- the current global table.


If by logical you mean an IP address, and by physical you mean a MAC address, it's simply beacause those are two different addresses which work with different protocols.

Lengths have nothing to do with it (even though ipv6 was introduced due to the fact that 2^32 ipv4 addresses were 'not enough').

To put in an analogy, consider an IP address an equivalent of a home address, and a MAC address an address on the bag the post office uses to transfer packages to other post offices.
The outer address changes as the package goes from one post office (to an airport, cargo ship,...) to another post office, ... (just like a MAC address changes from a router to a router, and might even dissapear on tunnels and/or other transfer technologies), while the source and destination on the package stays the same (as does src and destination IP of the packet sent)

Not the answer you're looking for? Browse other questions tagged .