Cisco 881G2 3G configuration

So the other day my Internet went down, for a couple of days…
That’s when the idea came for a backup connection. But, to be honest, a backup connection is rather stupid for an internet connection that is actually quiet reliable.

Then I found out I couldn’t connect my garage to my network, WIFI was out of range, different options were considered (maybe more on that later) but found to slow and expensive for what I want to do with it (which is, not a lot at the moment).

A couple of days later I stumbled across an ad from a seller I follow for a Cisco 881 with 3G modem, CISCO C881G+7-K9 WAN FE (non-US) 3.7G HSPA+ R7 w/ SMS/GPS (MC8705), as the ad named it. (Seems like they are now selling an older, cheaper model, damn me for checking…) Of course I couldn’t resist.

So I informed the wife I ordered some network-toys, which I would then use in our garage and that she wouldn’t have any trouble from it (after trying to install that loud as hell switch in the basement, I do add that part). Proceeded by ordering the cheapest pre-paid SIM I could find (Belgium is expensive when it comes to mobile Internet) and waited for my new toy to arrive.

The day that the router was delivered came, and my quest to get it online started. Unfortunately it took me longer than I had hoped, which is why I’m writing this post now.

On to the hardware, there seem to be different versions of this router. So, to make sure you can continue reading, these operations were performed on the following equipment:

Cisco IOS Software, C880 Software (C880DATA-UNIVERSALK9-M), Version 15.2(4)M4, RELEASE SOFTWARE (fc2)
...
ROM: System Bootstrap, Version 15.1(2r)T2, RELEASE SOFTWARE (fc1)
...
System image file is "flash:/c880data-universalk9-mz.152-4.M4.bin"
...
Cisco 881G2 (MPC8300) processor (revision 1.0) with 498688K/25600K bytes of memory.
Processor board ID FCZ174692HV

5 FastEthernet interfaces
1 terminal line
1 Virtual Private Network (VPN) Module
1 Cellular interface
256K bytes of non-volatile configuration memory.
125440K bytes of ATA CompactFlash (Read/Write)


License Info:

License UDI:

-------------------------------------------------
Device#   PID                   SN
-------------------------------------------------
*0        C881G+7-K9            ***



License Information for 'c880-data'
    License Level: advipservices   Type: Permanent
    Next reboot license Level: advipservices

Still here? Let’s move on to the cellular configuration!
First you need to configure the cellular modem with valid profile.
Here is my “show cellular 0 profile” output

Profile 1 = ACTIVE*
--------
PDP Type = IPv4
Access Point Name (APN) = web.be
Authentication = PAP
Username: web
Password: web

 * - Default profile

Configured default profile for active SIM 0 is profile 1.

I’ll leave tinkering in the CLI to you, I’m sure you’ll find the right commands to enter. They are not in configure mode, just in enable mode and here’s a small hint: “cellular 0 gsm profile ?”.
Oh, and maybe an idea, you can also remove the SIM’s pin code, which removes another hurdle when booting up. (“cellular 0 gsm sim ?”)
Please also note that my SIM is installed in slot 0, if yours is installed in a different slot, change your command accordingly.

Now, for the IOS configuration part:

Configure a chat script for the modem, mine looks like:

chat-script INTERNET "" "AT!SCACT=1,1" TIMEOUT 60 "OK"

If you desire, enable GPS:

controller Cellular 0
 gsm gps mode standalone
 gsm gps nmea
!

Configure your Cellular interface (this configuration includes “NAT outside”, you probably want NAT, and you may want to configure “ip nat inside” on the interface that connects your local network:

interface Cellular0
 ip address negotiated
 ip nat outside
 ip virtual-reassembly in
 encapsulation slip
 load-interval 60
 dialer in-band
 dialer idle-timeout 0
 dialer string INTERNET
 dialer-group 1
 async mode interactive
!

More NAT config, route and ACLs to allow traffic:

ip nat inside source list 1 interface Cellular0 overload
ip route 0.0.0.0 0.0.0.0 Cellular0
access-list 1 permit any
dialer-list 1 protocol ip permit

Modem configuration:

line 3
 exec-timeout 0 0
 script dialer INTERNET
 modem InOut
 no exec
 transport input all
 rxspeed 21600000
 txspeed 5760000
line 6
 modem InOut
 no exec
 transport input all
 transport output all
 stopbits 1
 speed 4800

That’s it, remember to “write mem” and reload to see if the configuration sticks.

Cisco 881