Hacker News new | more | comments | ask | show | jobs | submit login
Build your own dial-up ISP in 2019 (dogemicrosystems.ca)
205 points by waffle_ss 11 days ago | hide | past | web | favorite | 82 comments





I've built something like that from a bunch of used hardware in my teens. DSL connections were just available (in Germany) and came with a data flat rate. I was in the lucky position that I could convince my parents to get such a contract.

A friend of mine, who could not get a DSL connections because back then he lived in an uncovered area, could at least get a telephone "flat rate" for free telephone calls on Sundays.

So, he dialed in my Pentium 133 server and used my DSL connection behind a NAT every Sunday.


This is friendship.

This brought back some good memories. My dad had to work in a remote area for a while and rented an apartment. No DSL/broadband either. We had DSL/broadband back at "home" and I setup a dialup server (running on Windows 2000) built out of spare parts. I forget the details but remember it worked fine, up to around 33.6 kbps. Of course, it tied up two phone lines when in use.

I operated something like this around 2005 in a big hotel building (~400 bedrooms and various offices) with a dinky internet connection and no wifi yet (very thick walls, up in the mountains, limited budgets...).

So I built a dial-up pool on an internal number (this place had its own PBX with ~500 phone lines) hooked to a Debian box, served by a bunch of USR Courier modems. Good times :)


Please, one day, do a write up on this!

Really off-topic, but this is why I actually miss seeing the upvote score on comments -- without knowing the score, we don't know how popular this opinion is (personally I would love to see a write up on this as well); and since there's no way to see the popularity, we get this chain of people seconding/thirding the statement.

I second!

I third

forth

You are a true mad lad, I love it.

This article came at just the right time. Maybe the HN crow can help me with this one.

I have a lot of old hardware that i want to connect to the to my network. Most of them have a 56k modem the rest a 14/28k modem. What can i use to bring them all online at the same time. I tough to use some voip adapter (from pots to ethernet) but from what i understand there are not good for modem/fax style signal, also i need something that can handle at least 8 client at the same time (the number of computer to connect is 22 at the time but i don't know how realistic is to connect all of them at the same time using this method).

When i searched (i couple of month ago, so i might get wrong some terminology) i only found some enterprise pbx that were awfully expensive (1000$) i hope for something more cheap. I didn't find anything that work. EDIT: Also i'm not sure how to understand if the hardware that i plan to use can do what i need. What do i need to look in a pots to voip converter to work as modem "server". If i sound confused is because i am.

I have a plan B, that consist of using serial port and emulate old style Hayes modem by a central more powerful (and modern) computer using a lot of usb2serial adapter, but i would rather avoid that since some computer have only 1 serial port and is already used for other hardware forcing me to choose between connectivity and the other device. Also some of the hardware it's not compatible with serial modem. I've already test this approach and (expect the aforementioned shortcoming) it works quite well.

Thank you all in advance


You need a terminal server: it has multiple serial ports on one side, ethernet on the other. You will need serial cables going from client devices to the terminal server. The serial cables should be the "null modem" variety, so no actual modem is needed. Hopefully you have spare serial ports, or can replace the modems on the clients with serial cards.

Take a look on ebay for "terminal server", "console server", etc.


I planned to use a lot of cheap usb to rs232 converter. I didn't know about console server. They seem very neat! I have only two question:

1- They seem to all use RJ45 i'd imagine that i would use a cable RJ45<->RS232. I found some on amazon, but i don't know if they are standard or i need to look for some specific type of cable.

2- Do they allow the "master" ethernet port to talk to all serial port at the same time? I found some conflitting information about it. If not the usb<->rs232 seem a better solution.

Thank you a lot!


1) Yes, you will need those cables... The RJ45<->RS232 cables are not standardized. You will need to buy the exact cable, or do some research to make your own: Example: http://pages.cs.wisc.edu/~ajkunen/wiring.html

2) The ethernet port can communicate with all serial ports. Depending on the model, you can program the serial port for PPP, SLIP, telnet, SSH, etc. Back in the old dialup ISP days, we connected modems to these terminal servers and users could either telnet to a host, or initiate a PPP session.

And yes, you can basically build your own terminal server with a bunch of those USB<->RS232 adapters.


Thank you, i will look into it. I found some on ebay, now with a bit of researchi should be able to find one that fit my need!

also important that you can configure these terminal servers to have different TCP ports corresponding with each serial port. this would enable you to set up a router for the console server and NAT so that each device can have its own IP

What are you trying to accomplish by using or emulating modems vs just a serial line?

Your best bet would probably be getting a terminal server style multiport serial card and just do PPP over serial from the client devices. The modem is an extra layer you typically don't need at all for local connections. You can get relatively inexpensive 16+ port cards and I'd expect them to be far more reliable and manageable than a wad of usb dongles.


When i started testing this, i used a "master" computer as serial "router" with 6 serial port, so that the "slave" computer could talk to each other. I quickly found that i need some sort of management protocol to specify which computer could talk to. I decided to emulate Hayes since it's a simple protocol very well documented and supported.

Also some software expect to talk to a modem and don't play well with raw serial.

I searched for multi serial port card, but i had trouble finding one. Maybe i'm using the wrong keyword but i only found pci/pcie card with up to 4 serial port.

Usb seem to work decently but i admit that sometime the os (linux) seem to become confused and some serial port change name, causing some trouble. Having one card (or two) will make everything easier. I'm also considering "console server" as others have suggested.

Thank you!

edit: correction


Ok, it sounds like what you were trying to do wasn't routing, but circuit-switching the rs232 lines.

As an alternative, PPP gives you a routed TCP/IP connection over a serial line...you offload routing onto the network layer and you can potentially have _all_ your client machines communicate with each other or even externally via standard TCP networking, and don't deal with circuit-switching the serial connections at all. For things that are TCP capable this is probably the cleanest solution.

If you want to support software that requires direct serial/modem links and not TCP, you will need something else in the mix. On the software side, I'd check the software to make sure you can't just turn off the AT commands altogether and use raw serial. Even where it wasn't a supported/intended setup, most software that explicitly handled modems allowed specifying alternate AT command strings, so you _might_ be able to just blank them out and go straight to serial. As far as circuit-switching...I know I've seen hardware devices that did this, but not in decades, so likely not easy to find any more. A quick google only turned up a bunch of datasheets for chips that could do it, but seems like you'd have to build your own device or track down a vintage device.

For multiport cards, an amazon search turned this up as the first result: https://www.amazon.com/Port-Rs232-Multiport-Serial-Card/dp/B...


Yes, it was actuality circuit switching, every serial port has it's number assigned and each computer could "dial-up" each other, but there is also a "virtual" number that anyone could dial up to (even at the same time) that will connect to a PPP session to connect via IP/TCP to the outside word. This last part was the one that still need a bit of work since it doesn't always work as i expect.

So i, basically, do both. packet and circuit network according to need.

As far as circuit-switching...I know I've seen hardware devices that did this, but not in decades, so likely not easy to find any more

software based circuit switching seem to work fine for what i need, is really not that complicated, it also make me do cool thing like wiresharking!


Like others said, if you can do rs-232 instead of modems, use a multiport serial card on your terminal server. With your host count, you should look into cable length and ground loop issues.

For those systems without a serial port, for whatever reason, you can find a matching modem. If you get external serial modems, you'll be able to hook it to your multiport card, but USB modems will work too (as long as they're hardware modems). You might need to apply a DC voltage to your line to convince the modems it's working, but you probably don't need a dialtone, most modems will be fine with blind dialing. Caveat: you won't be able to get 56k without a lot of work.

If you really want, you should be able to make a back to back ATA adapters work, make sure your network isn't congested, and use PCM codec and it should work ok, but probably not great.


I currently tested the system with 6 serial client plus the server. it seem to work quite well but the cable were rather short. Is rs232 more prone to ground loop than ethernet?

i looked into using serial modem, but it seemed quite complicated, and very fragile. I didn't find a lot of guide to connecting directly two modem. I tried doing some experiment with a couple of modem i had laying around but without success. Pots and modem aren't really something a know a lot of, (that's the reason of the plan B, a lot simpler and something i understand)

I also look into ATA to modem and i will probably use that for the device i cannot connect via serial, but it seem that a lot of them don't support the pcm codec (or at least i didn't found info about it), i never used one so my knowledge about them is limited, but the article should help me. also they will stay in a dedicated network so congestion shouldn't be a problem.

Thank you a lot!


rs232 is simple singalling with high and low voltages and a ground pin. Ethernet is differential signalling with no ground. That makes ethernet less susceptible to ground loop issues, and interference issues from long distances. I think it's just something to be aware of, and you likely won't have to do much to adress. But don't plan for running an rs232 to your neighbor's house without isolation.

Many modems (notably Dreamcast modems) require line voltage to work. A normal POTS line provides a good amount of DC voltage when the line is off hook for various reasons, and a modem may use that for powering parts of itself or as a check to confirm it's properly connected. Something like this could help supply that voltage for picky modems http://dreamcast.onlineconsoles.com/phpBB2/guides_pcdcwin98....

Many modems will also default to waiting for a dial tone before dialing, but that should be configurable via the dialstring.

As with all things Telco, the terminology is strange. You're looking for the g.711 codec. It's basically what was used for T1s, so it's just right to fit a modem, because actually most ISPs were receiving calls via T1 --- that's how 56k works.


Scour Ebay for an old enterprise grade pbx?

I'd expect you to get them for nearly $0 as long as you dismantle and move them yourself. Be prepared to bring a good sized truck.


An old Partner ACS should get the job done on the cheap.

> Note: You will have a lot of trouble using a softmodem/winmodem! You are much better off using a hardware-based modem.

Some things never change


Yep, I definitely remember the 'winmodem' as the primary villain in my early attempts to get my first linux box online ca. 1999

Been there. Had to reboot into windows to download half the missing deb packages, then find out there were more missing ones!

Favorite quote screamed in anger by a friend after "Plug n Play" first came out... It was a few hours into trouble-shooting an early PnP ISA card for several hours trying to get it to work.

"Plug in play! Fuck plug n play! My ass is plug n play!"


Since they rely on drivers, I wonder if winmodems even work under Windows. Good luck running a Windows 98 driver under Windows 10.

A circa 1998 winmodem may not have current drivers, but my circa 2008 Sell laptops have winmodems and they work in Windows 10. You can still buy winmodems today, they're just USB.

Back when we used dial-up I couldn't outright switch to Linux because I couldn't get on AOL from Linux (or I didn't know how) I tried everything too. Then once we had a normal router it was wireless drivers that was my issue, nowadays it's mostly my GPU drivers. I have used Linux more exclusively now, but if I can't get online out of the box that's the biggest deal breaker for a distro for me.

I remember the fun of trying to get PPP working in Linux the first time.

Dial in. Search for instructions. Print them out. Reboot into Linux. Try it. Doesn’t work. Write down error. Reboot into Windows. Dial up again. Search for error. Repeat until you hate yourself.

Wait, you need a new package. Go back to Windows and download it. Stick it somewhere Linux can see it. Reboot into Linux. Install the package. Find out it has missing dependencies. Go back to step one.

Got all the dependencies. Start at the top again.

I don’t remember if I ever got PPP working before I had Ethernet based net access and no longer needed dial up.


I'm working on a project that will be using PPP or SLIP to sync CouchDB over a serial-based RF link. It's really weird to see code in the slip.c file that's older than I am: https://github.com/torvalds/linux/blame/master/drivers/net/s....

Whoa, sounds like that project will make a cool write up one day

I remember those days...I lived in a small town that didn't have a local ISP for a long time, so stayed on AOL for dialup because of their local dialup number. I'd used the AOL client from another machine and then set up NAT behind AOL's TCP tunneling to get access from Linux and Solaris machines.

Yeah I must've been 14 and had no idea how Linux worked, so I never figured it out LOL at least I got to try Knoppix over the years.

But what's it like surfing the web on 56k6 nowadays? It was painful 15 years ago, doesn't seem like it would be feasible today. ('feasible' as in 'would actually use this for something', not as in 'technically works')

Chrome DevTools has a feature that will let you try it out. I am right now. On the Network tab there is a throttling option. I added a profile for 56k, and based on some research set it to 6kb/s upload and download as well as 100ms ping. It is painful. Loading this thread's comments page took about 23 seconds, though loading the form I am submitting this comment on only took about 4 seconds.

I think it could be workable if you were to set uBlock to block all images and scripts.


I'd do 56kbps download, 48kps upload, at 100ms. Still loads this comments page fairly fast!

Kilobits or kilobytes? A 56k modem is max 56 kilobits/s, a.ka. 7 kilobytes/s (although realistically I never synced over 50k, and more common something like 48k)

The once popular developer site 15seconds was named because that's roughly how long a person would wait for a site to load... I'd say closer to 3-4 now is where I get really cranky.

Actually, it might not even technically work, due to bugs like this which cause slow connections to be dropped: https://blog.cloudflare.com/the-curious-case-of-slow-downloa...

It’s not feasible without a proxy or special browser. When I run out of data on my phone plan, it’s throttled to 100kbps. Many sites load fine, notable HN and google search. But the average news site or company website will fail to load.

Nostalgia Nerd did a video on browsing with a 56k modem last year https://www.youtube.com/watch?v=17zfz017s9A

I quickly went from "what a fun weekend project" to "where on Earth would I find two landlines to test with?"

The article didn’t even use them. They hacked a single voip ata with two ports and connected those together. That’s a pretty elegant (albeit impractical) solution to that rather unique problem.

Internet over phone over internet :D

I quickly went from "what a fun weekend project" to "where on Earth would I find two landlines to test with?"

Ask one of the 151,287,292 people in the United States who have a landline.


Aren't most ISPs worldwide phone service providers? I get a landline forcibly packaged with my internet service. I don't even have a landline phone.

They are usually VoIP phone providers, they are just running a phone connection over the data you already paid for.

Modems and fax machines are pretty sensitive, and pushing that sound over a packet switched network with UDP instead of a circuit switched network leaves a lot to be desired.

So there are some places that still support old copper lines, but in many places, if they have to run a new line, they'll run a coax or fiber to your house and give you a plug in off of that.

It's basically not an offering in many places now.


It may be different now, but I remember back in the early 00's being unable to get better than a 14.4 connection over voip... That's all the provider would guarantee and was intended for fax use.

just need a Landline-as-a-service :)

It already exists and is called a VOIP provider! You won't get very high bandwidth but you can generally get 9600 baud or so.

This came up every few months when I was at Twilio (2012-2014) - primarily regarding supporting faxes. From what I remember from the folks who knew SIP really well, the issue was mainly that there's too much variability in terms of latency and the modulation/demodulation of the analog signals that modems use.

100% of the companies that I installed LG IPECS systems into back in the day also became e-fax customers.

By the time you've got a dedicated channel for the fax machine (missing an inbound PO delivered via fax because the sales team is hitting the phones hard doesn't fly anywhere) and are paying an additional monthly fee for another DID the cost is usually a wash anyways.

It's money exceptionally well spent to not have to worry about G.729 jitter and the nightmare that is analog>digital>analog>digital and back.


Ah the dial-up ISP days. As an young enterprising middle schooler 20+ years ago I started one with the help of my father. I remember stringing together a bunch of modems to a Postmaster and getting a rollover PRI line from the local telco. If my memory serves me it had 24 lines and would roll over if one was busy. We even made some of our own installation floppy disks and placed them at the local video rental store so people could self install. Fun times!

Back when we used dial-up for Internet access, and it was charged by time, we used P2P dial-up connectivity to share downloaded stuff - one person would set up a dial-up server (Windows had that capability even in 9x days; still does, I think), the other one would dial in, and then we'd use IRC and FTP on the resulting intranet, chatting while the data was transferred.

Nostalgia aside, can a network without border gateway peering be considered an ISP? It seems like a more apt term might be dial-up network provider.

I wonder as many do not actually use the mobile phone as a phone and we have sometimes 1000 min free, can we use mobile phone as a kind of isp. It can connect to internet via calling?

Not sure any notebook with sim card can do as not sure they take call.


You might be able to, but you won't be happy with the results -- cell phones use low bandwidth compression codecs, around 12kbs if I remember correctly, but for use as a modem, you'd be lucky to get half that or less.

Browsing the modern internet at 6kbs sounds painful.


Depends, GSM codec is indeed low bandwidth, G722.2 is not.

Even G722.2 is low bandwidth compared to speeds you'd want: to surf the internet at:

When used in mobile phone networks, there are three different configurations (combinations of bitrates) that may be used for voice channels:

    Configuration A (Config-WB-Code 0): 6.6, 8.85, and 12.65 kbit/s (Mandatory multi-rate configuration)
    Configuration B (Config-WB-Code 2): 6.6, 8.85, 12.65, and 15.85 kbit/s
    Configuration C (Config-WB-Code 4): 6.6, 8.85, 12.65, and 23.85 kbit/s*

Oh, I'm sorry, I had a different bandwidth in mind, the audio bandwidth.

Granted this was getting close to 20 years ago. I had a Motorola Timeport, for which I bought the PC connection kit. The PC connection kit just gave you a serial port. I was able to connect it to my PC and use the phone as a modem to dial my ISP. It just used my minutes and since I was on Sprint it was free after 7PM.

A couple of years later I bought one of the first smartphones. It was a Kyocera Palm Phone. On it I could use the native Palm PPP dialer and again it would use the phone as a modem and just use my minutes. It worked pretty well, though the Palm browser was lacking. I mostly just used it for email.


Most phones support bridge networking over bluetooth these days, but that uses your data. Some phones used to have an IR port for serial communications and bridged calling/modem access, but I'm not familiar with anything current.

On Android it's hard to receive/send voice data from a call to your own application

Wouldn't it be cool if you could use your cellphone instead of using a data plan?

Dial-up over a cell call? It's called CSD (Circuit switched data), and it tops out at ~9.6Kbps if I remember correctly.

A few years ago I needed a way to SSH onto a dial-up server during a trip. Since hotspot was still an add-on, I bought a cheapie $15 Verizon prepaid flip phone and used that with a USB cable. It appeared as a serial modem under Linux.

The amusing thing was that apparently Verizon didn’t setup any sort of billing for my use-case, and since I never used the voice or text the thing just continued to work for a couple of years. It worked after the service cancelled, after the number was reclaimed, and then finally stopped only once the SIM card would no longer register on the network.

Not that I really cared - it was 9600 baud and I only used it a handful of times. Still a funny hack.


There was briefly a thing called HSCSD ("high-speed circuit switched data"), which allowed for 14.4k per circuit, and you could make two simultaneous connections to get 28.8k. It was basically ISDN over GSM.

But you paid per minute (twice as much for 28k) and it was swiftly killed off by GPRS.


>There was briefly a thing called HSCSD

That was never deployed commercially in the US, it tied up too many channels. I was able to use CSD on T-Mobile and AT&T Wireless back in the day.

Worked well enough during unlimited nights and weekends to get on IRC.


Used this way back in the day when we got rid of our landline phone (this was around 2000), used my Kyocera phone as a modem to dial into our Earthlink service. Since we had unlimited night and weekend calling we primarily used the internet around then, oh boy was downloading Windows NT SP6 back then fun.

And isn't available on many networks these days.

I was actually thinking of this recently. People have:

* unlimited minutes,

* limited mobile data,

* many don't use their home phone, and

* their home internet is rate limited instead of data limited

So, what's stopping anyone (besides know-how) from getting unlimited (albeit slow) data by making a call to one's home computer, and using it as a proxy to get access to one's home internet service from anywhere?

All one needs is something to hookup their home computer to a phone-line.


Back in college I did exactly this. It was 2004, I couldn't afford a data plan, but my school had a dialup service for resnet and I had free nights+weekends on my cell phone. I spent a lot of family RV trips in the passenger seat with my laptop using my cell phone as an analog modem over Bluetooth, getting free internet access at 9600 bits per second (nominally, slower in reality) browsing with images disabled because otherwise it was just unusable.

The data is so slow in modern-day terms that it wouldn't make a dent in their mobile-data cap anyway. We're talking 9600 baud, or 9.6kbps, for data over the mobile voice channel. Now, SSH'ing (or RDP'ing, for that matter) to their home pc over mobile data and doing data-intensive tasks through that channel is something that should be a lot more common than it is.

Fair use agreements usually. You'd probably have someone asking "Are you using your personal plan for business use" or similar.

Are they listening to the content of my phone calls? Because if not, I'm just a guy who has talks on the phone a lot.

I know people who talk on the phone for hours and hours. Doing so should be well within the realm of normal consumer use!


I can't think this would be very useful business-wise. The more likely uses I'm thinking of are when you need something from the internet in an emergency and you don't have anymore data for the month, or when your internet-needs can be satisfied with a terminal and you want to save those extra bucks every month.

Hmm - I just recently picked up a couple of TRS-80 Model 100 machines...

...and I am pretty certain I still have one or two old MultiTechs.

I need another project like I need a hole in my head.


A related question when Putin ask to cut off Russia from the Internet or China's eGreat Wall, can the BGP with your own ISP can override it.



Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: