One of the first things anyone pursuing their CCNA learns is that you can’t configure multiple IP addresses in the same subnet on the same router.
The Problem
I attempt to configure a ‘198.18.0.0’ address on two different interfaces.
R01(config)#int gi2
R01(config-if)#ip add 198.18.0.2 255.255.255.0
!
R01(config)#int gi1
R01(config-if)#ip add 198.18.0.1 255.255.255.0
% 198.18.0.0 overlaps with GigabitEthernet2
Alternate Solutions
These solutions won’t be covered in detail in this blog post. They both solve and come with their own unique problems.
- HSRP
- IP Unnumbered
- Secondary IP Address
Alternate Vendor
Juniper allows you to configure multiple IP addresses in the same subnet.
ge-0/0/1 {
vlan-tagging;
unit 0 {
vlan-id 0;
}
unit 1 {
vlan-id 1;
family inet {
address 198.18.0.65/24;
address 198.18.0.101/24;
ge-0/0/2 {
vlan-tagging;
unit 0 {
vlan-id 0;
}
unit 1 {
vlan-id 1;
family inet {
address 198.18.0.90/24;
After some quick testing it appears that Juniper originates traffic from the lowest interface and then lowest IP address.
The Rub
Why is it that Juniper allows for multiple addresses but Cisco can only in specific use cases? CEF allows for multiple destinations, even unequal cost load balancing.
Possibilities
- Historical
- RFC
- Other?
Historical
Looking through the mists of time I found this book – “Inside Cisco IOS Software Architecture.”
Unfortunately I don’t have an AGS+ and can only infer from the text it’s possible functions. The Cisco AGS+ used autonomous switching for the line cards. It was very costly in bandwidth and cpu to send a packet to the route processor. From what I can tell, the individual line cards didn’t retain a full copy of the routes. Any packet that arrived that had an unknown destination in the line card had to be passed up to the route processor. After that, the destination could be cached on the line card. The book also mentions that the AGS+ was the basis of the 7000 router and IOS.
Could this have been an early form of control plane protection? Or was it used to prevent from transferring unnecessarily across the low bandwidth bus?
RFC1009
My original theory was that it was based off of the RFC for requirements for an internet gateway. Here is the text in question –
“A different subnet address mask must be configurable for each interface of a given gateway. This will allow a subnetted gateway to connect to two different subnetted networks, or to connect two subnets of the same network with different masks.”
Unless I’m misreading it, it seems a pretty clear definition of what we are running into.
Other?
Is it a combination of the two above or something completely different. I would love to know. Drop me a line! admin at solutions-haven.com