-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C7200-IO-2FE: hardware address filter problem leading to routing loops #67
Comments
Following up on my own post: I did the same test with three other FastEthernet port types:
The problem only seems to occur with the two-port cards (C7200-IO-2FE and PA-2FE-TX). The single-port cards do not have the problem. Looking again at Single port (C7200-IO-FE, PA-FE-TX):
Dual port (C7200-IO-2FE, PA-2FE-TX):
Perhaps the problem is that the hardware filter entries are empty? |
Thanks for the report. I don't have the knowledge to check. Perhaps @grossmj can check this. |
Excellent report, maybe it is not much to fix but unfortunately we do not have anyone who has the necessary knowledge to do it. |
Different ethernet chips are being emulated:
The dual port ones use dev_i8254x, so the bug should be there. |
I failed to reproduce this issue with gns 2.2.46 and a C7200 124-11.T1 image. Maybe the ethernet hub that gns3 1.3.13 used was different from the current one? |
Hi everyone
I am having a strange problem with local routing loops among 3 or more routers attached to a hub. Apologies for the long-winded post, I've tried to structure it to make it easier to read.
Regards,
Yorgos
Summary:
It seems that the emulated ethernet hardware incorrectly behaves promiscuously. This behavior only shows up when using a hub, as a switch would mask it.
Topology:
R1, R2, R3, all attached via
fa0/0
to a hub. Addressing is 192.168.0.{1,2,3} for R{1,2,3} respectively. MAC addresses as set by default in GNS3 (unicast, locally administered). Nothing fancy.Configuration:
Problem:
When I ping R2 from R1 using
ping 192.168.0.2 rep 1
(ie only a single packet), I a get a gigantic flood of packets among all three routers. Looking at the packet trace, I see what is happening (where M1 is R1's MAC address, and so on):And then all hell breaks loose, as the three routers play a three-way ping-pong amongst themselves, until TTLs start getting exceeded, and then another round of three-way ping-pong starts, as they go on forwarding their ICMP TTL-exceeded messages to one another. End result: from a single ICMP echo request, I got a flood of 153000 packets, and that's only where the maximum capture file size was reached.
Note: when running the above, I had ICMP redirect disabled, in order to simplify the problem. With redirects enabled, I get an even worse problem as redirects are added to the mix.
The lines marked [incorrect] show what I consider incorrect behavior: the router forwarding code is receiving and processing (forwarding) a packet with a unicast destination MAC address not its own. The error seems to be with the emulated ethernet hardware (or the interface between it and the software), since otherwise IOS behavior is correct: the packet should have been filtered at the hardware level.
Tests:
no ip routing
) on all three routers, the looping problem no longer occurs, but Dynamips still shows incorrect behavior:debug ip packet
with CEF disabled on R3, shows it is still receiving packets with the wrong MAC address.ip pim dense-mode
on interfacefa0/0
on R3, the problem goes away completely. In fact, it seems that putting the ethernet hardware in multicast mode prevents the problem from occurring.Here is what
show controllers fa0/0
shows:And with multicast enabled:
In other words, IOS reports the hardware as functioning correctly; when in multicast mode, that is indeed the case; when in unicast mode, IOS claims that promiscuous mode is disabled, but in fact the hardware seems to be in promiscuous mode.
The text was updated successfully, but these errors were encountered: