- PPTP classless routing fix for Windows clients
??
The issue is when you’re using PPTP on, say, a 10.x.x.x/24 network, and connecting to a different class C 10.x.x.y/24 network.
In crazy MikroTik land, the route the PPTP client gets is a /8 route - which borks all traffic on either the local or remote end, depending on if you have “use as default gateway” checked on the client end.
Instead of getting a route on the client of say. 10.1.1.1/24 you’ll get a 10.1.1.1/8 - which means if your local network is 10.1.2.0/24 and the remote end is 10.1.1.0/24 you’ll either have to give up accessing the local network, or the VPN tunnel. [Essentially there’s no way for both networks to co-exist since the /8 class network designation blows it all away.]
(On a 192.168.x.x network, you’ll get a /16 route.)
This is all based on the very dated and rejected idea of class routing - 10.x networks were a class 8, 192.168 networks are a class /16.
I come from a SnapGear environment, and they had a way to propogate a real class-less route which wouldn’t do this.
Some people have asked for a way to pass DHCP info to the clients - and the claim always seems to be that DHCP isn’t supported under PPTP - which may all be true. But frankly, I don’t give a damn if DHCP can’t pass stuff to a PPTP client - what I do care about is that it doesn’t have to be this way. There is a way to fix it.
But it’s indisputably true that it IS POSSIBLE to give a route to the PPTP client that isn’t a class based route, but is based on the classless network config of the remote end. (i.e you can pass a route of 10.x.x.x/24 to the PPTP client, instead of 10.x.x.x/8.)
How it’s done, I’m not sure - but that’s Mikrotik’s job, not mine. I just know there are a host of Linux based devices that have done this for, literally, like 10 years or more.
Why MikroTik refuses to figure it out and implement it, I’m not sure. I’d guess that it’s simply not that hard, it just requires some determination to actually do it.
-Greg