Configuring address pools in a PortMaster 3 (TM) using VLSM (Variable Length Subnet Masking) on OSPF

PROBLEM:

IP address space allotments are becoming a problem for everyone. We need a way to optimize address space.

SOLUTION:

Create address pools that optimize available address space and reduce routing table sizes through the use of VLSM. This technote describes the benefits of using VLSM when configuring address pools. It also gives a detailed example of this type of configuration.

OVERVIEW:

Because Internet service providers (ISPs) are increasingly being forced to optimize their allotted IP address space, they are implementing more complex IP network designs that require the use of variable-length subnet masks (VLSM). ComOS 3.5 and later supports VLSM with static, Open Shortest Path First (OSPF), and Border Gateway Protocol (BGP) IP routing implementations. 

Using VLSM will help you maximize the usability of your address allotments and reduce the routing table size.  It will also reduce the  associated overhead of routing information exchanged between your gateway routers and your access servers (which are really routers but for dial-up services).

The starting address of the assigned address pool is critical in implementing a routing design that is easy to control. The intent is to start each pool on an even network boundary. This approach might require a paradigm shift in the way you view addresses in a subnet. 

For example, in the past you would assign the subnet 192.168.10.32/27 with a host range of 192.168.10.33 through 192.168.10.62 and a broadcast address of 192.168.10.63. 

If you are using OSPF, BGP or static routing, PortMaster ComOS (TM) can assign addresses through the entire range of a subnet to any dialin user. Thus, having a valid host range of 192.168.10.32 through 192.168.10.63, all 32 addresses.

BACKGROUND:

If the dynamically assigned IP address pool size is not specified,  PortMaster ComOS will default to a pool size equal to the number of ISDN or PHONE ports configured for network dial-in. 

For example, all the ports, excluding the console port (c0), can be configured with the following command:

Command> set all network dialin

As a result, the starting IP address of the pool is specified in the following command:

Command> set assigned x.x.x.150 

Again, the size of the pool is equal to the number of dial-in ports on the PortMaster. A PortMaster 3 configured with these commands and provisioned with dual ISDN PRI, has 46 ports (digital ISDN and/or PHONE connections). If the console port (c0) is configured for network dialin and if DIP switch 1 is in the down position, then the pool size will be 47 addresses. With 47 addresses, the IP address pool range will be from x.x.x.150 through x.x.x.196. 

If you require InterNetworking Systems via PPP through the PortMaster's console (C0) port, you can conserve addresses by configuring the "administrative user" profile to use a statically assigned IP address and not one from the pool. 

You can administratively limit the number of addresses in the pool with the following command:

Command> set pool 46

Another option is to set DIP switch 1 in the up position to override the console port configuration and make it a login port, thus having only 46 ports for network dial-in and 46 addresses in the pool.

SETTING ADDRESS POOLS BASED ON VLSM:

This example uses five (5) PortMaster 3 access servers configured for channelized T1 (CT1). Each PortMaster 3 is given a pool size of 48 addresses. We will assume that DIP switch 1 is up to disable network dialin on the console (C0) port. This is what you'd need to do if you only have one class C address range to provide dynamic addresses to your users.

Given the IP network range or x.x.x.0/24 (netmask is 255.255.255.0), we can subnet this range implementing VLSM to fit the assigned IP address pools of five (5) PM3s with 48 addresses this 256 address range. 

Note:
If your PortMaster 3s are provisioned for PRI, we strongly recommend setting the pool size to 48 even though you will have a loss of two (2) addresses per PortMaster. The gains in having simplified routing tables and less routing overhead will outweigh the loss.

Configuration Commands

PM3-1> set assigned x.x.x.16 
PM3-1> set pool 48 
 the resulting routes = x.x.x.16/28, x.x.x.32/27

PM3-2> set assigned x.x.x.64 
PM3-2> set pool 48 
 the resulting routes = x.x.x.64/27, x.x.x.96/28

PM3-3> set assigned x.x.x.112 
PM3-3> set pool 48 
 the resulting routes = x.x.x.112/28, x.x.x.128/27

PM3-4> set assigned x.x.x.160 
PM3-4> set pool 48 
 the resulting routes = x.x.x.160/27, x.x.x.192/28

PM3-5> set assigned x.x.x.208 
PM3-5> set pool 48 
 the resulting routes = x.x.x.208/28, x.x.x.224/27

Unused subnet:
 route = x.x.x.0/29 
 14 hosts = .1 - .14 
 broadcast = .15

The unused subnet could be used for your backbone, for statically-assigned network dialin users, or as a subnet for a dial-up router.

IMPLEMENTING THE VLSM DESIGN WITH OSPF:
 

Here are two example configurations for the five (5) PortMaster 3s above:

Example 1: 

If you do not specify the range for the IP address pool subnets in the area, the subnets are automatically advertised as external type 2 network routes. These routes are also known by Cisco as type 7 OSPF LSAs:

Command> add ospf area 0 range x.y.z.0/24 
Command> set ether0 ospf on
Command> save all
Command> reset ospf

Example 2: 

If the range for the IP address pool subnets are specified in the area, the subnets are advertised as internal LSAs, not as external type 5 or type 7. This is important if the PortMasters reside on a network that is a stub area or not so stubby (NSSA) area:

PM3-1> add ospf area 0 range x.y.z.0/24 range x.x.x.16/28 range x.x.x.32/27
PM3-1> set ether0 ospf on
PM3-1> save all
PM3-1> reset ospf

PM3-2> add ospf area 0 range x.y.z.0/24 range x.x.x.64/27 range x.x.x.96/28
PM3-2> set ether0 ospf on
PM3-2> save all
PM3-2> reset ospf

PM3-3> add ospf area 0 range x.y.z.0/24 range x.x.x.112/28 range x.x.x.128/27
PM3-3> set ether0 ospf on
PM3-3> save all
PM3-3> reset ospf

PM3-4> add ospf area 0 range x.y.z.0/24 range x.x.x.160/27 range x.x.x.192/28
PM3-4> set ether0 ospf on
PM3-4> save all
PM3-4> reset ospf

PM3-5> add ospf area 0 range x.y.z.0/24 range x.x.x.208/28 range x.x.x.224/27
PM3-5> set ether0 ospf on
PM3-5> save all
PM3-5> reset ospf

AVOIDING NETWORK ADDRESS CONFLICTS:

Because it is critical to avoid routing conflicts, do not use the x.x.x.0 as a host address. However, you can use the first subnet in an assigned address pool only in a pure OSPF routing implementation.

You can safely use the x.x.x.255 address as a host address in a properly subnetted network because all other subnets of the network range have specific ranges defined including the zero subnet:

[ subnet = x.x.x.0/28 hosts = .1 - .14 broadcast = .15 ]

Do not use the range of addresses [hosts = .1 - .14] with a netmask of 255.255.255.0, where the PortMaster 3s and other hosts also use the netmask of 255.255.255.0 on their ether0 interface. This configuration could cause a dial-in user that is assigned the x.x.x.255 address to receive all the broadcast traffic from the LAN backbone segment. Not good.

If you use the x.x.x.0/28 subnet, make sure you use a 255.255.255.240 netmask for all hosts in that range.

AVOIDING CONSOLE PORT AND POOL SIZE CONFLICTS:

If you configure the console port (C0) for network dialin, the IP address pool increases by one address. With CT1 implementations especially, this configuration can cause a major problem by exceeding the network boundary of one of your IP address pool subnets. 

With two PRI circuits you use only 46 addresses, leaving two unused addresses. But with two channelized T1s you have 48 ports using 48 addresses. There are no unused addresses with channelized T1 if all regular dial-in ports are populated with dynamically-assigned dial-in PPP users.

Again, the best way to solve this problem is to use only statically-assigned addresses for users that have the telephone number to the console (C0) port. By leaving DIP switch 1 up, you do not exceed 48 addresses. It also frees the console (C0) for local administrators to login to the unit as !root at 9600 through a terminal or from a console port server (In the example, by connecting null modem cables to the console ports of the PortMaster 3s, a PortMaster 2 or 2e can establish reverse telnet access).

IP ROUTING REFERENCES:

Internetworking with TCP/IP Volume 1 - Douglas E. Comer (latest edition) TCP/IP Illustrated, Volume 1 - W. Richard Stevens (latest edition) Routing in the Internet - Christian Huitema