dhcp server

Meerdere cisco devices ondersteunen een dhcp server. Hiermee bedoel ik dat ze als dhcp server kunnen fungeren. Het betreft hier uiteraard wel layer 3 devices dus routers (2600, pix) of layer 3 switches (3550)
Met onderstaande commando's kunnen we een dhcp server opzetten op een cisco device.


Router(config)#ip dhcp pool [POOLNAME]
Router(dhcp-config)#network [network] [mask]
Router(dhcp-config)#dns-server [ip address]
Router(dhcp-config)#default-router [gateway address]
Router(dhcp-config)#domain-name [NAME]
Router(dhcp-config)#netbios-name-server [ip address]
Router(dhcp-config)#lease [DAYS] [HOURS] [MINUTES]
Router(dhcp-config)#exit
Router(config)#ip dhcp excluded-address [ip address]
Router(config)#ip dhcp excluded-address [start-ip] [end-ip]
Router(config)#(no) service dhcp

We creeeren eerst een pool met een bepaalde naam. Dan geven we een netwerk op en een netmask, dit is de pool.
De volgende stap is het meegeven van parameters aan de client, dns server, gateway, domeinnaam, netbiosnaam en duur van de lease.
Daarna geven we op welke adressen we willen excluden van de pool zoals het adres van de cisco zelf, servers, etc. Dit kan met een enkel adres of een reeks adressen door de eerste en de laatste op te geven.
Tot slot starten we de dhcp server. Met een 'no' er voor stoppen we de service.
Hieronder een voorbeeld van een configuratie:


Router(config)#ip dhcp pool test
Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#dns-server 192.168.1.253
Router(dhcp-config)#default-router 192.168.1.254
Router(dhcp-config)#domain-name test
Router(dhcp-config)#lease 0 8 0 
Router(dhcp-config)#exit
Router(config)#ip dhcp excluded-address 192.168.1.253 192.168.1.254
Router(config)#service dhcp

Hierboven is de cisco router die dhcp server is tevens de gateway naar een volgend netwerk en heeft adres 192.168.1.254. verder is er een lokale dns server met adres 192.168.1.253. De pool is dus van 192.168.1.1 t/m 192.168.1.252

We hebben nu als het goed is een werkende dhcp server maar misschien willen we een en ander controleren. Hiervoor hebben we wat commando's ter beschikking.
Het eerste commando in onderstaand voorbeeld geeft aan welke clients een ip lease hebben gekregen van de dhcp server.
Het tweede commando geeft de status van de dhcp server. Willen we meer debugging hebben dan kunnen we met het derde commando de debugging van de dhcp server aanzetten.
Willen we bindingen verbreken dan kan dat met het vierde commando.


Router#show ip dhcp binding
Router#show ip dhcp server statistics
Router#debug ip dhcp server
Router#clear ip dhcp binding *

! Bedenk dat als we tevens een acl hebben opgezet ook van belang is dat we de dhcp requests doorlaten. dhcp requests gebruiken tcp/udp poort 67 en 68.

Tot slot nog een ding dat misschien niet hier thuishoort maar wel met dhcp te maken heeft. We kunnen 1 dhcp server maken voor meerdere netwerken echter dhcp requests zijn broadcasts die niet door een router komen. Hiervoor kunnen we een helper adres aanmaken dat de dhcp server aangeeft aan de router. Krijgt een router met een helper adres een dhcp request binnen dan stuurt hij deze door aan zijn helper adres. De dhcp server ziet dat het adres van een ander netwerk komt en kijkt of hij een adres kan aanbieden in deze reeks. De dhcp server moet dan wel een pool hebben in die reeks.
Met het volgende commando geven we een helper adres aan:


Router(config-if)#ip helper-address XXX.XXX.XXX.XXX

Zoals te zien is aan de prompt hangen we een helper adres aan een bepaalde interface.

toegang tot device

console en remote toegang kan ook door middel van een access-list beperkt worden zoals te zien is in onderstaand voorbeeld. Zoals te zien is geven we in deze acl alleen de source aan en niet de destination.
Wat tevens te zien is in dit voorbeeld is dat we twee transport regels hebben opgenomen. De eerste geeft aan dat we via ssh en via telnet mogen binnenkomen. De tweede geeft aan dat we ook mogen door telnetten naar andere devices. Dit kan heel handig zijn als we een remote netwerk willen beheren. Normaal moet je vanaf de machine waarop je je bevindt wel alle netten kunnen bereiken qua routering maar als je door telnet van router naar router dan is dat geen issue.


line vty 0 4
 access-class 10 in
 privilege level 15
 login local
 transport input telnet ssh
 transport output telnet ssh
!
access-list 10 permit 192.168.1.0 0.0.0.255
access-list 10 deny   any log

snmp opties

De community is belangrijk om via snmp het device te kunnen uitlezen. Standaard is readonly (RO) toegang via public en readwrite (RW) via private als wachtwoord. Dit kan veranderd worden door een ander wachtwoord zoals hieronder is gebeurd met RW toegang. Tevens zijn de lokatie, het ID en de kontaktgevens op te nemen in de snmp gegevens.


snmp-server community public RO
snmp-server community geheim RW
snmp-server location Hoofdgebouw, SER3
snmp-server contact admin, 06-12345678
snmp-server chassis-id SW100

remote logging

remote logging is handig via syslog omdat dan ook na een vastloper of reboot de log nog is in te zien. Elke linux machine heeft syslog draaien en met een kleine aanpassing werkt dit ook vanaf andere devices (optie -r bij syslogd).
Het kan dan handig zijn om aparte logfiles te hebben voor switches en routers bijvoorbeeld. of de firewall in een eigen file. Dit kan door een syslof facility mee te geven en op de syslog machine bepaalde facilities te redirecten naar aparte logfiles.


logging facility local3
logging 192.168.1.200

Met name bij logging is het belangrijk dat de tijd klopt. Hiervoor is het handig een tijdserver op te geven. Dat kan met onderstaand commando. Uiteraard moet dit ip adres dan wel een tijdserver draaien.
Let er ook op dat access-lists dit verkeer doorlaten. tcp/udp poort 123


ntp server 192.168.2.100

tevens is dan van belang dat de tijdzone goed staat ingesteld en de zomer- en wintertijd is gedefinieerd.
We geven aan dat we in de tijdzone amsterdam zitten en dat dit gmt+1 is en wanneer precies de zomertijd in- en uitgaat.


clock timezone adam 1
clock summer-time adam recurring last Sun Mar 2:00 last Sun Oct 2:00