• Informacje
  • Historia
  • Atrakcje
  • Noclegi
  • Kalendarz imprez
  • Łagowski Park Krajobrazowy

  • Galeria
  • Filmy
  • Księga gości
  • Ogłoszenia
  • Czateria
  • Kontakt
  • Linki

  • Parafot.pl


  • Zrób to sam
  • Języki skryptowe
  • Data dodania: 2023-06-9

    Data modyfikacji: 2023-06-10

    Czy kiedykolwiek zastanawiałeś się, jak urządzenia, takie jak komputer, tablet czy smartfon, łączą się z siecią Internet? Magia, która za tym stoi, nazywa się Dynamic Host Configuration Protocol, czyli DHCP. Ale nie martw się, nie jest to tak skomplikowane, jak brzmi.
    Dołącz do nas w podróży do serca sieci komputerowych!

    Jak działa DHCP

    Gdy urządzenie jest podłączane do sieci, DHCP przechodzi przez cztery podstawowe kroki: - Discovery (Odkrywanie) - Klient wysyła wiadomość DHCPDISCOVER do sieci, aby zlokalizować dostępne serwery DHCP.
    - Offer (Oferta) - Serwery DHCP, które otrzymały wiadomość DHCPDISCOVER, odpowiadają na nią, wysyłając wiadomość DHCPOFFER do klienta. Ta wiadomość zawiera ofertę przydzielenia adresu IP klientowi.
    - Request (Żądanie) - Klient wybiera jedną z otrzymanych ofert (jeśli jest ich więcej niż jedna) i wysyła wiadomość DHCPREQUEST do serwera, który złożył tę ofertę. Wiadomość ta informuje serwer, że klient chce zaakceptować ofertę.
    - Acknowledgment (Potwierdzenie) - Serwer odbiera żądanie klienta

    Ten proces, znany jako "DORA", pomaga w automatycznym przydzielaniu adresów IP i umożliwia urządzeniu bezproblemowe podłączenie do sieci.

    Serwer DHCP

    Zadaniem serwera DHCP jest zarządzanie pulą dostępnych adresów IP i udzielanie ich urządzeniom w sieci. Gdy nowe urządzenie dołącza do sieci, serwer DHCP decyduje, jakie adresy IP mu przydzielić, i "pamięta" te decyzje, aby nie powstały konflikty adresów.

    Własny serwer DHCP


    DHCP - to protokół dynamicznej konfiguracji hosta ang.(Dynamic Host Configuration Protocol).
    W najprostszej postaci serwer DHCP po podłączeniu komputera do sieci przypisze mu adres IP.
    Załóżmy, że mamy mniej więcej taką konfigurację w domu:
    Jeżeli zdecydujemy się na automatyczną konfigurację z naszego serwera DHCP musimy pamiętać, że jeżeli nasz serwer będzie wyłączony nie otrzymamy adresu IP.
    A więc zaczynamy musimy zainstalować pakiet
     
      [rikos@dhcp]$ #Na dystrybucji fedora:
      [rikos@dhcp]$ sudo dnf install dhcp.x86_64
      lub na starszej wersji:
      [rikos@dhcp]$ sudo yum install dhcp.x86_64
      [rikos@dhcp]$ #Na dystrybucji debian:
      [rikos@dhcp]$ sudo apt-get install dhcp.x86_64
      [rikos@dhcp]$ #Na dystrybucji OpenBSD: 
      [rikos@dhcp]$ pkg_add dhcpcd
    
    Plik konfiguracyjny znajdziemy w /etc/dhcpd.conf
    W najprostrzej postaci nasz plik konfiguracyjny będzie wyglądał mniej więcej tak:
    option  domain-name-servers 192.168.1.200, 8.8.8.8;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
    	option routers 192.168.1.200;
    	range 192.168.1.50 192.168.1.70;
    }
    
    W postaci, którą przedstawiłem powyżej nasza konfiguracja podaje każdemu urządzeniu, które łączy się z naszym dhcp wszystkie parametry, które potrzebuje do połączenia z internetem.
    Możemy jednak użyć więcej opcji aby usprawnić działanie i późniejszą administrację naszą siecią, poniżej przedstawiam przykład:
    option domain-name "dom";
    option  domain-nme-servers 192.168.1.200;
    option  domain-name-servers 192.168.1.200, 8.8.8.8;
    option  ntp-servers 192.168.1.200;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
    	option routers 192.168.1.200;
    	range 192.168.1.94 192.168.1.95;
    	next-server 192.168.1.200;
    
    	host drukarka {
    		hardware ethernet 01:23:45:67:89:ab;
    		fixed-address 192.168.1.2;
    	}
    
    	host telefon {
    		hardware ethernet 00:00:00:00:00:ee;
    		fixed-address 192.168.1.3;
    	}
    
    	host telewizor {
    		hardware ethernet 11:11:11:11:11:00;
    		fixed-address 192.168.1.4;
    	}
    
    	host laptop {
    		hardware ethernet 22:22:22:22:22:22;
    		fixed-address 192.168.1.5;
    	}
    }
    
    Krótki komentarz do przedstawionej konfiguracji:
    option domain-name "dom"; - tutaj przekazujemy urządzeniom nazwę naszej domeny,
    option domain-nme-servers 192.168.1.200, 8.8.8.8; - tutaj serwer dhcp informuje jakie serwery nazw (DNS czyli Domain Name Server) są dostępne dla naszej sieci.
    option ntp-servers 192.168.1.200; - nasz serwer dhcp również może informować o dostępnych serwerach czasu (NTP czyli Networ Time Protocol)
    option routers - tutaj serwer wskazuje gdzie jest nasz "Gateway" czyli wyjście na świat


    Wysyłany pakiet przez klienta powinien wyglądać mniej więcej w taki sposób:
    #define DHCPDISCOVER 1
    #define DHCP_HTYPE_ETHER 1
    #define DHCP_HLEN_ETHER 6
    
    struct dhcp_packet {
        uint8_t op;
        uint8_t htype;
        uint8_t hlen;
        uint8_t hops;
        uint32_t xid;
        uint16_t secs;
        uint16_t flags;
        uint32_t ciaddr;
        uint32_t yiaddr;
        uint32_t siaddr;
        uint32_t giaddr;
        uint8_t chaddr[16];
        uint8_t sname[64];
        uint8_t file[128];
        uint32_t magic_cookie;
        uint8_t options[312];
    };
    
    op: Typ operacji, DHCPDISCOVER to wartość 1, co oznacza, że jest to zapytanie od klienta.
    htype: Typ sprzętu sieciowego, dla Ethernetu wartość to 1.
    hlen: Długość adresu sprzętowego, dla Ethernetu to jest 6 (6 bajtów dla adresu MAC).
    hops: Liczba skoków, które pakiet musiał wykonać do osiągnięcia serwera DHCP lub klienta.
    xid: To jest "Transaction ID" - unikalny identyfikator transakcji, który jest wykorzystywany do kojarzenia zapytań i odpowiedzi DHCP.
    secs: Liczba sekund, które upłynęły od momentu, gdy klient rozpoczął próbę uzyskania lub odnowienia adresu IP.
    flags: Flaga broadcast, która mówi serwerowi DHCP, czy powinien odpowiadać na adres IP, który jest nadawany na całą sieć, czy powinien próbować przesłać odpowiedź bezpośrednio do klienta.
    ciaddr: Adres IP klienta (jeśli klient ma już adres IP).
    yiaddr: 'Your' adres IP - adres IP, który serwer DHCP oferuje klientowi.
    siaddr: Adres IP serwera DHCP.
    giaddr: Adres IP bramy, przez którą przekazywane są wiadomości DHCP, jeśli są przekazywane przez router.
    chaddr: Adres sprzętowy klienta (adres MAC).
    sname: Opcjonalna nazwa serwera, można ją zignorować.
    file: Opcjonalna nazwa pliku rozruchowego, można ją zignorować.
    magic_cookie: Jest to stała wartość, która zawsze jest taka sama w pakietach DHCP, jest to 0x63825363.
    options: To pole przechowuje opcje DHCP, które zawierają dodatkowe informacje dla klienta. Na przykład, adresy serwerów DNS, domyślna brama itp.


    powrót