In our journey to re-live old experiences with our retro computers, part of that experience is to use dial-up modems. For example, we did a thorough factory restore to bring our Packard Bell Platinum 2220 back to life [vintage 1997] and while it would be easy to get it online by slapping in a 3com 3c905 or other Ethernet card, that doesn’t feel true to the original system. In the 1980s and 1990s, dial-up was the way of life for all home computing.
So, let’s do it. While we have more involved plans for eventual dial-in modem banks, we thought a good starting point would be a simple Cisco router. The Cisco router is plentiful on eBay, Cisco IOS offers endless configuration options, and this combination was the swiss army knife for the early ISPs of yesteryear.
Although there are plenty of similar Cisco models, we grabbed a Cisco 1841 which has 2x onboard 100M Ethernet ports + 2x WIC add-in module slots. These are easily had on ebay for <$50 with shipping. We then added the WIC-2AM module to it – this is a WIC with two analog modems built in, supporting the latest and greatest of dialup modems at V.90.
Getting the configuration working was a bit more challenging than expected. A lot of the example dial-in configs found online are for different platforms, such as the AS5300 and related family which is very similar with some sharp differences. And while the WIC-2AM is a versatile and useful card for our purpose, the documentation and examples are all over the place, mostly not relevant to our purpose. After much trial and error, we got a working config that lets us reliably dial in and get online. In our environment, we are using VoIP ATAs to feed analog lines to both our client computers and this Cisco setup, it is working reliably with modem connect speeds usually at 31.2k.
This config is meant to be as simple as possible – authentication is local, the dial-in modem connecting is assigned an IP dynamically from 172.16.1.x, and NAT is used so let the dial-in computer get out to the internet via our LAN:
cisco1841-pots#show run
Building configuration...
Current configuration : 2076 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname cisco1841-pots
!
boot-start-marker
boot-end-marker
!
logging message-counter syslog
enable password REDACTED
!
aaa new-model
!
!
aaa authentication login default local
aaa authentication ppp default if-needed local
aaa authorization exec default local
aaa authorization network default local
!
!
aaa session-id common
dot11 syslog
ip source-route
!
!
!
ip dhcp pool dialup
network 172.16.1.0 255.255.255.0
dns-server 8.8.8.8
default-router 172.16.1.1
!
!
ip cef
multilink bundle-name authenticated
!
!
!
!
!
username operator privilege 15 password test
username joe privilege 15 password test
!
!
!
!
!
interface Loopback0
ip address 172.16.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 10.254.255.7 255.255.255.0
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface Serial0/0/0
no ip address
shutdown
no fair-queue
!
interface Async0/1/0
ip unnumbered Loopback0
ip nat inside
ip virtual-reassembly
encapsulation ppp
ip tcp header-compression
dialer in-band
dialer idle-timeout 3600
dialer-group 1
async mode dedicated
peer default ip address dhcp-pool dialup
ppp authentication pap chap
routing dynamic
!
interface Async0/1/1
no ip address
encapsulation slip
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 10.254.255.1
!
no ip http server
no ip http secure-server
!
ip nat inside source list 1 interface FastEthernet0/0 overload
!
access-list 1 permit 172.16.1.0 0.0.0.255
dialer-list 1 protocol ip permit
!
!
control-plane
!
!
line con 0
line aux 0
line 0/1/0
modem Dialin
modem autoconfigure type default
transport input all
autoselect ppp
stopbits 1
speed 115200
flowcontrol hardware
line 0/1/1
stopbits 1
speed 115200
flowcontrol hardware
line vty 0 4
!
scheduler allocate 20000 1000
end
And that’s it – we only have the first modem port (0) configured here, but we can dial in from Windows 95 with one of the locally defined username/password combos and get online.
Once our test Win95 client is online, we can see it here on the Cisco side:
cisco1841-pots#show user
Line User Host(s) Idle Location
tty 0/1/0 mark Async interface 00:01:46 PPP: 172.16.1.15
and ping it – latency is 400ms but I guess this is just normal for dialup?
cisco1841-pots#ping 172.16.1.15
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.15, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 400/407/420 ms
Problems and troubleshooting
One reader (Mattia) tried this same setup and was able to connect from Windows 2000, but not Vista:
The debug commands work:
-If I connect from Windows 2000 I see the PPP authentication details appear.
-If I connect from Windows Vista, on the other hand, no log appears, as if the whole thing stops before the authentication phase
– Mattia L
Debugging
From enable mode, run:
terminal monitor
debug ppp auth
debug ppp negotiation