{"id":36821,"date":"2026-10-22T19:57:41","date_gmt":"2026-10-22T17:57:41","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=36821"},"modified":"2026-10-22T20:05:02","modified_gmt":"2026-10-22T18:05:02","slug":"the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/","title":{"rendered":"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Stratigraphy of an Infrastructure: Reconstructing a 1995 ISP Through Digital Forensics<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some time ago, while looking for old material to answer a friend\u2019s question, I stumbled across a few directories on a NAS device I hadn\u2019t opened in nearly thirty years. They contained backups and documentation I had created for Internet Force, the Internet Service Provider where I worked as system and network administrator in 1995.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inside were Cisco router configurations, BIND zone files, Sendmail files, XTACACS configurations, scripts, SNMP maps created with Tkined, <code>\/etc\/hosts<\/code> and <code>\/etc\/networks<\/code> files, routing configurations, operational documentation, and even hardware, disk, and filesystem inventories for the Sun machines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some backups were corrupted, and other files were missing, probably lost during the many computer migrations they had gone through. They reminded me of the remains of a glorious ancient civilization. Like temples, even a few surviving columns were enough to suggest what the whole structure must once have looked like.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While answering my friend\u2019s questions, I realized two things. First, this material still inspires an almost irrational curiosity in a particular group of people whom, for simplicity\u2019s sake, we\u2019ll call geeks. Second, it is surprisingly difficult today to find a comprehensive description of how a small commercial Internet Service Provider actually operated in the mid-1990s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I began following the clues left by the recovered data. An IP address in one file pointed to a host in another; a route explained the path to a POP; a FireWall-1 rule clarified why a service was reachable from one network but not another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some documents represented different points in time and appeared to contradict one another. At that point, the resemblance to archaeological work stopped being merely a clever metaphor. The artifacts made it possible to reconstruct not just which machines existed, but how the entire system actually worked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I decided to reconstruct that history by comparing the original materials with my own memories and, where necessary, using AI assistance to recover missing sections or interpret corrupted files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem was that I did not have a single, consistent backup frozen at a specific date in 1995 or 1996. I had not kept the regular backups from those years. Instead, I had layers of surviving copies from multiple computer migrations, configurations updated at different times and later reused as the basis for consulting work, incomplete files, and documents reflecting different stages of the infrastructure. Sometimes two artifacts seemed contradictory simply because they came from different months.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then I remembered that I still had a copy of a backup from my workstation. The DAT tape had survived for almost thirty years in a container in my basement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The original backup had been written using a Sun DAT drive connected through SCSI to DVLP, a SunOS machine. To recover it, I rented a USB DAT drive and connected it to a Linux computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That was when the work began to resemble digital forensics in the strictest sense. I used <code>tar<\/code> to extract the contents and, where compression seemed likely, <code>gzip<\/code> to determine what was still readable. The result was far from an orderly archive: some files extracted normally, others had zero bytes, and still others appeared to be <code>.tar.Z<\/code> archives that would no longer open. In several cases, all I could recover were blobs with unreadable names or partially corrupted contents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recovery became a process of following clues. I examined headers, readable strings, file sizes, neighboring filenames, and compared what emerged with configurations recovered elsewhere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In some cases, I also used DeepSeek through OpenCode to help interpret damaged blobs and identify plausible structures. The goal was not to invent missing files, but to determine whether those fragments still contained recognizable configurations, scripts, or compressed archives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even when a file opened correctly, however, I still needed to establish when it represented the infrastructure. A Cisco configuration might appear to document the initial launch but contain routes to POPs that were added only in 1996. A Tkined map might depict an earlier stage, while a DNS file, routing table, or firewall policy could help establish its place in the timeline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The reconstruction therefore became a matter of stratigraphy: not simply asking, \u201cIs this file authentic?\u201d but \u201cWhich stage of the network\u2019s history does it belong to?\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My memory was also a source, but not a standard against which I could force the files to confirm what I remembered. When memory and artifacts disagreed, I looked for a third piece of evidence: a configuration, an email, a date, a map, or an operational document.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes I had to correct memories that, after thirty years, had merged different moments in the network\u2019s history. In other cases, the files brought back details I had completely forgotten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I tried to preserve these temporal distinctions in the repository: configurations clearly belonging to the initial phase, later revisions, and passages reconstructed retrospectively by cross-referencing multiple sources. The article tells the story; anyone who wants to verify how I arrived at my conclusions can examine the individual artifacts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That work led to this article and a GitHub repository containing all the technical details.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here on Codemotion, I don\u2019t want to present a catalog of configurations. I want to explain the processes. What happened when a customer in Milan, or at a remote POP, dialed the provider\u2019s number? How were they authenticated? How did they reach the Internet? Where did their email end up? How was a website created and published? And how did a small office full of Sun machines, Cisco equipment, Macintosh computers, a Linux PC, and eventually even Windows NT with Oracle actually work?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The repository is for those who want to dig deeper into the artifacts: Cisco configurations, Unix files, policies, documentation, and technical reconstructions. This article puts those artifacts back into motion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will begin with the recovery of the artifacts and the technical context in which they were created. Then we will explore Internet Force\u2019s architecture and follow a dial-up connection from the modem to the Internet. Finally, we will return to the less infrastructure-focused materials recovered from the backups and examine what survived after the company closed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The journey follows this path:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recovering an ISP thirty years later \u2192 The Internet landscape in 1995 \u2192 How Internet Force\u2019s architecture was designed \u2192 Security and services \u2192 Following a connection from modem to Internet \u2192 The office and daily operations \u2192 The repository and other recovered materials \u2192 What happened after the company closed.<\/p>\n\n\n\n<h2 id=\"h-from-modem-to-fiber-the-technologies-change-but-the-questions-remain\" class=\"wp-block-heading\">From Modem to Fiber: The Technologies Change, but the Questions Remain<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before exploring Internet Force in detail, it is worth considering a fundamental difference between then and now.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1995, connecting to the Internet was an explicit action. Your computer dialed the provider\u2019s telephone number, the two modems negotiated a connection, and only then did a network session begin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Today, with a fixed broadband connection, we take the Internet\u2019s constant availability for granted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beneath this enormous difference, however, providers still have to solve remarkably similar problems.<\/p>\n\n\n\n<h3 id=\"h-tl-dr\" class=\"wp-block-heading\">TL;DR<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A mid-1990s ISP:<\/strong> Point-to-point access over copper telephone lines, using modems, terminal or access servers, centralized user authentication, and then IP connectivity.<\/li>\n\n\n\n<li><strong>A modern FTTH ISP:<\/strong> Point-to-multipoint access over passive optical fiber, using ONTs, PONs with passive splitters, OLTs, BNGs, AAA\/RADIUS, a backbone, and peering or transit.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-a-closer-comparison\" class=\"wp-block-heading\">A closer comparison<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Aspect<\/th><th>Dial-up in the 1990s<\/th><th>Modern FTTH<\/th><\/tr><tr><td>Physical medium<\/td><td>Telephone line and a 28.8 kbit\/s modem; a call had to be placed<\/td><td>Optical fiber, with an Optical Network Terminal (ONT) at the customer\u2019s premises<\/td><\/tr><tr><td>Connection aggregation<\/td><td>Modem pool and terminal\/access server<\/td><td>Passive splitters and Optical Line Terminals (OLTs)<\/td><\/tr><tr><td>Session and authentication<\/td><td>Terminal server queried a central user database<\/td><td>Broadband Network Gateway (BNG) and AAA\/RADIUS handle identification, authorization, and accounting<\/td><\/tr><tr><td>IP connectivity<\/td><td>Assigned after the subscriber was authenticated<\/td><td>The BNG manages IP connectivity and service profiles<\/td><\/tr><tr><td>Internet access<\/td><td>Provider router \u2192 Internet<\/td><td>Backbone \u2192 peering\/Internet Exchange Point (IXP) or transit<\/td><\/tr><tr><td>Architecture<\/td><td>Point-to-point access and heterogeneous equipment<\/td><td>Passive Optical Network (PON), with centralized software and policy control<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The fundamental difference is that the bottleneck used to be the modem and telephone line. Today, the optical access network is passive and shared, while intelligence and control reside in the OLT, BNG, and AAA systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another obvious difference is that we no longer \u201ccall\u201d the Internet. The connection is permanent, shared, and packet-switched from the access network onward.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yet the general model remains the same:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Access \u2192 Subscriber identification \u2192 IP connectivity \u2192 Aggregation \u2192 Backbone \u2192 Internet.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This continuity of function, hidden beneath completely different technologies, is what makes the archaeology of an ISP so interesting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Figure 1 \u2014 Two ways of providing Internet access: dial-up in 1995 and a typical modern FTTH architecture. The equipment has changed, but the fundamental functions remain recognizable.<\/em><\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-817bff76 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone1.png\" alt=\"\" class=\"uag-image-36779\" width=\"728\" height=\"486\" title=\"iannacone1\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"h-an-internet-that-was-much-smaller\" class=\"wp-block-heading\">An Internet That Was Much Smaller<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To understand what follows, we first need to travel back mentally to 1995.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1994, the ITU estimated that there were approximately 20 million Internet users worldwide, representing just 0.3% of the global population. Amazon opened its online bookstore in July 1995; by October of that year, it was already announcing orders from 45 countries.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the autumn of 1995\u2014I found a receipt\u2014I was also ordering English-language computer manuals and technical books from Amazon, materials that were difficult to find in Italy, and having them shipped to the office. Documentation about how Internet services worked was so new, and evolving so quickly, that it was often available only online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The commercial Internet already existed, and the Web was accelerating. But for most people in Italy, connecting meant turning a telephone line into a data connection for a few hours, often preventing the rest of the family from using the phone.<\/p>\n\n\n\n<h3 id=\"h-usenet-learning-and-giving-back-to-the-network\" class=\"wp-block-heading\">Usenet: Learning and Giving Back to the Network<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Another important school was Usenet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Technical newsgroups brought together highly knowledgeable people who were willing to help. But the etiquette was clear: first, search for the FAQs, read the documentation, and try to understand the problem. Then ask a question, providing the system, version, configuration, error message, and steps already attempted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That culture also gave rise to the famous expression RTFM, or \u201cRead The Fucking Manual.\u201d It may sound undiplomatic today, but it was understandable in its original context. It did not simply mean \u201cfigure it out yourself.\u201d It meant that before asking for help, you were expected to make at least some effort to read the manual, FAQs, and available documentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The community shared a great deal of knowledge, but expected a little work in return.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The assumption that everyone is at your disposal was not yet considered a triumph of human civilization.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Usenet was neither a website nor the property of a platform. It was a distributed system of discussion groups organized by topic. Messages posted to a newsgroup propagated among the participating news servers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For people working with Unix and the Internet, it was simultaneously a discussion forum, a source of technical support, an archive of experience, and a meeting place for people solving the same problems on the other side of the world.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Usenet still exists technically, but much of its former central role in Internet culture has disappeared.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There was also a principle of reciprocity that I think is worth remembering. My professional growth depended on documentation, FAQs, mailing lists, source code, and discussions that other people had made available. Whenever possible, I tried to return some of that knowledge to the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During those years, I became the author of the FAQ for <code>it.comp.linux<\/code> and published documents in <code>it.faq<\/code> about emoticons, cyberspace, and hacker jargon, along with other technical and cultural material.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I recovered several of those original posts, complete with the headers they carried as they circulated through Usenet, and saved them in the repository alongside the other artifacts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why I decided to include a small Usenet section in the repository, in addition to the machine configurations. It preserves documents I published at the time, with their original dates. A carefully selected set of mailbox contents also preserves fragments of everyday network life.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I will return to these materials later, along with other things recovered from the same backups, because they reveal aspects of the era\u2019s technical culture that configurations alone cannot convey.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Messages written by other people are published only where appropriate and sanitized where necessary. Digital archaeology should not awaken contacts who have been dormant for more than thirty years.<\/p>\n\n\n\n<h2 id=\"h-becoming-a-system-administrator-without-yet-being-one\" class=\"wp-block-heading\">Becoming a System Administrator Without Yet Being One<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There is some background worth explaining before we go any further, particularly because it helps avoid a possible misunderstanding about what follows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the partners behind Internet Force advertised for a system administrator for the ISP they were building, I had already been working as an IT consultant for several years. I assembled PCs when needed, programmed as a self-taught developer, and had worked at a data processing center for the Italian Navy, where I learned a great deal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I had also started building HTML websites for small Internet providers in Milan and was contributing technical articles to computer magazines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unix, however, was something I had encountered only as a university user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I applied anyway.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I studied manuals in the evenings, learned enough Unix to get through the interview, and managed to convince the partners, who knew less about the technology than I did.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To put it less elegantly, I had bluffed my way through rather successfully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The real test came when the Israeli consultants from Xpert UNIX Systems, who had been hired to design the ISP\u2019s technical infrastructure, arrived. It took them only a few days to understand my actual level of expertise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Months later, they told me they had appreciated my determination and how quickly I learned, and that this was why they had decided to train me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In particular, they paired me with the legendary Yahel Ben-David, who was brought over from Israel specifically for the job and effectively became my tutor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">His approach was very different from simply handing me ready-made configurations to copy. He involved me in the design process, asked me what solution I would choose and why, and, when I made mistakes, often let me go far enough to understand the problem before making me retrace my steps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It was practically a Socratic teaching method.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We spent entire days together, from 8 a.m. until 11 p.m., so that I would be ready to manage the provider by its launch date. Needless to say, we soon became friends.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They were also the ones who introduced me to Linux. They convinced the partners to equip me with a fairly powerful 486DX workstation, with 16 MB of RAM, an Adaptec AHA2940 controller, and SCSI disks\u2014unusual equipment for a PC at the time\u2014so I could experiment independently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While we waited in Italy for a missing Sun machine to arrive and for the international connection to be activated, I spent about six months in Tel Aviv, continuing my training at the source.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, when Internet Force began operating in 1995, I was not simply administering a network designed by someone else. I had participated in building it, learning to understand its design decisions and reconstruct it from scratch if necessary.<\/p>\n\n\n\n<h2 id=\"h-an-isp-designed-as-a-network-not-an-enhanced-bbs\" class=\"wp-block-heading\">An ISP Designed as a Network, Not an Enhanced BBS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In 1995, the word <em>provider<\/em> could describe technically very different businesses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many small Italian operators came directly from the world of BBSs and FidoNet. I got to know them well in subsequent years, when I worked as a consultant helping several ISPs in Milan modernize their infrastructure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Their setups often consisted of commodity PCs, banks of modems added incrementally, cabling, and services that had grown around one or two PCs, sometimes with a permanent 64 kbit\/s connection to a national carrier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Illustration \u2014 A reconstruction of a small Italian provider\/BBS of the period, before I refactored it in 1997.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet Force was conceived differently from the beginning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The partners had approached the American company IDT, which connected them with Xpert UNIX Systems. The resulting model was closer to that of contemporary American ISPs: dedicated Unix systems, Cisco routers and access servers, distributed POPs, centralized authentication, clearly separated machine roles, and security treated as part of the architecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The international connection initially operated at 128 kbit\/s. About six months later, it was upgraded to 2 Mbit\/s toward IDT in the United States.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The scale was already significant. During the expansion phase in 1996, taking into account the new POPs, the increased number of lines in Milan, and the subscriber-to-modem ratio used to size the service, Internet Force had reached approximately 2,000 subscribers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a dial-up ISP, the important number was not simply how many customers you had, but how many could connect simultaneously. Selling access to thousands of people meant sizing modem banks, telephone lines, and geographic links around the probability that only a fraction of subscribers would be online at any given time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That figure becomes easier to understand when we look at line capacity. Using the rule of thumb of eight to sixteen subscribers per modem, every group of sixteen modems represented commercial capacity for roughly 128\u2013256 customers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the addition of the new POPs in 1996 and the expansion of lines in Milan, the provider could serve several thousand subscribers without needing several thousand modems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For comparison, Video On Line, Italy\u2019s largest provider at the time, had approximately 15,000 subscribers in 1995, representing around 30% of the Italian market.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet Force was therefore much smaller, but 2,000 subscribers were already a substantial operation\u2014not an amateur experiment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Today, 2 megabits is less bandwidth than a modern web page can waste before displaying its headline. For a small Italian ISP in 1995, it was a significant capacity.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"407\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone3.png\" alt=\"\" class=\"wp-image-36781\" style=\"width:725px;height:auto\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone3.png 540w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone3-300x226.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><figcaption class=\"wp-element-caption\"><em>Figure \u2014 Internet Force network map: an overview of the infrastructure reconstructed from the original Tkined map and the preserved artifacts.<\/em><\/figcaption><\/figure>\n\n\n\n<h2 id=\"h-the-internet-was-assembled\" class=\"wp-block-heading\">The Internet Was Assembled<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One aspect of the Internet of that era is easy to overlook today: the network was open not only in its protocols.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specifications were published in RFCs, and much of the software required to build Internet services was available in source form. It could be compiled on different Unix platforms and was developed by universities, research groups, and distributed communities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">BIND implemented DNS; Sendmail handled SMTP; separate daemons provided FTP, POP, and IMAP; other software supported Usenet, mailing lists, and IRC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the Web, NCSA HTTPd would give way to the newly established Apache project in 1996.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not everything we used would automatically qualify as \u201copen source\u201d under the modern definition\u2014the term itself would only arrive in 1998\u2014but the technical culture was built around public standards, interoperability, and access to code that made it possible to understand, adapt, and integrate the components.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Running an ISP did not necessarily mean purchasing a suite that provided \u201cthe Internet.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Internet was assembled.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You took publicly defined protocols and available source implementations, combined different daemons, compiled them for your Unix platform, configured them, and made them work together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That was precisely what we had done at Internet Force.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DNS, email, the Web, authentication, FTP, News, and mailing lists were separate services built around different programs. The system administrator had to understand each well enough to integrate them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thirty years later, publishing those configurations in the repository seems consistent with the culture that created the network: one of the best ways to understand a system is to be able to inspect it.<\/p>\n\n\n\n<h2 id=\"h-unix-at-the-center\" class=\"wp-block-heading\">Unix at the Center<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The ISP\u2019s core consisted of Sun systems running SunOS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The decision to use SunOS rather than the newer Solaris reflected Xpert\u2019s assessment that, for an Internet-facing infrastructure, SunOS was at that point the more mature and familiar platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The machines had distinct roles.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DATA<\/strong> hosted the public Web server, primary DNS, anonymous FTP, mailing lists, and, during different phases, Usenet-related services.<\/li>\n\n\n\n<li><strong>USERS<\/strong> concentrated user identities and services: XTACACS authentication, email, home directories, POP3 and IMAP, and secondary DNS.<\/li>\n\n\n\n<li><strong>DVLP<\/strong> was the development and build machine.<\/li>\n\n\n\n<li>My Linux workstation, <strong>marco<\/strong>, was where I administered and monitored the infrastructure.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The machine names also revealed something about the company, though not exactly what I would have preferred.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the Unix world, it was common practice to name hosts after elements from a shared universe: mythology, astronomy, literature, or science fiction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My first suggestion was <em>The Lord of the Rings<\/em>. My second choice was Greek mythology, followed by <em>Star Wars<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Internet Force partners thought the idea was too playful for a company and opted for a much more sober naming scheme. Servers were named after their functions\u2014<code>data<\/code>, <code>users<\/code>, and <code>dvlp<\/code>\u2014while workstations were named after their users.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thirty years later, as a hacker in the original sense associated with MIT\u2019s Tech Model Railroad Club, I would like to place my formal dissent on record.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We had the opportunity to name a server <code>gandalf<\/code>, and we chose <code>users<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A small victory came the following year. When I installed the Windows NT system intended for Oracle experiments, I personally gave it the hostname <code>oracolo<\/code>\u2014Italian for \u201coracle.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This time, wisely, I did not convene a committee to decide on the name.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The basic philosophy for publicly exposed systems was to minimize what was installed on production machines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compilers, development tools, and software not required for a server\u2019s role stayed on DVLP. Exposed servers were installed and hardened with only the components they needed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We compiled software on DVLP and transferred the executables to the operational machines. In 1995, we also used internal FTP for these transfers; not long afterward, our workflow evolved to include more secure tools such as SSH and SCP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Figure \u2014 Systems overview: DATA, USERS, DVLP, the firewall, the administration workstation, and the office LAN.<\/em><\/p>\n\n\n\n<h2 id=\"h-security-as-architecture\" class=\"wp-block-heading\">Security as Architecture<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Another significant design choice was Check Point FireWall-1, installed on a Sun SPARCstation 5 running SunOS 4.1.4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FireWall-1 had only recently been commercialized and introduced an idea that was very advanced at the time: Stateful Inspection, combined with an X11 graphical interface that allowed policies to be defined using objects representing hosts, networks, and services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What mattered was not simply that we had a firewall, but how it was integrated into the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DATA and USERS had separate Ethernet connections to the firewall, while the Office LAN formed another segment. This was not one flat LAN with a filter placed in front of it. The policies explicitly described which systems could reach which destinations and through which protocols.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Among the recovered materials is an original GIF of the FireWall-1 rule base. It is one of my favorite artifacts because it shows not merely that we had a firewall, but how the network actually worked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rule 7, <code>ts \u2192 users, tacacs<\/code>, represents the authentication side path: terminal servers could query USERS without requiring subscribers\u2019 ordinary Internet traffic to pass through that server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rule 12, <code>news.ios.com \u2192 data, nntp<\/code>, shows the incoming Usenet feed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rule 13 allowed <code>xpert.com<\/code> to reach DVLP and my workstation, <code>marco<\/code>, for <code>talk<\/code> and <code>deslogin<\/code>. This was the Israeli supplier\u2019s remote access mechanism, using encrypted login, before SSH became the normal way to perform the same task.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A single screen therefore reveals centralized authentication, an incoming Usenet feed, and remote access for an external supplier: problems we would now describe in terms of identity, service exposure, and third-party access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the bottom of the policy was the rule that gave meaning to all the others:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Any \u2192 Any \u2192 Any: STOP.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anything that needed to pass had to be explicitly authorized first.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is, however, an important distinction: dial-up customers were not \u201cbehind\u201d FireWall-1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The firewall protected the central servers and the office. Ordinary customer traffic toward the Internet remained on the network\u2019s world-facing side and crossed the firewall only when it needed to reach a protected service, such as authentication on USERS or other central services explicitly permitted by the policies.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"524\" height=\"405\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone6.png\" alt=\"\" class=\"wp-image-36783\" style=\"width:732px;height:auto\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone6.png 524w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/iannacone6-300x232.png 300w\" sizes=\"auto, (max-width: 524px) 100vw, 524px\" \/><\/figure>\n\n\n\n<h2 id=\"h-following-a-connection-from-milan-to-the-internet\" class=\"wp-block-heading\">Following a Connection: From Milan to the Internet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The easiest way to explain the rest of the architecture is to follow a user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1995, you did not open an app. You made a telephone call.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before the customer could make that call, however, their account had to be activated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The commercial department left a paper form containing the customer\u2019s details and signed contract in the office. Using the workstation named <code>anna<\/code>, the information was entered into the management system and emailed to me so I could create the account on the provider\u2019s systems and enable access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same workstation received support requests by email. Common problems were handled using the FAQs I had prepared, while more technical issues were forwarded to me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some of those exchanges survived in the recovered materials. They helped me reconstruct the everyday workflow connecting sales, administration, customer support, and technical infrastructure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The customer in Milan dialed the access number.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The telephone network used a hunt group to route the call to an available line connected to one of the modems. Initially, the POP had sixteen modems. Sixteen lines meant sixteen simultaneous users, because every session physically occupied a modem and telephone line for the entire duration of the connection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The modem negotiated the connection with the customer\u2019s modem and handed the serial line to a Cisco 2511.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the 2511, the asynchronous interfaces were configured for PPP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The access server received the username and password, but it did not hold the user database itself.<\/p>\n\n\n\n<h3 id=\"h-authentication-came-first\" class=\"wp-block-heading\">Authentication Came First<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Cisco 2511 queried the USERS server through XTACACS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is an important distinction: USERS was not \u201cin the middle\u201d of the customer\u2019s Internet traffic. The 2511 asked USERS whether the credentials were valid. Once it received a response, the PPP session could proceed onto the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A single authentication system therefore served every POP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On many Windows PCs, TCP\/IP connectivity still required dedicated software. Among the preserved materials is a copy of Trumpet Winsock 3.0, together with the configuration documentation supplied to users.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I also recovered the complete Internet Force Welcome Kit and decided to publish its source files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I had created it for the provider\u2019s customers. It included software\u2014among it the versions of Netscape and Eudora available at the time\u2014and instructions for configuring the connection and getting started online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is an interesting artifact because it shows the other end of the infrastructure: on one side, Cisco, Sun, DNS, and authentication; on the other, a user with Windows, a modem, and no reason to know what PPP was.<\/p>\n\n\n\n<h3 id=\"h-then-came-dns-and-routing\" class=\"wp-block-heading\">Then Came DNS and Routing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once authenticated, the customer was genuinely on the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If they opened Netscape and typed a website\u2019s name, the resolver first had to obtain the corresponding IP address from DNS, even before the page could be downloaded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet Force operated its own primary and secondary name servers on its central systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the address had been obtained, packets from the Milan customer traveled from the 2511 onto the \u201cworld\u201d backbone and reached the central Cisco 2501, which routed traffic over the Frame Relay connection to IDT and from there onto the Internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The firewall was not on the ordinary path taken by that session.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The session\u2019s IP address was also assigned dynamically. The address pool was managed by the DHCP service provided by the access points themselves.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Network routing, by contrast, remained static.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The design discussed with Xpert envisaged introducing IGRP when infrastructure growth made it useful. With the addition of a second connection to an Italian carrier, Internet Force would also have needed to evolve toward its own Autonomous System.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The company closed before that step became necessary.<\/p>\n\n\n\n<h3 id=\"h-the-same-call-from-pesaro-palermo-or-gorgonzola\" class=\"wp-block-heading\">The Same Call from Pesaro, Palermo, or Gorgonzola<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Remote POPs added another step, but did not duplicate the central services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pesaro, Palermo, and Gorgonzola each had a pair of Cisco devices: a 2511 for the asynchronous lines and dial-up access, and a 2501 connecting the POP to the provider\u2019s backbone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The two routers were connected locally. From there, the POP reached Milan through a dedicated 64 kbit\/s CDA\/CDN circuit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A customer in Pesaro followed a conceptually straightforward path:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Telephone \u2192 Modem \u2192 Cisco 2511 \u2192 POP Cisco 2501 \u2192 Backbone \u2192 Central Cisco 2501 \u2192 IDT \u2192 Internet.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When authentication was required, the 2511 opened a separate XTACACS connection to USERS in Milan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This design kept the POPs relatively simple. There were no complete user, mail, or DNS servers to administer in every city. The network edge collected the connections, while identities and services remained centralized.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Xpert also taught me an empirical rule for sizing these networks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The magic number was eight, not 42.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To estimate bandwidth requirements, we took the capacity of the geographic link and multiplied it by eight, then compared the result with the combined nominal bandwidth of the modems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At a POP with sixteen 28.8 kbit\/s modems, the theoretical maximum load was approximately 461 kbit\/s. A 64 kbit\/s CDN multiplied by eight gave 512 kbit\/s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As long as the second figure remained higher than the first, the capacity was considered adequate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naturally, this was a statistical rule of thumb: it assumed that not all users would transfer data simultaneously at maximum speed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A similar logic applied to the number of lines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Xpert\u2019s guideline for a good-quality provider was between eight and sixteen subscribers per modem\u2014few enough to keep the probability of finding an available line during peak hours at a reasonable level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A POP with sixteen modems could therefore serve approximately 128\u2013256 subscribers without requiring a dedicated telephone line for each one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Figure \u2014 POP details: Milan and the three initial remote POPs, followed by the 1996 expansion.<\/em><\/p>\n\n\n\n<h2 id=\"h-being-online-meant-using-the-provider-s-services\" class=\"wp-block-heading\">Being Online Meant Using the Provider\u2019s Services<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reaching the Internet was only part of the experience.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An ISP had to provide and administer a range of services that we now tend to take for granted or delegate to external platforms.<\/p>\n\n\n\n<h3 id=\"h-email\" class=\"wp-block-heading\">Email<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Email arrived through SMTP and was stored on the provider\u2019s systems. The user\u2019s email client retrieved it through POP3 or IMAP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">USERS therefore hosted not only the identity information required to connect, but also an important part of each subscriber\u2019s daily digital life.<\/p>\n\n\n\n<h3 id=\"h-web-ftp-news-and-mailing-lists\" class=\"wp-block-heading\">Web, FTP, News, and Mailing Lists<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">DATA hosted the public Web server and anonymous FTP, along with services and content that changed over time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mailing lists were managed using Majordomo. Usenet was still a normal part of the Internet experience.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The external feed arrived from <code>news.ios.com<\/code> through NNTP\u2014the same flow shown in rule 12 of the FireWall-1 policy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is perhaps the most obvious difference from many contemporary Internet services: the provider was not merely selling a \u201cpipe.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It had to build and maintain a small ecosystem of interoperable services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To the user, these appeared as separate icons on the desktop: Netscape, Eudora, an FTP client, a newsreader, Telnet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Behind every icon was a protocol, and behind every protocol was a daemon that someone had to configure and keep running.<\/p>\n\n\n\n<h2 id=\"h-behind-the-network-was-an-office\" class=\"wp-block-heading\">Behind the Network Was an Office<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Configurations tell us a great deal about packets, but much less about people.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even so, the Office LAN left behind something like a fossilized organizational chart: the names of its machines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some names were functional, such as <code>dvlp<\/code> and <code>html<\/code>; others matched the names we used in the office to identify individual workstations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seeing them again is probably the quickest way for a former colleague to recognize their old workplace without my turning this article into a 1995 telephone directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The environment was highly heterogeneous.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My <code>marco<\/code> workstation was a 486DX running Slackware Linux. DVLP was a Sun SPARCstation. <code>maxi<\/code>, used by one of the sales staff, was a PowerBook. Several office workstations were Macintosh computers running System 7.5.x.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Laura<\/code> and <code>Alice<\/code>, in particular, were Power Macintosh 9500 machines used by the editorial team.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1996, <code>oracolo<\/code>, a Windows NT system running Oracle, joined the mix.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Everything coexisted on the office\u2019s Ethernet infrastructure, connected through a 3Com hub.<\/p>\n\n\n\n<h3 id=\"h-the-editorial-team-web-and-print\" class=\"wp-block-heading\">The Editorial Team: Web and Print<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Internet Force had an editorial department that produced content for the Web as well as a printed magazine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>laura<\/code> and <code>alice<\/code> were Power Macintosh 9500 workstations equipped with a complete desktop publishing and image-processing suite: QuarkXPress, Adobe PageMaker, Adobe Photoshop, and Adobe Type Manager.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The art director worked on the machine named <code>salvatore<\/code>, preparing finished images for websites as well.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>HTML<\/code> machine had a task that was considerably less ambiguous than its name: this was where pages were written by hand in HTML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1995, if you wanted to control the result properly, that was perfectly normal practice.<\/p>\n\n\n\n<h3 id=\"h-from-html-file-to-public-server\" class=\"wp-block-heading\">From HTML File to Public Server<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The process from editorial production to publication was already separated into stages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I had set up an internal FTP area on DVLP. <code>salvatore<\/code> supplied graphics to <code>HTML<\/code>, where the pages were built. Once a website was complete, the entire package was deposited in a dedicated directory on the internal FTP server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At that point, I took over.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I retrieved the website, checked that it was complete and working as expected, and uploaded it to DATA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The editorial team therefore did not publish directly to the production Web server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There was content creation, an exchange area that we would now call staging, technical verification, and finally deployment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We did not call it CI\/CD, and perhaps that was for the best. It worked without a dashboard displaying twelve green badges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When interactivity was needed, I developed CGI programs myself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In March 1996, I installed PHP\/FI, one of the earliest versions of PHP, compiled to run as a CGI program. Later, Postgres95 was also installed on DATA. The database would eventually become known as PostgreSQL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I still do not remember the exact installation date of the database. Archaeology is also about leaving a date unresolved until an artifact turns up that can establish it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In just a few months, this pipeline illustrates a broader transformation of the Web: hand-written static pages, CGI, server-side scripting, and eventually persistent data managed by a database.<\/p>\n\n\n\n<h3 id=\"h-an-oracle-server-because-the-job-kept-changing\" class=\"wp-block-heading\">An Oracle Server Because the Job Kept Changing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>oracolo<\/code>, documented in the archive in 1996, was a Windows NT system used for Oracle experiments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It was not part of the ISP\u2019s Unix core. The partners wanted to build expertise on that platform so the company could also offer consulting services to clients.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The amusing detail is that I knew neither Oracle nor Windows NT.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I taught myself both in about seven to ten days and completed the project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This episode captures what it meant to be the technical lead of a small Internet company in those years: there was no Unix team, database team, security team, networking team, and Web team.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The boundaries of the job moved with the problem.<\/p>\n\n\n\n<h2 id=\"h-a-network-you-could-see\" class=\"wp-block-heading\">A Network You Could See<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The entire system was monitored from my Linux workstation using Scotty\/Tkined, a Tcl\/Tk environment for network management.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The map was not merely a drawing. Through SNMP, I could observe traffic on interfaces, utilization of the Cisco asynchronous lines, node status, and other operational indicators.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An original Tkined map preserved in the backups became the starting point for a significant part of the 2026 reconstruction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By comparing it with Cisco configurations, routing files, DNS data, hardware documents, and firewall policies, I could distinguish what I remembered correctly from what belonged to different periods, as well as identify details that thirty years had inevitably blurred.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Viewed today, the infrastructure seems tiny: a few Sun machines, some Cisco equipment, modem racks, two Ethernet hubs, and an international connection that started at 128 kilobit\/s before reaching 2 megabit\/s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yet that map already contained almost every fundamental problem faced by an ISP: access, routing, AAA, DNS, email, the Web, security, monitoring, provisioning, and content publishing.<\/p>\n\n\n\n<h2 id=\"h-the-repository-one-level-beneath-the-story\" class=\"wp-block-heading\">The Repository: One Level Beneath the Story<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This article deliberately follows processes rather than files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The GitHub repository does the opposite: it lets you open the hood and explore the infrastructure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cisco and Unix configurations, DNS zones, firewall policies, network maps, operational documents, and recovered artifacts are organized so that they can be examined in context, with original materials distinguished from reconstructions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I tried not to turn the repository into a mere collection of old files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Interactive maps allow visitors to explore the POPs, the central network, and individual systems, moving from machines to the configurations that survived.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Those who prefer a more technical path can start with <strong>\u201cBuild an Internet Force POP,\u201d<\/strong> a guide that attempts to answer a concrete question: if you had needed to build an Internet provider in 1995, where would you have started?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The guide begins with preparing a Unix machine and covers routing, modems and access servers, authentication, DNS, email, the Web, security, monitoring, and operational management.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In practice, it follows many of the same processes described in this article, but lets readers open the files and see how things were actually configured.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The archive also helped reconstruct everyday procedures that have now largely disappeared.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Registering a domain, for example, was considerably more complicated than it is today. Italian <code>.it<\/code> domains also faced particularly strict administrative and technical requirements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The repository reconstructs the entire procedure step by step, along with real examples of registrations I carried out at the time for Internet Force.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The repository also contains less infrastructure-focused artifacts: the Welcome Kit for customers, Usenet documents and posts, materials recovered from mailboxes, the source files for the <em>Guide to the Internet and Virtual Reality<\/em>, and other fragments of the era\u2019s technical culture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not because all these things belonged to the same \u201csystem,\u201d but because an ISP was more than routers and daemons. It was also the way people learned, explained, and used those technologies.<\/p>\n\n\n\n<h3 id=\"h-other-layers-of-the-archive\" class=\"wp-block-heading\">Other Layers of the Archive<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The backups from my old Linux workstation also revealed several original email folders.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They contain technical messages and mailing-list discussions, thank-you notes from people who downloaded my <em>Guide to the Internet and Virtual Reality<\/em>, personal exchanges, and the inevitable nerd jokes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The source files for the guide itself also resurfaced, along with other material related to our experiments with the Web and VRML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1995\u201396, virtual reality on the Web seemed like one of the possible directions in which the Internet might evolve: three-dimensional worlds described in VRML and navigable through the browsers and tools available at the time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Looking at the source code today is interesting because it preserves not only what the Internet was, but also some of the ideas we had about what it might become.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same backup also contained material for an article I wrote in 1997, after attending DEFCON V in Las Vegas, one of the early editions of the hacker convention.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It postdates Internet Force\u2019s closure and therefore does not belong to the ISP\u2019s history. But the fact that it survived on the same DAT backup illustrates another feature of digital archaeology: personal archives do not respect the boundaries between companies and projects. They simply accumulate layers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reading those old messages also highlights another seemingly minor difference: email signatures.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the time, signatures were often not standardized corporate blocks. They were small declarations of identity, made up of quotations, mottos, ASCII art, or jokes. Even four lines at the bottom of a message could reveal something about the personality of the person who wrote it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The repository is publicly available here:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/pippocom\/internetforce-1995\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If this article explains what happened when a customer connected, the repository lets you follow the process down to the configuration files and, if you wish, explore how an ISP was actually built in 1995.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It also includes the <em>Build an Internet Force POP<\/em> guide, which walks through the infrastructure step by step. Interactive maps let you explore the overall network, the POP structure, and the details of the central servers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is also a more personal reason for publishing all this material.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Much of what we learned back then came from public RFCs, readable source code, FAQs, mailing lists, and open technical discussions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Making that infrastructure inspectable again, thirty years later, seems like a natural way to give the network back some of the knowledge it gave me.<\/p>\n\n\n\n<h2 id=\"h-what-happened-to-internet-force\" class=\"wp-block-heading\">What Happened to Internet Force?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The company\u2019s history was much shorter than that of some parts of its network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet Force ended its operations prematurely in late 1996. Its partners had concluded that the business was not as profitable as they had expected and decided to close just as the years were approaching when the Internet would begin growing much more rapidly in Italy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the company\u2019s closure did not mean that everything it had built was simply switched off.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I like to think that Internet Force, in its own small way, planted seeds in the areas where it had opened its POPs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bringing a local access point into a town meant installing infrastructure and developing expertise, but it also helped stimulate demand among people and businesses who had previously lacked convenient access to the Internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When Internet Force closed, some of those nodes continued operating independently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Gorgonzola POP continued as Pointest, which was later also mentioned in an Italian edition of the Electronic Frontier Foundation\u2019s <em>Internet Guide<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Pesaro, Pesaro Point continued to grow into a regional ISP. A few years later, its website described a network spanning nine POPs across the Marche region.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These are only two examples, but they make the point at which this story ends less clear-cut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet Force disappeared as a company before it could take part in the coming boom. Some of the POPs it had helped establish, however, continued to grow during that very boom.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The company did not reap those rewards, but some of its seeds had taken root.<\/p>\n\n\n\n<h2 id=\"h-what-can-a-1995-isp-teach-software-developers-today\" class=\"wp-block-heading\">What Can a 1995 ISP Teach Software Developers Today?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Thirty years later, the technologies used by Internet Force may seem rudimentary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yet examining the architecture and operational decisions reveals something interesting: many of the problems we now tackle with cloud platforms, DevOps tools, and automated infrastructure were already present.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Technologies change much faster than the problems they solve.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Network access required authenticating users, managing authorization, and coordinating different systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Today, we talk about Identity and Access Management, identity federation, and Zero Trust. These are far more sophisticated architectures and security models, but they also address needs that providers in the 1990s understood well: knowing who is accessing a system, which resources they can reach, and what privileges they have.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Separating environments did not begin with containers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compiling software on one machine and deploying it to another, minimizing exposed services, and distinguishing development systems from operational ones were all practices that existed long before modern CI\/CD pipelines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Automation has changed radically. The need to control what goes into production has changed much less.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another lesson concerns the network itself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Today, observability often focuses on applications, containers, and service metrics. But for an Internet Service Provider, the network was never a transparent layer. It was an integral part of the system that had to be understood, configured, and diagnosed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The reminder remains relevant: monitoring an application without understanding its network dependencies means observing only part of the picture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is also the role of open standards and inspectable software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Internet grew through interoperable protocols and an ecosystem in which software components could be studied, modified, and integrated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not everything was open source, of course. But the ability to understand how systems worked, rather than treating them exclusively as black boxes, was an essential technical resource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It remains so today, particularly when evaluating technology dependencies, security, and vendor lock-in risks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, these archives remind us of something we risk underestimating:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Technical documentation is part of the infrastructure, even after the infrastructure itself has disappeared.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configurations, source code, scripts, operational procedures, and even errors reveal not only how a system worked, but why particular decisions were made.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Preserving them makes it possible to reconstruct the constraints, compromises, and solutions that would otherwise be lost.<\/p>\n\n\n\n<h2 id=\"h-conclusion-before-the-internet-was-simply-there\" class=\"wp-block-heading\">Conclusion: Before the Internet Was Simply \u201cThere\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It was the opposite: many of the problems were already surprisingly familiar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Separating development from production, reducing the attack surface, centralizing identity, distributing access, monitoring the network, defining explicit policies, and preventing content creators from publishing directly to production systems\u2014these are problems we still solve today, using much more powerful tools and, occasionally, much prettier diagrams.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The difference is that the boundaries were visible back then.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A connection occupied a modem. A POP consisted of a pair of routers and a rack of telephone lines. Email was a process running on a machine you could point at. If DNS failed, you knew which daemon to investigate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And if you wanted to understand the Internet, sooner or later you ended up reading an RFC or a configuration file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why I consider these backups a small form of digital archaeology.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Individually, they are fragments: a route, a zone file, a policy, an FTP directory, the name of a Macintosh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Put back into context, they tell the story of a community of users, an office, an editorial team, and a network that turned analog telephone calls into Internet access every day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Putting traces of an Internet back online\u2014one in which the technical infrastructure and the community building it were much more visibly intertwined\u2014means giving the network back some of the knowledge it once gave me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before the Internet became something that simply \u201cexists,\u201d someone had to build it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One modem, one daemon, and one routing rule at a time.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stratigraphy of an Infrastructure: Reconstructing a 1995 ISP Through Digital Forensics Some time ago, while looking for old material to answer a friend\u2019s question, I stumbled across a few directories on a NAS device I hadn\u2019t opened in nearly thirty years. They contained backups and documentation I had created for Internet Force, the Internet Service&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/\">Read more<\/a><\/p>\n","protected":false},"author":352,"featured_media":36808,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[12],"tags":[38],"collections":[],"class_list":["post-36821","post","type-post","status-publish","format-standard","has-post-thumbnail","category-stories","tag-security-manager","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>The Archaeology of an ISP: How an Internet Provider Really Worked in 1995 - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.It was the opposite: many of the problems were already surprisingly familiar.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995\" \/>\n<meta property=\"og:description\" content=\"The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.It was the opposite: many of the problems were already surprisingly familiar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-22T17:57:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-22T18:05:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marco Iannacone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marco Iannacone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"34 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/\"},\"author\":{\"name\":\"Marco Iannacone\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/b307df6dc7f46ee8df1f1e82d4846ea6\"},\"headline\":\"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995\",\"datePublished\":\"2026-10-22T17:57:41+00:00\",\"dateModified\":\"2026-10-22T18:05:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/\"},\"wordCount\":7464,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Connessione-a-Internet-1995-1.png\",\"keywords\":[\"Security Manager\"],\"articleSection\":[\"Stories\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/\",\"name\":\"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995 - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Connessione-a-Internet-1995-1.png\",\"datePublished\":\"2026-10-22T17:57:41+00:00\",\"dateModified\":\"2026-10-22T18:05:02+00:00\",\"description\":\"The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.It was the opposite: many of the problems were already surprisingly familiar.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Connessione-a-Internet-1995-1.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Connessione-a-Internet-1995-1.png\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dev Life\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Stories\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/stories\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/b307df6dc7f46ee8df1f1e82d4846ea6\",\"name\":\"Marco Iannacone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/iannacone-100x100.jpg\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/iannacone-100x100.jpg\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/iannacone-100x100.jpg\",\"caption\":\"Marco Iannacone\"},\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/marco-iannacone\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995 - Codemotion Magazine","description":"The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.It was the opposite: many of the problems were already surprisingly familiar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/","og_locale":"en_US","og_type":"article","og_title":"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995","og_description":"The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.It was the opposite: many of the problems were already surprisingly familiar.","og_url":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2026-10-22T17:57:41+00:00","article_modified_time":"2026-10-22T18:05:02+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png","type":"image\/png"}],"author":"Marco Iannacone","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Marco Iannacone","Est. reading time":"34 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/"},"author":{"name":"Marco Iannacone","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/b307df6dc7f46ee8df1f1e82d4846ea6"},"headline":"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995","datePublished":"2026-10-22T17:57:41+00:00","dateModified":"2026-10-22T18:05:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/"},"wordCount":7464,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png","keywords":["Security Manager"],"articleSection":["Stories"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/","url":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/","name":"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995 - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png","datePublished":"2026-10-22T17:57:41+00:00","dateModified":"2026-10-22T18:05:02+00:00","description":"The thing that struck me most during this reconstruction was not how primitive the technologies of 1995 were.It was the opposite: many of the problems were already surprisingly familiar.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/the-archaeology-of-an-isp-how-an-internet-provider-really-worked-in-1995\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Dev Life","item":"https:\/\/www.codemotion.com\/magazine\/dev-life\/"},{"@type":"ListItem","position":3,"name":"Stories","item":"https:\/\/www.codemotion.com\/magazine\/dev-life\/stories\/"},{"@type":"ListItem","position":4,"name":"The Archaeology of an ISP: How an Internet Provider Really Worked in 1995"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/b307df6dc7f46ee8df1f1e82d4846ea6","name":"Marco Iannacone","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/iannacone-100x100.jpg","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/iannacone-100x100.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/iannacone-100x100.jpg","caption":"Marco Iannacone"},"url":"https:\/\/www.codemotion.com\/magazine\/author\/marco-iannacone\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-600x600.png","author_info":{"display_name":"Marco Iannacone","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/marco-iannacone\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png",1672,941,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-300x169.png",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-768x432.png",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-1024x576.png",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-1536x864.png",1536,864,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1.png",1672,941,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-896x504.png",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/Connessione-a-Internet-1995-1-600x600.png",600,600,true]},"uagb_author_info":{"display_name":"Marco Iannacone","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/marco-iannacone\/"},"uagb_comment_info":0,"uagb_excerpt":"Stratigraphy of an Infrastructure: Reconstructing a 1995 ISP Through Digital Forensics Some time ago, while looking for old material to answer a friend\u2019s question, I stumbled across a few directories on a NAS device I hadn\u2019t opened in nearly thirty years. They contained backups and documentation I had created for Internet Force, the Internet Service&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/352"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=36821"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36821\/revisions"}],"predecessor-version":[{"id":36825,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36821\/revisions\/36825"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/36808"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=36821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=36821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=36821"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=36821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}