← Back to team overview

sslug-teknik team mailing list archive

Re: Konvertering af windows 2000 dhcp-server til linux

 



Brian Møller wrote:

Er der nogen der har en guide / tool der kan hjælpe mig igennem dette. Selve subnet-oprettelsen tager ikke lang tid, hvis det skal gøres i hånden; men det er alle de reservationer der vil slå projektet ihjel.

Jeg kender ikke windows 2000, men er det ikke muligt at eksportere konfigurationsfilen fra dhcp-serveren og så jave den gennem et perl-script, som laver konfigurationsfilen for dhcpd?

Det ender det nok med.
Nu fandt jeg fra andet sted ud af at man med netsh kommandoen:
netsh dhcp dump > c:\dhcp\test.dmp
kan eksportere hele config'en.  Det ser sådan her ud:
Dhcp Server 10.20.0.5 add scope 10.20.16.0 255.255.255.0 "10.20.16.0" "Description"
Dhcp Server 10.20.0.5 Scope 10.20.16.0 set state 1
Dhcp Server 10.20.0.5 Scope 10.20.16.0 Add iprange 10.20.16.11 10.20.16.200 Dhcp Server 10.20.0.5 Scope 10.20.16.0 set optionvalue 3 IPADDRESS "10.20.16.1" Dhcp Server 10.20.0.5 Scope 10.20.16.0 Add reservedip 10.20.16.11 000973d95c1f "PUBPC33." "000973d95c1f" "DHCP" Dhcp Server 10.20.0.5 Scope 10.20.16.0 Add reservedip 10.20.16.12 000973bd5c1f "PUBPC34." "000973bd5c1f" "DHCP"

Det skal jeg så bare lige have parset til noget som for mit vedkommende er brugbart. Ulempen er så bare at det er jeg ikke helt stærk i; men jeg ved hvordan det skal se ud.

/Brian



Hej Brian

Jeg har lavet et eksempel på hvordan det ca. kan gøres

på din linux box gem i en fil alle linjer fra din windows box dhcp der ser sådan her ud:

Dhcp Server 10.20.0.5 Scope 10.20.16.0 Add reservedip 10.20.16.11 000973d95c1f "PUBPC33." "000973d95c1f" "DHCP" Dhcp Server 10.20.0.5 Scope 10.20.16.0 Add reservedip 10.20.16.12 000973bd5c1f "PUBPC34." "000973bd5c1f" "DHCP"

lav et så kan du nu bruge dette script (gem fx som: w2l-dhcp.sh dernæst chmod 755 w2l-dhcp.sh ) til at lave det om til dette linux dhcpd.conf format:

#-------------------
cat $1 | while read line; do

   IP=`echo $line |awk {'print $8'}`
HOST=`echo $line |awk {'print $10'} |sed -e 's/"//g'| sed -e 's/\.//'` # sed fjerner " og . fra navnet MAC=`echo $line |awk {'print $9'} | awk 'BEGIN{FS=""}{print $1$2":"$3$4":"$5$6":"$7$8":"$9$10":"$11$12'}`

echo -e "host $HOST { \n hardware ethernet $MAC; \n fixed-address $IP; \n } "

done
#-----------


kør sciptet sådan:

./w2l-dhcp.sh FIL_NAVN_PÅ_WIN_DHCP_FIL > ny_dhcp_fil.txt

så har du alle dine ip/mac/hostname oplysninger i filen "ny_dhcp_fil.txt"

Dette kan sikker gøres meget næmmere i perl, men dette her over virker også :-)

/Frank


References