At that price point you can get a small vm, but if you have a dedicated server you want to use on-prem, 10$/mo seems like a reasonable price.
> Or I can use DHCP, where my IPv4 address can change at their whim.
Check the dhcp.lease to make sure, I used to think that, then I looked at the dhcp lease and the IP was being reserved for up to 48 hours of disconnection. I went years without it ever being released.
Phone operators won't necessarily transmit this information to you, the true ISP operator is the DHCP server. Not only is it more knowledgeable, but DHCPd has no incentive to upsell you, just provides you with what it is configured to.
I'd even go as far as checking if you can send parameters during the dhcp lease request, maybe you can request a longer lease on the IP.
There's a right way to do things, it's not trivial to discern from the wrong way to do it, but once you see it, you notice that you lose almost nothing, it's not like the 'wrong' way is simpler, it's just 'wronger', all the way through. I guess the reason they persist is sunk-cost fallacy, the businesses and people that went with NAT then developed STUN, and then they developed ICE, and then they develop Tailscale, every time you need to invent a bigger spade to dig you out of the hole and into a deeper one.
Or you can just use IPv4. But aghast, you have to pay 10$/month (or learn DHCP)
There's nothing to learn here in the end. Its just rules imposed by the ISP. I've had places where the leases expired weekly, and I'd often get a different public IP address when renewed. No amount of learning will change this. If I want out of that, I'd have to pay extra money every month.
I've also had ISPs where I've had the same IPv4 address for years. So long as I was online around the time of the lease renewal, I was pretty much guaranteed to get the same IP. YMMV.
> At that price point you can get a small vm, but if you have a dedicated server you want to use on-prem, 10$/mo seems like a reasonable price.
So I can spend $10/mo for each IP address I want, or I can just use IPv6 where my ISP gives me 295,147,905,179,352,825,856 IP addresses (a /60) by default for free. Hmm...which to choose...
In the end its still a bajillion-ish IPv6 addresses I have to play with versus the one-ish I have with IPv4.
Every. Single. Individual. End. User. Device. Should. Be. Addressable. Given that there are more such devices out there then there are IPv4 addresses to begin with, cost doesn't even come into it.
No, the question was taking the price that the NIC sells the IP blocks at. Understanding that in order to get 1 IPv4 address you will be buying from a distributor at a markup, but still, with Wholesale prices at 0.6$ (LACNIC) to 2.5$ (ARIN) per IP address per year, even with a markup of 300%, we are still at filthy cheap prices (2.4$/year to 10$/year)
>Every. Single. Individual. End. User. Device. Should. Be. Addressable. Given that there are more such devices out there then there are IPv4 addresses to begin with, cost doesn't even come into it.
Oh, ok, I was writing mostly about server side IPv4 assignment. I guess your position is a much stronger stance than mine, I argue that all servers should have an IP(v4) adress, you argue that every client device should. In that sense, consider that there's a lot of users, on this website even, that insist on running hosts without a dedicated IP address. There's lower hanging fruit.
In the IP world, there is no difference between an "client" and a "server". There are just two things communicating. Things which may be clients may also behave like servers from time to time and from circumstance to circumstance.
My home PC is sometimes a "client". Its a "client" when I'm talking to this website. Its also a "server" when I'm connecting to its file shares. Its also a "server" when I'm wanting to stream games from it. A game console is sometimes a "client" when its downloading games and updates, its also sometimes a "server" when I play games online and do matchmaking. My phone is a "client" when its talking to the messaging app servers, it is also a "peer" when I make a phone call to my friend.
Thinking that things are only ever "clients" or only ever "servers" is an overly simplistic view of the world. Devices aren't purely "servers" or "clients", applications/services are what make such a distinction, and even then that can change depending on the context.
There is one in the og tcp standard though. Server, listening, ports are well known, and they uhh listen. Might be semantical, but it's in the spec. Listening port is dedicated to an application type.
Furthermore the newer protocols like NAT make an even clearer technical distinction, clients can have no dedicated ipv4, but servers must retain that property. See? They are different in technical nature.
That's without even getting into empirical protocol semantics. Your device is not a server, it never opens permanent ports associated with a specific process for non-local connections. Nor does the router even do that by proxy, the natting router may provide a listening pseudoport, but it does so in an ephemeral per-connection fashion.
TCP isn't IP.
> Server, listening, ports are well known, and they uhh listen
Sure, but that's the application not the device. A device can have outbound connections and can be listening.
> clients can have no dedicated ipv4, but servers must retain that property. See?
My desktop at home has no public dedicated IPv4 (technically neither does my router, it's DHCP and subject to change), and yet still has listening ports.
If I've got httpd running on multiple things on my LAN which get IP addresses from DHCP, and I've got a reverse proxy that's getting NAT'd traffic from the router and proxying those requests, what is the "server" in this setup to you? These devices don't necessarily have dedicated RFC1918 IPv4 addresses, they're all just DHCP and register those IP addresses in the DNS which is referenced by the proxy. They'll change constantly for this example. (Note: this is extremely common in containerized or autoscaling deployments, not entirely a hypothetical!)
> Your device is not a server, it never opens permanent ports associated with a specific process for non-local connections
Sure it does. It's got dozens of ports permanently opened. That's my point. It's not like I have to go to the server store and buy a server to have ports open. I just launch a process and make a change to my device firewall, and now I'm a "server". The same device I'm using as a client to talk to you right now. Incredible! I can even use the same application, like a videogame, to be both a client and a server at the same time! I can start a match, join it at the same time, and allow outside players come join, and that might all technically be in the same executable!
> Nor does the router even do that by proxy, the natting router may provide a listening pseudoport, but it does so in an ephemeral per-connection fashion.
The router is just routing packets. It is not opening a listening port. It gets a packet delivered, it applies a set of rules to it, and passes it out an interface. If you think a router has to be "listening" on a specific port to receive that packet, you're misunderstanding what a router is doing. Sometimes you might even NAT without taking into account a port or a protocol at all!
No. Both servers and clients can have no public ipv4
On the other hand, it's not really that complicated. Cost seems to be around 10USD per month, which is what another user mentioned. And the GDP per capita of china is around 12000 USD per year, so it works out to a bit more than 1% of a salary, not sure if my maths are wrong, but from the perspective of a service provider, it still sounds like a sensible price point.
India has a lower GDP per capita, but I know that they make non profit collective efforts to massively lower prices.
Note also that a substantial part of the value and purpose of IP addresses comes from their cost. There is a PoW/PoS mechanism that associates some cost to some identity (similar to domain names), and this is part of the mechanism by which networks filter malicious traffic and defend against sybil attacks.
So 10$/month might be expensive, but it's probably the right price. If it were much cheaper than that, like 1$/month, or even 0.1$/month, abuse would rise, especially in China which, no offense, but doesn't seem to value the notions of civil law like contracts, Terms of Service or copyright dearly. At least they don't do it out of malice like Russia, it's just a difference of values, but it's probably for the better that IPv4 addresses are 10$/month, if it were 0.1$/month, I would probably just block the whole country.