cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
677
Views
0
Helpful
2
Replies

Cisco Network Registrar and boot proms and WINNT

fhofmann
Level 1
Level 1

We have a customer who must change his DHCP Server from MS-DHCP to Cisco Network Registrar. MS-DHCP is configured with several scopes (every branch office has a separate subnet). Ale scopes are filled in with reservations (MAC to IP) because the customer want to have "static" IP addresses to his clients. Obviously they are referring to the clients IP be assigning Unix printers or something like that.

However the PC's have a NIC with a boot prom that sends on startup a DHCP request and then downloads through TFTP a little boot loader that decides if the PC should boot from local HDD or if the boot prom should download a greater (600 KB) virtual boot disk to perform an unattended installation of WINNT. Details are described on http://www.bootix.com/us/price/tcpipbootprompro.shtml.

With the MS-DHCP everything works fine. The PC's boot prom first sends a DHCP request and gets the associated IP address, which has been entered for the NIC’s MAC as a reservation. After that WINNT starts up and WINNT sends also a DHCP request and also gets the same IP, which has, been entered for the NIC's MAC.

Now I have installed CNR, defined my scopes, entered the scope options and entered my reservations. Now the problem: The PC starts up, the boot prom sends his DHCP request and gets the right IP from the reservation. After that WINNT start's up and sends also the DHCP request. This DHCP request is not answered with the offer of the reserved IP, instead WINNT gets a totally other IP from the scope, if there are free IP's available. Or, if no free IP's available, WINNT doesn't get an IP.

I have tried several things, but didn't get a solution for my problem. Has anybody an idea how to configure CNR to run like MS-DHCP?

Thank you.

Frank Hofmann

2 Replies 2

ciscomoderator
Community Manager
Community Manager

Since there has been no response to your post, it appears to be either too complex or too rare an issue for other forum members to assist you. If you don't get a suitable response to your post, you may wish to review our resources at the online Technical Assistance Center (http://www.cisco.com/tac) or speak with a TAC engineer. You can open a TAC case online at http://www.cisco.com/tac/caseopen

If anyone else in the forum has some advice, please reply to this thread.

Thank you for posting.

habibd
Level 1
Level 1

Hi,

Please look in- line

# -------------------------------------------------------------------------

# PXE is Windows Client Pre-Boot Execution environment.

#

# Revision: 0.90 created: 04/04/2002 jtb

# Revision: 0.91 created: 04/10/2002 jtb

#

# NOTE: This is not intended to be a Complete/Definitive FAQ on PXE Clients

# in relation to support by CNR, but is only intended to server as an

# initial reference.. and starting point document on where to start

# looking to obtain additional information.

#

#

# NOTE: This file may be edited/modified to set the site specific

# appropriate option values such as;

#

#

# policy "PXE-Policy" set packet-siaddr = 192.168.213.66

#

#

# policy "PXE-Policy" set packet-file-name=bootstrap.0

#

#

# policy "PXE-Policy" setVendorOption pxeclient {boot_servers[0]} server_ip 192.168.213.66

#

# and then may be used an nrcmd batch command script to create and set

# all of the options by;

#

# # nrcmd -N -P -b < NOTE-PXEClient-BINL-091.txt

#

#

# -------------------------------------------------------------------------

# What is a PXE/BINL Client:

# --------------------------

#

# Basically there is a tiny O/S in the NIC card, and the PC can be

# configured to boot from this tiny OS in the NIC.

#

# This OS obtains a IP address from DHCP server and communicates with a

# TFTP server (PXE server) to obtain further instructions.

#

# If the PC does not find a PXE server; or it receives instructions from

# the PXE server to boot from the local HDD, the machine boots the O/S from

# the local HDD.

#

# In such a case, during the boot process, the machine initiates DHCP

# discover process twice, once during PXE boot, and the other during

# Workstation O/S boot.

#

#

# You can find further information regarding PXE boot, sometimes referred

# to as;

#

# Windows XP Remote Installation feature using ;

# BINL - Boot Information Negotiation Layer Extensions

#

# at a large numer of places... but a few starting points might be;

#

# http://www.3com.com

#

#

# http://www.intel.com

#

# http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm

#

#

# http://www.lanworks.com

#

# http://www.lanworks.com/gwisoft/titles/bwkbase.nsf/viwAllBID/852568790007491E85256A69005A95F2?OpenDocument

#

#

# http://www.google.com/search?q=cache:mhxV-mVF9eMC:www.rembo.com/rad/docs/radman/book.pdf+DHCP+BINL+Windows+XP+Remote+Installation&hl=en&ie=utf-8#15

#

#

# Link to the CNR 5.0 documentation on how to set up PXE specific

# 'Custom' vendor-option(s) in CNR;

#

# http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/ciscoasu/nr/nr50/cliref/cli2.htm#xtocid10125131

#

#

# -------------------------------------------------------------------------

# DHCP 'Vendor Class ID': (relative to CNR debug messages)

# -----------------------

#

# PXE Client request packets can be noted as such via review of the

# supllied DHCP Option-60 (dhcp-class-identifier = 'Vendor Class ID')

# value;

#

# Basic:

# ------

# -> dhcp-class-identifier = "PXEClient"

#

# Extended Configured info:

# -------------------------

# -> dhcp-class-identifier = "PXEClient:Arch:00000:UNDI:002001"

#

#

# -------------------------------------------------------------------------

# CNR Policy Config for Basic PXE Client: (using NRCMD)

# ---------------------------------------

# Basic: (used as in example)

#

# "PXEClient"

#

# Extended Configured info: (alternative possible matching name)

#

# "PXEClient:Arch:00000:UNDI:002001"

#

option-datatype PXE_option_8 create

option-datatype PXE_option_8 defineField server_type 1 WORD

option-datatype PXE_option_8 defineField server_count 2 BYTE

option-datatype PXE_option_8 defineField server_ip 3 IPADDR_ARRAY

option-datatype PXE_option_8 enable read-only

option-datatype PXE_option_9 create

option-datatype PXE_option_9 defineField menu 1 WORD

option-datatype PXE_option_9 defineField timeout 2 BYTE

option-datatype PXE_option_9 defineField prompt 3 STRING

option-datatype PXE_option_9 enable read-only

option-datatype PXE_option_10 create

option-datatype PXE_option_10 defineField timeout 1 BYTE

option-datatype PXE_option_10 defineField default 2 STRING

option-datatype PXE_option_10 enable read-only

# Basic: (used as in example)

#

# String matches that presented in Option-60 (dhcp-class-identifier);

#

# "PXEClient"

#

vendor-option pxeclient create "PXEClient"

# Extended Configured info: (alternative possible matching name)

#

# String matches that presented in Option-60 (dhcp-class-identifier);

#

# "PXEClient:Arch:00000:UNDI:002001"

#

# vendor-option pxeclient create "PXEClient:Arch:00000:UNDI:002001"

vendor-option pxeclient defineSuboption discovery_control 6 BYTE

vendor-option pxeclient defineSuboption boot_servers 8 PXE_option_8 array

vendor-option pxeclient defineSuboption boot_menu 9 PXE_option_9

vendor-option pxeclient defineSuboption boot_timeout 10 PXE_option_10

vendor-option pxeclient defineSuboption boot_end 255 BYTE no-suboption-data,no-suboption-len

vendor-option pxeclient enable read-only

policy "PXE-Policy" create

#

#

policy "PXE-Policy" set packet-siaddr = 192.168.213.66

#

#

policy "PXE-Policy" set packet-file-name=bootstrap.0

#

policy "PXE-Policy" set dhcp-reply-options=packet-siaddr,packet-file-name

policy "PXE-Policy" setVendorOption pxeclient discovery_control 7

policy "PXE-Policy" setVendorOption pxeclient {boot_servers[0]} server_type 10

policy "PXE-Policy" setVendorOption pxeclient {boot_servers[0]} server_count 1

#

policy "PXE-Policy" setVendorOption pxeclient {boot_servers[0]} server_ip 192.168.213.66

#

policy "PXE-Policy" setVendorOption pxeclient boot_menu menu 10

policy "PXE-Policy" setVendorOption pxeclient boot_menu timeout 2

policy "PXE-Policy" setVendorOption pxeclient boot_menu prompt RB

policy "PXE-Policy" setVendorOption pxeclient boot_timeout timeout 10

policy "PXE-Policy" setVendorOption pxeclient boot_timeout default R

policy "PXE-Policy" setVendorOption pxeclient boot_end 255

dhcp reload

vendor-option pxeclient show

vendor-option pxeclient listsuboptions

option-datatype list

policy PXE-Policy

exit

# -------------------------------------------------------------------------

# Expected Results:

# -----------------

# nrcmd> vendor-option pxeclient show

# 100 Ok

# pxeclient:

# name = pxeclient

# read-only = enabled

# vendor-class-id = PXEClient

#

# nrcmd> vendor-option pxeclient listsuboptions

# 100 Ok

# discovery_control(6) : byte

# boot_servers(8) : pxe_option_8(array)

# boot_menu(9) : pxe_option_9

# boot_timeout(10) : pxe_option_10

# boot_end(255) : byte(no-suboption-len,no-suboption-data)

#

# nrcmd> option-datatype list

# 100 Ok

# BOOL:

# name = BOOL

# read-only = enabled

# BYTE:

# name = BYTE

# read-only = enabled

# BYTE_ARRAY:

# name = BYTE_ARRAY

# read-only = enabled

# INT:

# name = INT

# read-only = enabled

# INT_ARRAY:

# name = INT_ARRAY

# read-only = enabled

# IPADDR:

# name = IPADDR

# read-only = enabled

# IPADDR_ARRAY:

# name = IPADDR_ARRAY

# read-only = enabled

# pxe_option_10:

# name = pxe_option_10

# read-only = enabled

# pxe_option_8:

# name = pxe_option_8

# read-only = enabled

# pxe_option_9:

# name = pxe_option_9

# read-only = enabled

# STRING:

# name = STRING

# read-only = enabled

# UINT:

# name = UINT

# read-only = enabled

# UINT_ARRAY:

# name = UINT_ARRAY

# read-only = enabled

# WORD:

# name = WORD

# read-only = enabled

# WORD_ARRAY:

# name = WORD_ARRAY

# read-only = enabled

#

#

# nrcmd> policy PXE-Policy

# 100 Ok

# PXE-Policy:

# allow-client-a-record-update = disabled

# allow-dual-zone-dns-update =

# allow-lease-time-override = enabled

# bootp-reply-options =

# dhcp-reply-options = {{0 packet-siaddr} {1 packet-file-name}}

# grace-period = 5m

# offer-timeout = 2m

# packet-file-name = bootstrap.0

# packet-server-name =

# packet-siaddr =

# permanent-leases = disabled

# server-lease-time =

# split-lease-times = disabled

#

# -------------------------------------------------------------------------