IPv4 Subnet – Why /30 Subnets are Used for PPP Connections

adslipv4pppsubnet

Our telephone company has recently set us up a new ADSL connection.
It consists of a PPP link over ATM.

The connection comes with a public /30 subnet that we can use to our liking.
We used one of the IP addresses for standard NAT, and one of the addresses for remote router access (ports 22 and 443) and port forwarding to a server (ports 4000-5000).

It also uses a public /30 subnet for the PPP link, one IP for each endpoint.

I don't understand why:

  • A /30 subnet is used for the two public IP addresses. Couldn't they just route our two IP addresses over our PPP link as isolated addresses that don't belong to any subnet? If my understanding is correct, this would allow them to effectively double the amount the number of "address couples" they can sell.
  • A public subnet is used for the PPP link. Why is this the case? Since these IP addresses aren't publicly routed anyway, but only used by the two routers for the PPP link, isn't this a waste of the public address space?

Best Answer

A /30 subnet is used for the two public IP addresses. Couldn't they just route our two IP addresses over our PPP link as isolated addresses that don't belong to any subnet? If my understanding is correct, this would allow them to effectively amount the number of "address couples" they can sell.

Well the way I see it is that they route 4 public IP addresses to you, and you decide whether to use them as one /30 subnet or as two /31 subnets or as 4 individual (/32) IP addresses - or even a combination of one /31 and two /32.

In other words if your ISP says they're routing the 10.0.0.0/30 subnet to you then they actually mean that they're routing the ip address range 10.0.0.0-10.0.0.3 to you.

Edit: adding an example to (hopefully) clarify further for those that do not understand. Assume this scenario:

ISProuter (a.b.c.1) ----- (a.b.c.2) MyRouter

ISProuter has a route for x.y.z.4/30 with next-hop a.b.c.2

Then on MyRouter I have roughly 4 options:

  1. I configure x.y.z.5 on one of my interfaces, with a /30 subnet mask. In that case I can only use x.y.z.6 on another device (since .4 and .7 are the network and broadcast addresses in this scenario)
  2. I configure 4 loopback interfaces with x.y.z.4, x.y.z.5, x.y.z.6 and x.y.z.7, each with a /32 subnet mask
  3. I use x.y.z.4/31 and x.y.z.6/31 on 2 point-to-point links.
  4. I route x.y.z.4/30 to another router, and on that router I have again the same 4 options.

Note: there are also combinations possible, e.g. I could use x.y.z.4/32 on a loopback, route x.y.x.5/32 to another router, and use x.y.z.6/31 on a p2p link. And depending on the features available on MyRouter (which could also be a load balancer, or a firewall, or...) the addresses could also be used without actually configuring them on an interface, but the result would be very similar to using them as /32's on a loopback.

A public subnet is used for the PPP link. Why is this the case? Since these IP addresses aren't publicly routed anyway, but only used by the two routers for the PPP link, isn't this a waste of the public address space?

You would need to ask the ISP, we can only guess. I guess most ISPs consider it best practice to use public IP addresses for public links. Private IP address might break stuff like PMTUD as ICMP from the 2 PPP endpoints would probably get dropped in a lot of places. But as @RonMaupin mentioned, they could have used a public /31 instead to save some address space.

Related Topic