Sunday, June 29, 2014

Private addresses in IPv6 protocol

It is almost a common wisdom that 172.16.0.0/12, 192.168.0.0/16, and 10.0.0.0/8 are private network addresses that should be used when you don't have assigned address, or you don't intend to connect to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet (at least not directly). With IPv6 being ever more popular, and necessary, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question is which addresses are used for private networks in that protocol. In this post I'll try to answer that question.

The truth is that in IPv6 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are two types of private addresses, link local and unique local addresses. Link local IPv6 addresses, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name suggests, are valid only on a single link. For example, on a single wireless network. You'll recognize those addresses by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir prefix, which is fe80::/10, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are automatically configured by appending interface's unique ID. IPv4 also has link local address, though it is not so frequently used. Still, maybe you noticed it when your DHCP didn't work and suddenly you had address that starts with 169.254.0.0./16. This was a link local IPv4 address configured. The problem with link local addresses is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can not be used in case you try to connect two or more networks. They are only valid on a single network, and packets having those addresses are not routable! So, we need something else.

Unique local addresses (ULA), defined in RFC4193, are closer to IPv4 private addresses. That RFC defines ULA format and how to generate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. Basically, those are addresses with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefix FC00::/7. These addresses are treated as normal, global, addresses, but are only valid inside some restricted area and can not be used on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 global Internet. This is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same as saying that 10.0.0.0/8 addresses can be used within some private networks, but are not allowed on a global Internet. You choose how this conglomerate of networks will be connected, what prefixes used, etc.

There is  difference, though. Namely, it is expected that ULA will be unique in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world. You might ask why is that important, when those addresses are not allowed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet anyway. But, that is important. Did it ever happened to you that you had to connect two private IPv4 networks (directly via router, via VPN, etc.), and coincidentally, both used, e.g. 192.168.1.0/24 prefix? Such situations are a pain to debug, and require renumbering or some nasty tricks to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m work. So, being unique is an important feature.

So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mentioned RFC, actually specifies how to generate ULA with /48 prefix and a high probability of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefix being unique. Let's first see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exact format of ULA:
| 7 bits |1|  40 bits   |  16 bits  |          64 bits           |
+--------+-+------------+-----------+----------------------------+
| Prefix |L| Global ID  | Subnet ID |        Interface ID        |
+--------+-+------------+-----------+----------------------------+
First 8 bits have a fixed value 0xFD. As you can see, prefix is 7 bit, but L bit must be set to 1 if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 address is specified according to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RFC4193. So, first 8 bits are fixed to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value 0xFD. Note that L bit set to 0 isn't specified, it is something left for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future. Now, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main part is Global ID, whose length is 40 bits. That one must be generated in such a way to be unique with high probability. This is done in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following way:
  1. Obtain current time in a 64-bit format as specified in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NTP specification.
  2. Obtain identifier of a system running this algorithm (EUI-64, MAC, serial number).
  3. Concatenate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous two and hash cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 concatenated result using SHA-1.
  4. Take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 low order 40 bits as a Global ID.
The prefix obtained can be used now for a site. Subnet ID can be furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r used for multiple subnets within a site. There are Web based implementations of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 algorithm you can use to eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r get a feeling of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 generated addresses, or to generate prefix for your concrete situation.

Occasionally you'll stumble upon so called site local addresses. Those addresses were defined starting with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 initial IPv6 addressing architecture in RFC1884 and were also defined in subsequent revisions of addressing architecture (RFC2373, RFC3513) but were finally deprecated in RFC3879. Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were defined for so long (8 years) you might stumble upon cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in some legacy applications. They are recognizable by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir prefix FEC0::/10. You shouldn't use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m any more, but use ULA instead.

No comments:

About Me

scientist, consultant, security specialist, networking guy, system administrator, philosopher ;)

Blog Archive