11-13-2004 10:02 PM - edited 03-05-2019 11:19 AM
What is the difference between configuring EIGRP with the "network" command, then specifying the IP addresses of the interfaces you want to use OR using the no passive-interface command.
The examples below might make more sense:
gi0/0.1 has an IP of 192.168.1.1
gi0/0.2 has an IP of 192.168.2.1
s1/0 has an IP of 192.168.3.1
s1/0 has an IP of 192.168.4.1
------------------------------------------
router eigrp 100
passive-interface default
no passive-interface GigabitEthernet0/0.1
no passive-interface GigabitEthernet0/0.2
no passive-interface Serial1/0
no passive-interface Serial1/1
network 192.168.0.0
no auto-summary
------------------------------------------
router eigrp 100
network 192.168.1.1
network 192.168.2.1
network 192.168.3.1
network 192.168.4.1
no auto-summary
------------------------------------------
Don't both of these configurations accomplish the same thing? If so, is there any advantage to using one over the other?
Thanks,
Nate
11-13-2004 11:55 PM
Hello Nate,
both your configs accomplish the exact same thing, only the interfaces specified will be advertised. I am studying for the CCIE lab right now, and I think Cisco prefers the second config, where you actually explicitly advertise interfaces...but still, both will work fine.
Regards,
GP
11-14-2004 03:24 AM
Actually, on a technecality, they do not do the same thing. And it is one of the subtlties of the behavior of EIGRP that may be important to understand when preparing for the CCIE or when administering an EIGRP network.
The important aspect to recognize here is the classful network boundaries. The first example had network 192.168.0.0. This happens to be a class C network. And EIGRP would be looking for interfaces that are in that particular network. And it would not process the interfaces on 192.168.1.0 or 192.168.2.0 etc. Even though EIGRP works very well in a classless addressing environment, its roots are in a classful background. And one manifestation of that is the default behavior to treat the network statement as looking for classful boundaries. So in fact if you configure EIGRP with network 192.168.1.1 and then do a show run what you will see is 192.168.1.0 because EIGRP is processing classful network boundaries.
If the example had used a class B like 172.16.1.1 and 172.16.2.1 etc then the two approaches would have produced the same results.
There are two more aspects of this I would like to comment on. One is the background of the passive default. This ties back to the essentially classful nature of the processing that EIGRP does on the network statement. If you were bringing up a router that would eventually have many interfaces that would be subnets of the same classful network and you put in network 172.16.0.0 then EIGRP would attempt to process every interface with an address in the subnets of that network. But you might not want them to be advertised when they were configured, you might want to wait till there was actually something deployed there, or perhaps you might not want EIGRP to process a particular interface at all (perhaps that interface connected to something external to your network. Cisco introduced the passive default to accomodate this situation. With passive default EIGRP does not process the interface till you specifically activate it.
Another interesting aspect is that Cisco then introduced the ability within EIGRP to use a netmask on the network statement which allows you to specifically identify the particular interface you want to process. This addresses the classful default behavior and makes EIGRP truly more of a classless routing protocol.
So lets take the example that started this discussion and change it a little bit. Suppose there was a router with interfaces 172.16.1.1, 172.16.2.1, 172.16.3.1, and 172.16.4.1. And suppose that you wanted (for whatever reason) to include 1, 2, and 4 but not 3. How could you do it?
The more traditional solution would be to use passive default and leave the 3 as passive. Or the more recent solution would be to use network statements with netmask to include only the specific interfaces that you wanted.
HTH
Rick
11-14-2004 07:32 AM
Thank you for the infomation...
So...Based on what you provided the most "recent" solution using netmasks to include interface 1, 2 and 4 but not 3 would be:
---------------------------
router eigrp 100
network 172.16.1.1 0.0.0.0
network 172.16.2.1 0.0.0.0
network 172.16.4.1 0.0.0.0
no auto-summary
---------------------------
Is this correct?
11-15-2004 12:49 PM
Yes this would be correct. It would use 1, 2, and 4 as EIGRP interfaces and not 3.
One other observation about the differences. The solution with the network statement with the netmask would exclude 3 as an EIGRP interface. EIGRP would not send hellos on the interface and it would not advertise that subnet to its other neighbors. If you used the solution with passive-interface and made 1, 2, and 4 active and left 3 passive EIGRP would send hellos on 1, 2, and 4 and would form neighbor relationships on those interfaces and not on 3. However if 3 matched a network statement but was passive then EIGRP would advertise the subnet to other neighbors.
So in looking at the differences between passive interface and restrictive network statements, one of the differences is whether EIGRP will form neighbor relations and the other difference is whether EIGRP would advertise the subnet to other neighbors.
HTH
Rick
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide