Start Early
Name | OS | Role | IP |
---|---|---|---|
Flank | WServer2016 | DHCP Server, Relay | .2 |
Roger | W7 | DHCP Client | .12, reserved |
Russet | CentOS | DHCP Client | dynamic |
Name | OS | Role | IP |
---|---|---|---|
Yukon | CentOS | DHCP Server | .2 |
Gold | CentOS | DHCP Server Secondary | .200 |
sirloin | WServer2012 | DHCP Client | dynamic |
Russet | CentOS | DHCP Client | .48, reserved |
Save a copy of the dhcpd.conf file for report question 4. The instructions do not mention this.
test | client | server | pcap |
---|---|---|---|
1 | WS2012 (sirloin) | WS2016 (Flank) | windowsunderwindows |
2 | CentOS (Russet) | WS2016 (Flank) | linuxunderwindows |
3 | WS2012 (sirloin) | CentOS (Yukon) | windowsunderlinux |
4 | CentOS (Russet) | CentOS (Yukon) | linuxunderlinux |
Test | Client DhcpConnForceBroadcastFlag | Server IgnoreBroadcastFlag | pcap |
---|---|---|---|
4 | 1 - Broadcast | 0 | 3.3.1 |
3 | 1 | 1 | 3.3.2 |
2 | 0 - Unicast | 1 | 3.3.3 |
1 | 0 | 0 | 3.3.4 |
Recording bootp packets for 2 minutes to see the renewal process
Release and renew under windows DHCP server.
See table in 4.2 for packet captures
Release and renew under linux DHCP server.
Remember to clear arp on the server before renew
test | client | server | pcap |
---|---|---|---|
1 | W7 (Roger) | WServer (Flank) | windowsunderwindows |
2 | CentOS (Russet) | WServer (Flank) | linuxunderwindows |
3 | WS2012 (sirloin) | CentOS (Yukon) | windowsunderlinux |
4 | CentOS (Russet) | CentOS (Yukon) | linuxunderlinux |
dhclient.leases.txt from Russet
windows.leases.txt from B-Sirloin
The command here is incorrect. Instead of:
cp /libsystemd/system/dhcrelay.service /etc/system/system
It should be:
cp /lib/systemd/system/dhcrelay.service /etc/systemd/system
The command here is incorrect. Instead of:
vim /etc/system/systemdhcrelay.service
It should be:
vim /etc/systemd/system/dhcrelay.service
pcap on Yukon, as linuxrelay
They don’t tell you until the end of 5.2, but you also need to dump dhclient.leases here to prove the ip came from the other server.
dhclient.leases.relay.txt on Russet
You need to setup the Windows relay for activity 6, but otherwise don’t bother with captures here, the report doesn’t ask for them.
The Beginning of the End
OS | DHCP Role | Name |
---|---|---|
Windows | RELAY | flank |
Windows | Client | sirloin |
OS | DHCP Role | Name |
---|---|---|
Linux | PRIMARY | Yukon |
Linux | SECONDARY | Gold |
Linux | Client | Russet |
Remember to Change the IP addresses to match your bench.
# dhcpd.conf
# option definitions common to all supported networks
option domain-name "networkA.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
# Configure Failover
# I named it alaskan to fit with the potato theme
failover peer "alaskan" {
primary; # This is the Primary server
address 10.150.12.2; # This server's IP
port 321; # The port we use to talk to Secondary
peer address 10.150.12.200; # SECONDARY's IP
peer port 321; # port Secondary uses to communicate with us
max-response-delay 60; # I'm not sure from here down
max-unacked-updates 10;
mclt 3600;
split 128;
load balance max seconds 3;
}
# How long do leases last for?
default-lease-time 120;
max-lease-time 120;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# NOTE - Copy paste all lines below here into SECONDARY where it says to.
# Network B subnet
subnet 10.150.12.0 netmask 255.255.255.0 {
pool{
failover peer "alaskan";
# Note: remove "dynamic-bootp"
range 10.150.12.40 10.150.12.42;
range 10.150.12.46 10.150.12.60;
}
option broadcast-address 10.150.12.255;
option routers 10.150.12.254;
}
# Network A subnet
subnet 10.150.11.0 netmask 255.255.255.0 {
pool{
failover peer "alaskan";
range 10.150.11.80 10.150.11.90;
}
option broadcast-address 10.150.11.255;
option routers 10.150.11.254;
}
# Reservation for 48
host Russet {
hardware ethernet 00:0c:29:c7:60:58;
fixed-address 10.150.12.48;
}
# dhcpd.conf
# option definitions common to all supported networks...
option domain-name "networkB.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
# Secondary
failover peer "alaskan" {
secondary; # This is the backup
address 10.150.12.200;
port 321;
peer address 10.150.12.2;
peer port 321;
max-response-delay 60;
max-unacked-updates 10;
load balance max seconds 3;
# NOTE: There are lines in PRIMARY that aren't here.
# They cannot be here. This is correct.
}
default-lease-time 120;
max-lease-time 120;
# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# NOTE
# Here, copy/paste the EXACT SAME subnet and host delcarations as in PRIMARY.
firewall-cmd --zone=public --add-port=321/udp –-permanent
firewall-cmd --zone=public --add-port=321/tcp –-permanent
This allows traffic through the port, but the OS might not allow DHCPD to bind to the port. SElinux is the likely culprit.
This sets SELinux to permissive mode, which only logs things, no blocking.
setenforce 0
For me, this wasn’t enough.
tail -f /var/log/messages
The above command shows the system log in real time. SELinux, while permissive, was still denying DHCPD access to port 321.
vim /etc/selinux/config
and replace enforcing
with disabled
. Use :wq
and then:
shutdown -r now
Refer to lab1 - secret commands to make CentOS less terrible to turn networking back on.
Remember to do this on both VMs.
Neither the report nor the Instructions provide what specifically needs to be done.
Name | Meaning —|— PRIMARY | CentOS Primary dhcp server on network B SECONDARY | CentOS Secondary dhcp server on network B RELAY | windows server 2k16 dhcp relay agent on network A WC | Windows client on network A LC | Linux client on network B
The windows DHCP relay is configured to send to PRIMARY. Add a second destination, SECONDARY.
If 10a hasn’t told you to ‘run the loop’ yet, goto 10a.
Dump ipconfig /all on WC to {A |
B | C}.wc.ipall.txt |
save wireshark files as {A | B | C}.{RELAY | PRIMARY}.wc.pcap |
/var/lib/dhclient/dhclient.leases
on LCsave wireshark files as {A | B | C}.{RELAY | PRIMARY}.lc.pcap |
echo > /var/lib/dhclient/dhclient.leases
God help us
Event | Action | Time Spent | Running Total |
---|---|---|---|
Class Lab 1 | Got signoff 1 | 2 hours | 2 hours |
Class Lab 2 | Not enough to get signoff 2 | 2 hours | 4 hours |
Oct 16th | up to act6, TA MIA though. | 6 hours | 10 hours |
Oct 18th | saving and restoring VMS killed DHCPD. Fixed that. | 2 hours | 12 hours |
Oct18th | Activity 6 | 2 Hours | 14 Hours |
Having your caffeine wear off in the middle of a work session is just a bad time.
Haven’t started yet, I’m guessing this will take 4 to 6 hours.