Use DNS to manage access to a service that may not have a static IP address.
Budget: ₹600 – ₹1,500 INR
Use DNS to manage access to a service that may not have a static IP address.
Setup a DNS server in a linux machine. This machine should have a static IP
address. If it has a dynamic address, do not reboot for the entire duration of
the experiments in this assignment. You will need to make sure DNS requests
are allowed by the firewall. You can test by using the "dig" command.
2. Setup a linux machine (web server machine) that does not have a static IP
address. This means the server will have a random IPv4 address assigned to
it every time it boots up. You can run a web server on this machine to verify it
is working correctly. You will need to make sure http traffic is allow by the
firewall.
3. Pick a domain and hostname and put a record for that host+domain in your
DNS server where IP address is the IP address of the web server machine.
4. Configure your client machine to use the DNS server machine as your name
resolver.
5. On the DNS server machine, run a simple web app that accepts a GET API
call to update the A record and executes an update on the DNS server to
update the A record. Do not forget to enable this API traffic by the firewall.
6. When the web server machine boots up, the web server machine needs to
run a script that reads its own IP address that was assigned to it when it boots
up and calls the address update API runing in the DNS server machine to
update the A record. Make sure the script is working properly before
configuring to run it at boot time.
7. Access the web page on the web server machine using the host+domain on a
browser to confirm it is working after each reboot of the web server even
though it has a different IP address each time.
8. Write a Python script that makes a GET request every second to the web
server machine using the domain+hostname in the URL. Then, you can
manually or automatically reboot the linux server with the web server several
times. Use print statement or logging to collect information about the
reachability of the web page on the web server machine.
9. Use the data collected above to plot at least one graph. Describe what you
observed and learned about how DNS works. Also describe how the solution
you developed is different from duckdns and dyndns. Your submission should
include all the code you wrote, instruction to run them, and any screenshots
as relevant.
Setup a DNS server in a linux machine. This machine should have a static IP
address. If it has a dynamic address, do not reboot for the entire duration of
the experiments in this assignment. You will need to make sure DNS requests
are allowed by the firewall. You can test by using the "dig" command.
2. Setup a linux machine (web server machine) that does not have a static IP
address. This means the server will have a random IPv4 address assigned to
it every time it boots up. You can run a web server on this machine to verify it
is working correctly. You will need to make sure http traffic is allow by the
firewall.
3. Pick a domain and hostname and put a record for that host+domain in your
DNS server where IP address is the IP address of the web server machine.
4. Configure your client machine to use the DNS server machine as your name
resolver.
5. On the DNS server machine, run a simple web app that accepts a GET API
call to update the A record and executes an update on the DNS server to
update the A record. Do not forget to enable this API traffic by the firewall.
6. When the web server machine boots up, the web server machine needs to
run a script that reads its own IP address that was assigned to it when it boots
up and calls the address update API runing in the DNS server machine to
update the A record. Make sure the script is working properly before
configuring to run it at boot time.
7. Access the web page on the web server machine using the host+domain on a
browser to confirm it is working after each reboot of the web server even
though it has a different IP address each time.
8. Write a Python script that makes a GET request every second to the web
server machine using the domain+hostname in the URL. Then, you can
manually or automatically reboot the linux server with the web server several
times. Use print statement or logging to collect information about the
reachability of the web page on the web server machine.
9. Use the data collected above to plot at least one graph. Describe what you
observed and learned about how DNS works. Also describe how the solution
you developed is different from duckdns and dyndns. Your submission should
include all the code you wrote, instruction to run them, and any screenshots
as relevant.