I have a CS degree, but my networking knowledge is somewhat naïve and limited. As a learning experiment I'd like to set up a small but functioning model of the internet. I'm envisioning this as 3 simulated internet service providers linked together like this:
Each internet service provider has been allotted an IPV6 address range to assign to its subscribers. Each ISP also operates a DNS server for its subscribers. The DNS servers are assigned static IP addresses. The ISPs are all connected to each other as well as an extra switch (labeled as "Hub" because I didn't know the difference when I made this graphic) for redundancy.
The clients in this diagram (Client1, Client2, & Client3) represent individual devices which are directly connected to their internet service providers (IE: home PCs plugged directly into cable modems). The clients all have IP addresses which were assigned dynamically by their ISPs via DHCP.
(foo.com, bar.com, & baz.com) represent corporate networks with their own proxy, public, private, DHCP, & DNS servers. The website for each domain should be hosted on one of its public servers and accessible by clients from any of the 3 ISPs. Each corporation has a range of 7 IP addresses to be used. The idea here is to distribute the load to their websites across these 7 addresses. Each DNS server will rotate requests for these domains' IP addresses in a round-robin fashion (IE: if a client pings foo.com it'll return a different one of the 7 possible addresses each time).
I can write a basic "Hello World" website in HTML and host 7 copies of it at each domain using Apache Webserver. I can also use a browser on each client to view the websites at each domain.
Where I start to struggle is with setting up the ISPs and DNS servers. That leaves me with the following questions:
- Do ISPs just use the same old forwarding tables to talk to each other that routers/switches would use on a local network? Does it handle physically broken network links the same way?
- Do ISPs assign global IP addresses either statically or via DHCP the same way that routers or gateway machines do on local networks?
- Do ISPs have some sort of privileged relationship with DNS servers or are they restricted to the same queries/updates as everybody else?
- Can the ISPs be single machines or do they require separate parts?
- How do ISPs typically load balance themselves?
- How should the subscribers be physically connected to the ISPs? Will ethernet cables and a switch suffice?
- How should the ISPs be connected to each other?
- How should the ISPs be connected to the central switch?
- Are modems only necessary for converting back and forth between ethernet and fiber/cable/phonelines?
- Does the IANA use some sort of special software for granting IP blocks to the various ISPs? In the absence of some central authority, how would these simulated ISPs go about claiming address blocks as their own?
- I probably don't have enough physical machines to simulate this entire thing. Which part(s) can be handled by virtual machines without defeating the purpose of this experiment or over-complicating things?
- What obvious things am I forgetting here?