3

I have three layer 3 devices in a pretty simple topology:

PC1 -> [Fe0/0] C2621 [Fe0/1] -> [Fe0/2] Modem [WAN] -> Internet


PC1:   192.168.254.100/24


C2621: Fe0/0: 192.168.254.254/24
       Fe0/1: 10.0.0.3/24


Modem: Fe0/2: 10.0.0.1/24

From PC1 I'm able to ping the modem:

Ping statistics for 10.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms

The modem does not have any static routes assigned to it. How is it possible that the pings go through? I made the same topology in GNS3 with three routers with the exact same IP addresses and was not able to ping the modem:

R3#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

This model of modem doesn't allow me to see the ARP table. Also, a traceroute shows that the ping goes to 10.1.1.1 and then 10.0.0.1. Just as it should IF the modem actually had a route back to the 10.1.1.0/24 network which it doesn't. I even tried disconnecting the cable from R1 to the modem to see if the pings would fail. They did.

It makes absolutely no sense for the modem to know where the 10.1.1.0/24 network is. How is this possible? The modem is a SBG6580 Cable Modem

Additional information: `

C2621#show ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, FastEthernet0/1
C    192.168.254.0/24 is directly connected, FastEthernet0/0.254




C2621#show run
Building configuration...

Current configuration : 1109 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname C2621
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$sc4H$NGsbRnN8X2zErueSVyaim/
!
no aaa new-model
ip subnet-zero
ip cef
!
!
!
no ip domain lookup
!
!
!
!
!    
!
!
!
!
!
!
!
!
!
!
interface FastEthernet0/0
 no ip address
 duplex auto
 speed auto
!
interface FastEthernet0/0.254
 encapsulation dot1Q 1 native
 ip address 192.168.254.254 255.255.255.0
 no snmp trap link-status
!
interface Serial0/0
 no ip address
 shutdown
 no fair-queue
!
interface FastEthernet0/1
 description Test Description
 ip address 10.0.0.3 255.255.255.0
 no ip proxy-arp
 duplex auto
 speed auto
!
ip classless
ip http server
!
!
!
voice-port 1/0/0
!
voice-port 1/0/1
!
voice-port 1/1/0
!
voice-port 1/1/1
!
!
!
!
!
!
line con 0
logging synchronous
line aux 0
line vty 0 1
 exec-timeout 0 0
 password cisco
 login
 transport input telnet
line vty 2 4
 exec-timeout 0 0
 password cisco
 login
line vty 5
 exec-timeout 0 0
 password cisco
 login
line vty 6 15
 password cisco
 login
!
!
end






C2621#show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.0.0.3                -   0001.9651.dea1  ARPA   FastEthernet0/1
Internet  10.0.0.1                2   94cc.b902.7976  ARPA   FastEthernet0/1
Internet  192.168.254.254         -   0001.9651.dea0  ARPA   FastEthernet0/0.254
Internet  192.168.254.4          11   0017.5a57.3480  ARPA   FastEthernet0/0.254
Internet  192.168.254.2          11   0011.bb6d.0300  ARPA   FastEthernet0/0.254
Internet  192.168.254.3          11   0015.f9f8.0900  ARPA   FastEthernet0/0.254
Internet  192.168.254.1          11   0017.59eb.3580  ARPA   FastEthernet0/0.254
Internet  192.168.254.100         2   e000.0000.129c  ARPA   FastEthernet0/0.254


C2621#show version
Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-IPVOICE-M), Version 12.3(15), RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2005 by cisco Systems, Inc.
Compiled Tue 24-May-05 14:01 by ssearch
Image text-base: 0x80008098, data-base: 0x8183E8D4

ROM: System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
ROM: C2600 Software (C2600-IPVOICE-M), Version 12.3(15), RELEASE SOFTWARE (fc3)

C2621 uptime is 3 hours, 29 minutes
System returned to ROM by power-on
System image file is "flash:c2600-ipvoice-mz.123-15.bin"

cisco 2621 (MPC860) processor (revision 0x102) with 61440K/4096K bytes of memory.
Processor board ID JAB04130AL8 (912529492)
M860 processor: part number 0, mask 49
Bridging software.
X.25 software, Version 3.0.0.
2 FastEthernet/IEEE 802.3 interface(s)
1 Serial network interface(s)
2 Voice FXO interface(s)
2 Voice FXS interface(s)
32K bytes of non-volatile configuration memory.
16384K bytes of processor board System flash (Read/Write)

Configuration register is 0x2102
  • 1
    This makes a lot of sense if the netmask on Fe0/2 of your modem is 255.0.0.0. You should ensure that the modem really took the 24 bit mask you claim that it has. You can validate this theory by adding no ip proxy-arp to Fa0/1 on your Cisco2621. If the behavior changes after doing this, you have proven that the cable modem is proxy-arping for the PC's source IP. – Mike Pennington Dec 27 '13 at 3:30
  • @MikePennington, it does. The modem doesn't allow me to change its mask – Michael May Dec 27 '13 at 3:36
  • @MikePennington, I saw your comment before you added the proxy-arp section. I added the proxy-arp command: C2621(config)#interface fastEthernet 0/1 C2621(config-if)#no ip proxy-arp C2621(config-if)# I'm still able to ping the modem just fine – Michael May Dec 27 '13 at 3:44
  • 1
    @MikePennington, I changed the subnet between PC1 and the C2621 to 192.168.254/24 and I'm still able to ping 10.0.0.1 from PC1 – Michael May Dec 27 '13 at 3:47
  • 1
    This device doesn't seem to learn ARPs from a connected subnet in an expected manner; my question is whether it's limited to doing this on private address space (which could be understandable for a cable modem). If you change C2621:Fa0/0.254 to 4.2.2.254/24 and PC1 to 4.2.2.100/24 (with the PC's default pointing to 4.2.2.254), can you still ping the modem from PC1? – Mike Pennington Dec 27 '13 at 4:27
2

The answer to your question, "how is this possible?" is simply the obvious: The modem is not acting in the way you would expect a network device (like a Cisco router) to function.

Writing the code to route packets is harder than it looks, and many companies, especially with consumer-grade products, take shortcuts.

In this case it appears that your modem has a very simplistic routing algorithm, probably because it is not expecting multiple networks on the LAN side (it's a home router, after all). So rather than a routing table and all the other data structures, it simplemindedly combines the arp and routing tables. So the modem learns the MAC address of a packet on the LAN side without having to build a normal routing table.

It's also possible, as Mike suggests, that the modem is using classful networks, and the mask is /8, in spite of what you type. I've seen similar behavior in other devices before.

Simpler software, cheaper product, works fine in most cases.

That's my story and I'm sticking to it. ;-p

Topic police: As a side issue, if this is home networking, isn't this off-topic?

  • I don't know if the fact that there's a residential modem involved makes this home networking. If it does then I apologize for the confusion. For what it's worth this setup isn't in my home. Additionally, I like your response and I think it makes the most sense. I've always imagined the basics of routing/switching to be something like a library of code that vendors slap onto their modems when they make a product. It's good to know stuff like this exists so that I can keep an eye out for it in the future. – Michael May Dec 28 '13 at 0:56
  • A cable modem is an intelligent bridge. It's doing layer 2 and 3 at the same time, and will process l3 packets it thinks are for it while bridging. – Ricky Beam Dec 28 '13 at 1:14

Not the answer you're looking for? Browse other questions tagged or ask your own question.