10 ms·
All IP addresses are equal? “Dot-zero” addresses are less equal (2013)
- controversial97 3y agoThis reminds of edonkey, a filesharing program launched in the year 2000. A deficiency in the protocol results in clients on a ip with a zero last octet being unable to receive incoming connections, which means clients can exchange data with fewer peers. I believe that there is still some use of ed2k protocol by people using eMule. Torrents won but it is still around. As far as I have noticed it has been rare for ISPs to give out ip addresses ending in zero since the early 2000s.
- deleted 3y ago[deleted]
- schoen 3y ago(2013) You can see quite a lot of these in http://ec2-reachability.amazonaws.com/ http://ec2-reachability.amazonaws.com/ I think the situation has improved with regard to this specific issue since 2013. I did run some of my own RIPE Atlas tests on this more recently (targeting some of the AWS addresses mentioned above), and it didn't look particularly bad at all. Somewhat relatedly, we've been proposing to explicitly allow the lowest address within a subnet to be used to number a host. (This isn't necessarily dot-zero, and dot-zero isn't necessarily this; they coincide exactly in the specific case of a /24 network.) https://datatracker.ietf.org/doc/draft-schoen-intarea-unicast-lowest-address/ https://datatracker.ietf.org/doc/draft-schoen-intarea-unicas... We've gotten patches in Linux and FreeBSD for this, while OpenBSD and NetBSD each independently adopted this behavior some time ago.
- tedunangst 3y agoReally love when I get a /30 with one IP from hosting providers. (Oops, /30 not 22. Subtracted two from the wrong number.)
- candiddevmike 3y agoNot sure what you mean, what's wrong with being issued a single IP on a /22?
- ilyt 3y agothink he just mistyped /32
- ilyt 3y agowe assign /32 to our VMs then add a /32 device route to the router. Not an ISP tho, just inside datacenter.
- jve 3y agoCan you elaborate? Say you give 1.1.1.1/32 to a VM (Sorry CF). What route do you add to reach internet? Do you somehow configure the router too? What do you put in as a gateway? And what would be router IP in this example, if you had, say 1.1.0.0/16 ? Wouldn't you need a /0 route for gateway?
- jleahy 3y agoIt’s very nasty, but there are a lot of options. For example you can give the gateway an address in the link local range and add a route pointing at that. I think that’s the best way. Another option would be to set the subnet mask to /0 and enable ARP proxy on the gateway (that is truly diabolical). Another way is to have a private /30 or /31 as the linknet and then add the /32 public ip as an additional one with a /0 route to the routers ip in the private /30 (and the router can have a /32 route to your ip in the private /30). 1:1 NAT is another option (but that’s not quite the question).
- ilyt 3y agosee my other answer for a way. We do actually use proxy-arp for install only as it's hard to inject a route into installer
- jedberg 3y agoThis is what happens when you make the fresh college hire, who has only ever seen a /24, write your network interfaces. They just assume .0 and .255 are always special. I say this because I was one of those people when I graduated. At our school every network was /24, so 0 and 255 were always reserved. It was a while before I learned about CIDR and how those addresses may not be reserved.
- candiddevmike 3y agoI think people might be confused by your post. With an IPv4 /24 subnet, .0 and .255 are special (they are the network and broadcast addresses for a /24, respectively). When you use a different subnet mask, the network (first IP) and broadcast (last IP) addresses will shift.
- Faaak 3y agoAnd even though, you can still have a /24 with used .0, .255 (for example if injected via BGP on machines that have other IPs)
- candiddevmike 3y agoLike other things in tech, you can do this, but you really shouldn't. There are a lot of assumptions baked into those addresses per the RFCs, which are kind of like our industry's electrical code. Using a broadcast address is "not up to code".
- NoZebra120vClip 3y agoLong, long ago, SunOS, and possibly other Unixes, considered x.x.x.0 as a broadcast address as well. (Or I should say more properly, an all-zeroes host address.) It took a long, long time to shake that assumption out of all code, long after the OS had stopped using .0 that way. So this is yet another domino.
- Faaak 3y agoPlease tell, then. But no, I don't see what is wrong with that. An outsider doesn't know the CIDR of the IP he's talking too, so it wouldn't change. It only matters for the last router in the loop, and if it's taken into account (because it's actually your infra), then it's okay
- WarOnPrivacy 3y agoI once had my residential cable provider assign me an address ending in .0 (not /24), which I thought was pretty neat. But I predictably ran into some sites and services that refused me access and eventually forced a change.
- unnah 3y agoHow many years ago did that happen?
- WarOnPrivacy 3y agoIt was BrightHouse networks so about 8 years ago.
- zapdrive 3y agoTime to move to IPV6.
- crims0n 3y agoObligatory IPv6 is an academic solution to an engineering problem.
- zapdrive 3y agoNo it isn't.
- crims0n 3y agoNot literally no, but the spirit of the sentiment is true. Have been in some flavor of networking for the past decade, there is a reason it hasn’t been universally adopted despite being ratified 25 years ago.
- betaby 3y agoWe can say that IPv6 is universally adopted for mobile networks.
- mbreese 3y agoBut does it universally go IPv6 to IPv6 or IPv6 to an NAT64 gateway? Isn't CGNAT also popular for mobile networks?
- betaby 3y agoMost of the traffic in mobile operator networks I'm aware of is IPv6 to IPv6, for very obvious reason - people watching youtube, facebook et al, and they are IPv6 enabled for over 10+ years. Of course one need to provide IPv4 reach-ability as well, details are varies from network to network, 464XLAT is being a popular one.
- ilyt 3y ago/31 is equally funny one, confuses so many people that really should know better
- bell-cot 3y agoReal-old-timer's "solution" - start moving major DNS servers, search engine crawlers, Gmail web pages, bank payment system gateways, etc. to those addresses. People fix sh*t fast when the suffering is on their end.
- myself248 3y agoSimilarly I've been advocating that a few major routers should simply drop all IPv4 for one minute at noon UTC. Next month, make it two minutes. IPv6 adoption would skyrocket.
- lmm 3y agoNeeds to happen during American daytime, the US doesn't care until it affects them (which is exactly why it's taken so long to move off IPv4, the US has plenty of addresses).
- AceyMan 3y agoA side benefit of inventing the internet, I guess. (disclosure: I'm a Yankee)
- ironick09 3y agoYou think that’s why it’s taken so long to move off of IPv4? Surely it can’t be _anything_ else, like lagging support for IPv6 in newer network routing protocols, bug related to those implementations with IPv6, or sometimes no support for IPv6 at all. Similarly for systems and applications that just have no concept of IPv6 at all. To single out the US as the reason why we have not moved off of IPv4 is laughable, the US has a pretty significant adoption of IPv6.
- lmm 3y ago> You think that’s why it’s taken so long to move off of IPv4? Surely it can’t be _anything_ else, like lagging support for IPv6 in newer network routing protocols, bug related to those implementations with IPv6, or sometimes no support for IPv6 at all. Similarly for systems and applications that just have no concept of IPv6 at all. Who do you think is making those poor protocols and buggy implementations? People who are affected by IPv4 address exhaustion - which is most of the non-US world - know how important IPv6 is and prioritise it. People who aren't affected and don't know anyone who's affected - which is people in the US - don't care (and I don't think this is some deep moral failing - it's normal and natural to not care about an issue that doesn't affect you), treat it as an afterthought, and the poor level of support you see is the result of that.
- 0x0000000 3y agoI run a /23 in my primary "home" VLAN specifically so I could allocate 10.x.y.0. All of my hosts are named after pokémon, and use their pokédex number as the last byte in their IP addresses -- except for one host, which gets the .0 A /24 on its own holds all of generations 1 and 2!
- schoen 3y ago> All of my hosts are named after pokémon, and use their pokédex number as the last byte in their IP addresses -- except for one host, which gets the .0 So, if you're sufficiently enthusiastic about Pokémon, you can do the DNS and reverse DNS in your head? :-)
- LoganDark 3y ago> All of my hosts are named after pokémon Do you have Umbreon in there somewhere~? That'd be meeee :o
- Sesse__ 3y agoFrom experience running a DHCP server: .255 in the middle of a /23 is allowed, but not accepted by Windows. .0 in the middle of a /23 is allowed, but not accepted by iOS.
- betaby 3y agoWhat version of iOS is that?
- copirate 3y agoI've been summoned by the police because of a "dot-zero" address on one of our servers. Someone had been buying stuff online with a stolen card and the shop admins provided a list of the IP addresses used, including our server's. All the addresses were dot-zero addresses, so I assume it was just some kind of unfortunate obfuscation.
- ogurechny 3y agoI'd say you know nothing about networking until you get that there is nothing special about those “special” IP addresses. Or non-contiguous subnet masks. Or /32 — on both sides of point-to-point links. Subnets don't really exist, only network cards that apply masks to what they send and receive do exist. After that you can gather some experience on why something can go wrong with that. Then you can discover some networks that only pretend to be a shared ether, like Wi-Fi, where access point captures and analyzes transmissions with multiple destinations to decide which are first class and are worthy of re-transmitting, to answer directly on its own, or even convert one protocol into another.
- scktt 3y agothe microsoft kb mentioned in the article no longer exists. here's a copy hosted by pki. https://mskb.pkisolutions.com/kb/281579 https://mskb.pkisolutions.com/kb/281579
- kencausey 3y agoHere is an archive copy of the KB as of Feb 15, 2015 which I think is the last archive copy in the Wayback Machine before the page is moved/removed: https://web.archive.org/web/20150215042051/http://support.microsoft.com/kb/281579 https://web.archive.org/web/20150215042051/http://support.mi... edit: year corrected
- johnklos 3y agoAs someone who runs a .0 on a public /24 and who uses net.inet.ip.hostzerobroadcast to not waste IPs needlessly, I thought it was hilarious when someone emailed me to tell me that I shouldn't do it, and that it'll break all sorts of things. Then how did he see my web site? How did he send me an email? I asked him these questions and he said there apparently are hidden breakages that I can't possibly know that'll magically come out when I'm least expecting them. Naw - we don't need evidence here! Evidence just confuses people.
- paulddraper 3y agoBy your own admission, any complaints you can hear are invalid.
- johnklos 3y agoIt seems like you don't understand :( What if I called your telephone to tell you that your telephone setup shouldn't work?
- paulddraper 3y agoIt seems you don't understand. > Naw - we don't need evidence here! Evidence just confuses people. How are you expecting to receive said evidence?
- johnklos 3y agoI can't tell if you're trolling or if you really don't understand. The person who was emailing me got my email address from my web site. Both the email server and the web server are hosted on a public Internet .0, so in spite of my years of evidence which shows I've never seen a problem, he emailed me (and his email was successfully delivered to this same .0 machine) to tell me this wouldn't work, and that I'd see all sorts of problems that he never enumerated. In other words, he expected his handwaving and I-know-better attitude to carry more weight than my years of actually doing a thing and observing the results. Ironically, the only way for him to find out more about me and email me was to visit a .0 server on the Internet and send an email to a .0 server on the Internet. I received said evidence, and the supposed evidence both had no content and partly disproved his claim by the act of sending it to me. Understand now?
- tptacek 3y agoThe thing I've never managed to get my head around is why the .0 was ever treated specially. It's the simplest human-readable "address" for a network, but if you do a lot of network programming you get used to slapping the CIDR network on all sorts of addresses, and what does a network stack care about the "address" for a network anyways? The .1 of a network isn't routed any differently than the .0. It's either directly connected, or it's going to the next hop router, whether it's the .0 or the .1.
- schoen 3y agoThe special treatment broadly predates CIDR and official documentation of general arbitrary-prefix-length subnetting! In terms of why there were two broadcast addresses, this apparently has to do with late standardization plus inadequate communication between different groups of TCP/IP implementers (Berkeley and non-Berkeley), plus an attempt to maintain backwards compatibility with 4.2BSD that was never revisited. Seriously, the rationale in all the RFCs that mention the lowest address being special is ultimately compatibility with 4.2BSD. As I mentioned elsewhere in this thread, several OSes no longer enforce this special case. But people on forums are often willing to confabulate justifications for why the special case should have existed, such as the idea that it would be impossible to distinguish the network-as-a-whole from the host at that address. (I guess those people must also believe that array indices have to start at 1, because otherwise it would be impossible to distinguish an array from its first element?)
- deleted 3y ago[deleted]
- eastdakota 3y agoThe stories we can tell about getting 1.1.1.1 and 1.0.0.1 to be reliably routable…
- schoen 3y agoHey, I never checked before, but you seem to have 1.0.0.0 answering pings. That's awesome.
- ogurechny 3y ago"ping 1.0" works. Now let's introduce floating point support to also ping 0.99999999999999… and 1.00000000000001…
- ectospheno 3y agoI consider continued support of classful networking to be an inet_aton bug. I certainly don’t pass user input to it without sanitizing.
- duckydude20 3y agofor me, it was a hard time grasping CIRD and concept of host address tbh. playing with ciso packet tracer and rip, ospf... still not understanding ipv6 and all those huge infrastructures. like ipv4 to ipv6. carrier grade nat. BGP, peering...