Servidor Linux DHCP

Instal·lació del servidor

  • A sistemes de la família Debian es pot instal·lar el servidor DHCP del ISC des dels repositoris utilitzant l'ordre apt-get: sudo apt-get install dhcp3-server
  • Durante el procés d'instal·lació ens pot sortir aquesta finestra:
  • Ens indica que no es authoritative (autoritari) per defecte.
  • Per tal que el servidor tingui aquest comportament cal utilitzar la directiva authoritative.
  • IMPORTANT: Si no hi han més servidors de DHCP a la xarxa cal posar authoritative en la configuració de DHCP.

Script inici/aturada servidor

  • sudo /etc/init.d/dhcp3-server start|stop|restart

Paràmetres d'execució

  • En sistemes d'inicialització basats en System V, es poden especificar paràmetres extres d'execució del servidor als fitxes de la carpeta /etc/default com dhcp3-server.
  • Un exemple seria la directiva INTERFACES on s'especifica la interface que ha d'escoltar les peticions i subministrar les IPs.
  • Si la deixem INTERFACES="" li estem indicant que escolti peticions provinents de totes les interfícies de xarxa.

Consultar l'estat d'execució del servidor DHCP

  • Am la comanda ps aux | grep dhcpd

Fitxers de log

  • Podeu consultar el fitxer amb la comanda tail -n 100 /var/log/syslog | grep dhcpd

Configuració Servidor

  • Instal·lat el programari del servidor, s'haurà de configurar dos archius importants: dhcpd.conf, i el dhcpd.leases.
  • El primer serveix per configurar el servidor com es vulgui, mentre que el segon es una base de dades creada per el servidor, amb les asignacions de IP que es van realitzant.
  • Ens permet verificar la activitat del servidor i permet portar el compte de les IPs que va donant als diferents clients, per conservar-les en cas de caiguda.

Fitxer dhcpd.conf

  • La ubicació del fitxer, com no pot ser d'altra manera, és a /etc/dhcp3/dhcpd.conf.
  • Directives de configuració:
    • authoritative: suposa que la configuració correcta per a la xarxa és la definida en el servidor DHCP i tratarà de reassignar dades als clients mal configurats. Aquest paràmetre pot ser global o assignat a una declaració de subxarxa. Els canvis realitzats en un servidor marcat com authoritative tenen una ràpida propagació en la subxarxa ja que es reconfigura qualsevol client que dispose de l'antiga configuració.
    • one-lease-per-client on: quan està a on i un client sol·licita una assignació, el servidor allibera automàticament qualsevol altra assignació que tingui el client. Se suposa que si el client fa una sol·licitud és perquè ha oblidat que en tinguera alguna, es a dir, té un sol interface de xarxa. Si no es dona aquesta situació en els clients hi ha que anar amb precaució en usar aquest paràmetre.
    • server-identifier: indica el node que emmagatzema el servei DHCP. Sols s'ha d'usar quan el node tingui més d'una IP assignada a la interface.
    • default-lease-time: indica el temps d'assignació en segons.
      • 600 - 10 minuts
      • 7200 - 2 hores
      • 86400 - 1 dia
      • 604800 - 1 setmana
      • 2592000 - 1 mes
      • 31104000 - 1 any
      • 62208000 - 2 anys
    • max-lease-time: indica el temps màxim d'assignació en segons. Es pot usar per a evitar que els clients agafen una IP indefinidament.
    • ddns-updates on: activa l'actualització DNS amb valors assignats mitjançant DHCP.
    • ddns-domainname: defineix el domini sobre el que s'actualitzen els DNS
    • ddns-update-style: Els valors poden ser none o interim. Si no hi ha actualització DNS automàtica dels valors DHCP s'usa none i si hi ha s'usa interim.
    • option subnet-mask: defineix la màscara general de la xarxa que anem a utilitzar.
    • option broadcast-address: defineix l'adreça de difusió de la xarxa.
    • option routers: definexi el gateway de la xarxa.
    • option domain-name-servers: defineix l'adreça del servidor DNS de la xarxa.
    • option domain-name: defineix el nom del domini DNS que s'afegeix com a sufix als noms de host.
    • option netbios-name-servers: defineix l'adreça del servidor WINS per a NetBIOS.
    • option ntp-servers: defineix l'adreça del servidor de NTP.
    • option netbios-node-type: definex el tipus de node NetBIOS. Segons la taula:
      • 1: b-node
      • 2: p-node
      • 4: m-node
      • 8: h-node
    • shared-network: inici de la declaració de subxarxes compartides, es a dir, diferents subxarxes connectades als mateixos switch. Les directives van entre { }.
    • pool: podem especificar un grup d'adreces que seran tractades de manera diferent que un altre conjunt, fins i tot al mateix segment de subxarxa.
    • allow|deny unknown|known-clients: els known-clients són els que tenen alguna declaració host (independentment de la xarxa); evidentment els unknown-clients no en tenen cap.
    • subnet: indica el començament d'una declaració de subxarxa. Les directives van entre { }.
    • range: rang d'adreces que s'assignarà a la subxarxa; en primer lloc la menor i en segon lloc la major.
    • host: inici de la declaració de host. Les directives que assignen paràmetres a un host van entre { }.
    • hardware: s'indica el tipus de hardware (normalment ethernet) junt amb l'adreça MAC del host.
    • fixed-address: adreça IP fixa per assignar a un host.
    • host-name: nom per assignar al host.

Com configurar el servidor DHCP per a que serveixi IPs a una subxarxa

  • Es poden tenir diverses IP, aleshores només s'assignarà la IP del rang que correspon (la petició haurà arribat per una targeta de xarxa que pertany a certa subxarxa).
  • També es pot assignar un nom de màquina DNS que resolgui a una iP concreta.
subnet ID_XARXA_LAN netmask MASCARA_LAN {
range IP_INICI IP_FINAL; option subnet-mask MASCARA_LAN;
option broadcast-address ID_BROADCAST_LAN;
option routers IP_ROUTER_LAN;
option domain-name-servers IP_SERVIDOR_DNS_LAN, IP_SERVIDOR1_DNS_WAN, IP_SERVIDOR2_DNS_WAN;
option domain-name "
NOM_DOMINI";
default-lease-time TEMPS;
max-lease-time TEMPS;

}

Com configurar el servidor DHCP per a que serveixi una adreça IP fixa a una MAC

  • Es poden tenir diverses IP, aleshores només s'assignarà la IP del rang que correspon (la petició haurà arribat per una targeta de xarxa que pertany a certa subxarxa).
  • També es pot assignar un nom de màquina DNS que resolgui a una iP concreta.
host NOM_HOST {
hardware ethernet ADREÇA_MAC_HOST;
fixed-address IP_A_ASSIGNAR;
host-name NOM_HOST.NOM_DOMINI;
}

Exemple de configuració

Amb un sol fitxer de configuració dhcpd.conf
Amb el fitxer dhcpd.conf i un fitxer de suport anomenat dhpc_iesmvm.conf

ddns-update-style none;

log-facility local7;

authoritative;

subnet ID_XARXA_LAN netmask MASCARA_LAN {
range
IP_INICI IP_FINAL;
option subnet-mask
MASCARA_LAN;
option broadcast-address
ID_BROADCAST_LAN;
option routers
IP_ROUTER_LAN;

option domain-name-servers IP_SERVIDOR_DNS_LAN, IP_SERVIDOR1_DNS_WAN, IP_SERVIDOR2_DNS_WAN;
option domain-name "
NOM_DOMINI";

default-lease-time TEMPS;
max-lease-time TEMPS;
}

host NOM_HOST {
hardware ethernet
ADREÇA_MAC_HOST;
fixed-address
IP_A_ASSIGNAR;

host-name NOM_HOST.NOM_DOMINI;
}

ddns-update-style none;

option domain-name-servers IP_SERVIDOR_DNS_LAN, IP_SERVIDOR1_DNS_WAN, IP_SERVIDOR2_DNS_WAN;
option domain-name "
NOM_DOMINI";

default-lease-time TEMPS;
max-lease-time TEMPS;

authoritative;

include "/etc/dhcp3/dhcpd_iesmvm.conf";


Contingut del fitxer dhpc_iesmvm.conf

subnet ID_XARXA_LAN netmask MASCARA_LAN {
range
IP_INICI IP_FINAL;
option subnet-mask
MASCARA_LAN;
option broadcast-address
ID_BROADCAST_LAN;
option routers
IP_ROUTER_LAN;

option domain-name-servers IP_SERVIDOR_DNS_LAN, IP_SERVIDOR1_DNS_WAN, IP_SERVIDOR2_DNS_WAN;

}

host NOM_HOST {
hardware ethernet
ADREÇA_MAC_HOST;
fixed-address
IP_A_ASSIGNAR;

host-name NOM_HOST.NOM_DOMINI;
}


































Ús de la directiva pool

  • Permet, per exemple assignat-li un temps més curt d'assignació, permetre l'accés a internet a un grup (clients coneguts) i a un altre no (clients desconeguts) ,...
  • NOTA: Els clients "coneguts" són aquells amb configuració d'assignació en el servidor.
  • Exemple:
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
# Configuració per a clients desconeguts
pool {
option domain-name-servers bogus.example.com;
max-lease-time 300;
range 10.0.0.200 10.0.0.253;
allow unknown-clients;
}
#Configuració per a clients coneguts
pool {
option domain-name-servers ns1.example.com, ns2.example.com;
max-lease-time 28800;
range 10.0.0.5 10.0.0.199;
deny unknown-clients;
}
}

















Ús de la directiva shared-network

  • S'usa en el cas de tenir diferents subxarxes compartides, es a dir, que es veuen entre si.
  • Es pot tenir diferents configuracions per a cada subxarxa.
  • Exemple:

shared-network iesmvm {


# xarxa eso
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
# en lloc de router passaran per un servidor proxy per accedir a internet
option routers 192.168.1.2;
allow unknown-clients;
default-lease-time 2700;
max-lease-time 2700;
}

# xarxa cicles formatius
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.101 192.168.0.200;
option domain-name "cicles.mvm";
option domain-name-servers 192.168.0.2;
option broadcast-address 192.168.0.255;
# l'accés a internet serà via router
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
deny unknown-clients;
default-lease-time 36000;
max-lease-time 36000;

host e1a1 {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.0.101;
host-name e1a1.cicles.mvm;
}

host e1a2 {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.0.102;
host-name e1a2.cicles.mvm;
}

}

}














































Fitxer dhcpd.leases

  • En el fitxer dhcpd.leases es registran les IPs que es van asignant als ordinadors clients (prèstecs).
  • Aquest fitxer es llegeix, una vegada iniciat el servidor i despés d'haver llegit dhcpd.conf i així estableix quines màquines tenen assignacions actives.
  • La seva ubicació és /var/lib/dhcp3
  • Quant aquest es masa gran crea una copia en un fitxer dhcpd.leases~.
  • En iniciar el dimoni hi ha que verificar que existeix l'archiu /var/lib/dhcp/dhcpd.leases (en versions anteriors de dhcp per RedHat aquest archiu es tenia que crear-lo a mà. I era una de les raons perquè dhcpd no iniciava).
  • Si s'ha matat el dimoni o el sistema ha quedat inestable després que la base de dades de leasing ha canviat el nom a l'arxiu de còpia de seguretat però abans que el nou fitxer hagi estat escrit, es possible que no existeixi el fitxer dhcpd.leases (requerit per iniciar el servei). No se n'ha de crear un de nou: la solució correcta és canviar nom de fitxer de còpia de seguretat dhcpd.leases~ a dhcpd.leases i, a continuació, inicar el dimoni i així no es perdrà la informació emmagatzemada.

Accés a un servidor DHCP fora del segment de xarxa dels clients

  • DHCP Server IP for Relay Agent: és una ip privada d'una màquina (normalment un router) al que se li reenvien les peticions DHCP per a que les reenvie als servidors corresponents.
  • Cal utilitzar un BOOTP/DHCP Relay Agent als routers.
  • Paquet dhcp3-relay.

Cisco i DHCP Relay

If your routers are cisco like just add "ip helper-address dhcp.server.ip.address" configuration in each vlan interface like: Switch>enable Switch#configure terminal Switch(config)#interface vlan 1968 Switch(config-if)#ip helper-address 192.168.100.200 Switch(config-if)#end

then the router will relay dhcp packets between dhcp server and dhcp client

if you want to use a dhcp server with many virtual interface to do this you need 1. a nic with 802.1q vlan support on your dhcp server 2. define virtual interfaces on your dhcp server machine 3. define a trunk port which directly connect to dhcp server's nic and brings all vlan tag to the nic of dhcp server cisco like config is : Switch>enable Switch#configure terminal Switch(config)#vtp mode transparent Switch(config)#interface gigabitEthernet 0/12 Switch(config-if)#switchport trunk encapsulation dot1q Switch(config-if)#switchport mode trunk Switch(config-if)#end

4. tell dhcp server to listen dhcp packets on virtual interfaces

however, maybe nic won't support more than 64 vlans so, i think you need both router's dhcp relay and dhcp server's virtual interface configuration (mix L2 and L3 traffic on the router or core switch)

finally, you can download cisco's "Multilayer Switch Software Configuration Guide" of their products on cisco's web site, their manual is really easy to understand.


Icona iDevice Instal·lació i configuració d'un servidor DHCP

Recuperem la imatge de la xarxa:

  1. Instal·lar el servidor DHCP en la màquina Server-PT.
  2. Fer una copia de seguretat del fitxer per defecte de configuració.
  3. Per començar es pot usar una plantilla i modificar-la al vostre gust. La podeu obtenir aquí.
  4. Comentaris dels paràmetres a modificar en la plantilla:
  • IP_SERVIDOR_DNS_LAN: De moment encara no teniu instal·lat i configurat un servidor DNS per la vostra LAN.
  • NOM_DOMINI: Per la mateixa raó que l'anterior no disposeu de domini.
  • ID_XARXA_LAN: 172.MM.0.0
  • MASCARA_LAN: Máscara de xarxa de classe B.
  • IP_INICI IP_FINAL: La primera i útima IP de la teva xarxa que pretens assignar.
  • ID_BROADCAST_LAN: La IP de broadcast de la teva xarxa de classe B.
  • IP_ROUTER_LAN: No tens router en la xarxa privada.
  • ADREÇA_MAC_HOST_PC: MAC del PC-PT
  • ADREÇA_MAC_HOST_PORTATIL: MAC del portàtil
  • IP_A_ASSIGNAR: Les corresponents 172.MM.0.3 per al PC-PTv i 172.MM.0.4 per a Laptop-PT