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 18.104.22.168 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-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