Poprawna odpowiedź to port 68, bo dokładnie tak działa standardowy mechanizm DHCP opisany w RFC 2131. W praktyce jest tak: serwer DHCP nasłuchuje na porcie UDP 67, a klient DHCP (czyli zwykły komputer, laptop, drukarka sieciowa itp.) wysyła i odbiera swoje komunikaty DHCP właśnie z portu UDP 68. Dlatego mówi się, że „komputer kliencki korzysta z portu 68”. Ramki DHCP (DISCOVER, REQUEST itp.) idą z portu 68 klienta na port 67 serwera. To rozdzielenie portów ułatwia działanie mechanizmów sieciowych, np. relay agentów (DHCP relay) i filtrów w firewallach. W realnej konfiguracji sieci, gdy coś nie działa z przydzielaniem adresów IP, bardzo często sprawdza się, czy na trasie nie są zablokowane porty UDP 67/68. Dobrym nawykiem jest pamiętać: 67 – serwer, 68 – klient. Moim zdaniem warto to po prostu wbić w głowę, bo pojawia się w testach, ale też w codziennej pracy administratora. Przy analizie ruchu w Wiresharku od razu widać pakiety DHCP po tych portach i można szybko odróżnić, co wysyła klient, a co odpowiada serwer. To też pomaga zrozumieć, czemu komputer bez adresu IP (jeszcze w stanie 0.0.0.0) potrafi dogadać się z serwerem w innej podsieci – korzysta z broadcastów na konkretnych portach UDP i nie potrzebuje na tym etapie pełnej konfiguracji sieci. Dobra praktyka w firmowych zaporach to zawsze zezwolenie na UDP 67/68 w sieciach, gdzie ma działać automatyczna konfiguracja IP, inaczej DHCP po prostu nie ruszy.
W tym pytaniu łatwo się pomylić, bo kilka z podanych portów kojarzy się z siecią i protokołami, ale tylko jeden z nich jest faktycznie używany przez klienta DHCP. W przypadku DHCP trzeba zapamiętać, że mamy parę portów UDP: 67 dla serwera i 68 dla klienta. Jeśli ktoś wybiera inne wartości, to zwykle wynika to z mieszania pojęć z innymi popularnymi usługami. Port 53 to klasyczny port protokołu DNS, czyli systemu nazw domenowych. On odpowiada za tłumaczenie nazw typu „example.com” na adresy IP. Komputer bardzo często po uzyskaniu adresu z DHCP od razu korzysta z DNS, ale to jest już kolejny krok, po udanym przydzieleniu adresu IP. Sam proces negocjacji DHCP (DISCOVER, OFFER, REQUEST, ACK) nie używa portu 53, więc wskazanie go jako portu klienta DHCP jest po prostu niezgodne ze standardem. Podobnie port 80 jest mocno znany, bo to domyślny port HTTP, czyli zwykłej przeglądarkowej komunikacji z serwerem WWW. Wiele osób intuicyjnie wybiera go, bo „kojarzy się z internetem”, ale DHCP działa dużo niżej w stosie usług – zanim jeszcze przeglądarka będzie miała w ogóle jakikolwiek adres IP do komunikacji. HTTP nie ma nic wspólnego z mechanizmem przydzielania adresu IP, więc port 80 nie bierze udziału w wymianie pakietów DHCP. Czasem pojawia się też pomyłka między portem 67 a 68. Oba są związane z DHCP, ale pełnią inne role. Serwer DHCP nasłuchuje na porcie 67, natomiast klient korzysta z portu 68. Jeśli ktoś zapamięta tylko „DHCP to 67”, to potem błędnie przypisuje ten port zarówno do serwera, jak i do klienta. W praktyce ma to znaczenie przy konfiguracji firewalli, routerów czy analizie ruchu w Wiresharku – trzeba dokładnie wiedzieć, który port należy otworzyć dla serwera, a który dla stacji roboczych. Dobra praktyka to kojarzenie tej pary jako zestawu: 67 – serwer, 68 – klient, a nie wrzucanie wszystkiego do jednego worka z „jakimiś portami sieciowymi”.