I had to write this for TAFE so I figured seeing as I put all the effort into writing it, I might as well share it too. Feel free to correct anything that's wrong, I'm just going off what I know off the top of my head.
Share your knowledge it says... well, here we go!
Let me start by saying that I've mainly worked with reserved, private IPv4, addresses (192.168.x.x, 172.x.x.x and 10.x.x.x type addresses). The ranges for these address ranges are as follows:
10.0.0.0 to 10.255.255.255
172.16.0.0 to 172.31.255.255
192.168.0.0 to 192.168.255.255
Source: http://tools.ietf.org/html/rfc1597
I've only just learnt that after a quick Google search so on to what I do know already. IP addresses can either be static (non-changing) or dynamic (changing) and apply to any computer with the TCP/IP protocol installed, regardless of the operating system installed. Dynamic Host Configuration Protocol (DHCP) servers assign dynamic IP addresses to clients connected to the network.
Internet Connection Addresses
Most higher-end, home internet connections these days have a static IP address assigned by the Internet Service Provider (ISP). There are still some (like dialup, plans designed for light usage and older plans) that use dynamic IP addresses.
Microsoft Windows Workstation to Microsoft Windows Workstation
My first experience with assigning IP addresses was with static IP addresses. It involved a 'network' of 2 home computers with a crossover cable. This was shortly after Microsoft Windows XP was released so one machine had that installed (Professional) while the other had Microsoft Windows 2000 Professional. At that point I used the network wizard built-in to Microsoft Windows XP but had no success with it. I learnt the private IP address ranges from the settings the wizard setup then went and set them manually. It was not until during the process of messing around with manually assigned IP addresses that I realised nework protocols had to match on both computers. Computer 1's IP address was 192.168.0.1 and Computer 2's IP address was 192.168.0.2.
At a later stage I went back to look at the built-in networking wizard for internet connection sharing and actually got it working. This automatically assigns the computer sharing the internet connection a static IP address of 192.168.0.1 and starts a DHCP server service which sets the IP addresses of any other computers connected to the network. By this stage I had added another 2 computers to the network by means through a switch[ing hub].
Linux Gateway with Microsoft Windows Clients
As my network grew along with my interests in more advanced projects, I needed to reboot my computer more often so I could no longer use it to reliably share the internet connection (dialup at this stage). I had an older computer not doing anything and had heard of Linux distrobutions such as SmoothWall (http://www.smoothwall.org) and IPCop (http://www.ipcop.org) so decided to give it a go. These Linux distrobutions have a built-in DHCP server which took over the role of assigning addresses on my network. The IP address of the Linux Gateway was dynamic just as the computer sharing the internet connection had. This setup worked well and stayed on until broadband was acquired.
Router with Microsoft Windows Clients
When broadband replaced dialup a router was added. Routers for home networks have a built-in DHCP server (most commonly assigning IP addresses in the 192.168.1.x or 10.0.0.x ranges) so this removed the need for my Linux Gateway which was scrapped.
Dynamically Assigned IP Addresses
Now that there was an 'always-on' internet connection available, experimentation for other services (such as an in-house web server) was now possible. This required port-forwarding to be setup. Port-forwarding works by taking incoming requests from the internet and passing them on to an assigned IP address. This requires a static IP address as having a changing address would mean that incoming requests would be sent to the wrong place. DHCP Servers can have static dynamically assigned IP addresses meaning that the one network device will always receive the same IP address. These IP addresses are assigned by the Media Access Control (MAC) address of the device. These addresses are hard-coded into network hardware although they can be replicated easily. No 2 network devices will have the same MAC address.
Microsoft Windows Server with Microsoft Windows Clients
With the continuation of the growth of my network, a server powered by Microsoft Windows Server was added. This included an Active Directory structure which requires the DNS (Domain Name Server) address to point to the Microsoft Windows Server. Home routers often do not allow you to change the DNS address options for clients that connect to it as mine didn't so I activated the DHCP server service. This allows assigning of many other advanced options to be automatically assigned such as network time servers. If the DNS server is not set then the clients logging on to the Active Directory will have a whole host of problems. This includes (but is not limited to) extremely long logon times and group policy settings not being applied.
Non-Windows Server with Assorted Clients
Eventually my interest moved on to alternative products to Microsoft Windows. I started playing with Linux and BSD distributions. I settled on OpenBSD which has DHCP Daemon (DHCPD) like many other unix-based operating systems however it is not activated by default. DHCPD on OpenBSD is setup by a configuration file (/etc/dhcpd.conf). This allows for many options to be set too but is harder to configure than a Microsoft Windows server. The advantage to using this over a Microsoft Windows system is that it is not only much more stable but it seems to work much faster. Waiting for IP address assignment under a Microsoft Windows server usually took about half a minute (approx) whereas this setup takes a few seconds (also approx).
PXE Booting
Pre-eXecution Environment (PXE) booting is when a computer boots from a network server instead of a local drive. This usually involves Trivial File Transfer Protocol (TFTP) and BOOTP for which the settings are set by the DHCP server. This will be something that I will be looking at in the near future and was another one of the reasons that I changed to a unix-based OS running DHCPD as I want to boot Linux from my server for hard disk drive imaging or other tasks.
That's getting a bit off-topic now so that's all from me. Thoughts, comments and questions are welcome!

No comments:
Post a Comment