You can have common
DHCP-Servers (for example, Microsoft Windows) for IP address assignments within
DFA. The DHCP-Servers can assign IP addresses to a simple DHCP request. The
common DHCP-Server support does not rely on specific DHCP scope option (for
example, simple-mode) by accepting some limitations or additional
configuration.
We support Windows
2012 DHCP server by utilizing the 'Super Scope' as well as the policy on option
82 for address range selection. The DHCP policy on scope reserves the address
space exclusively for the request matching the policy.
Note |
We support both
Windows DHCPv4 and DHCPv6 servers and the configurations are similar to regular
networks.
|
Let us assume the
switch is using the address from subnet B (it can be the backbone subnet,
management subnet, or any customer designated subnet for this purpose) to
communicate with the Windows DHCP server. In DFA we have subnets S1, S2, S3, …,
Sn for segment s1, s2, s3, …, sn.
To configure DHCP on
Windows server.
-
Create a super
scope. Within the super scope, create scope B, S1, S2, S3, …, Sn for the subnet
B and the subnets for each segment.
-
In scope B,
specify the 'Exclusion Range' to be the entire address range (so that the
offered address range must not be from this scope).
-
For every segment
scope Si, specify a policy that matches on Agent Circuit ID with value of
'0108000600XXXXXX', where '0108000600' is a fixed value for all segments, the 6
numbers "XXXXXX" is the segment ID value in hexadecimal. Also ensure to check
the
Append
wildcard(*) check box.
-
Set the policy
address range to the entire range of the scope.
Configuring
Infoblox as DHCP Server
Uses the Link
Selection sub-option for scope selection, as this is by default set as the
client facing SVI address. For other DHCP servers such as DHCPd and CPNR,
GIAddr based scope selection is used. If you are already using Infoblox, then
you must upgrade the Cisco NX-OS Switch to version 7.1(1)N1(1) or later.
Note |
We support only
DHCPv4 for Infoblox and the configurations are similar to regular networks. You
can refer to Infoblox user manual for configuration.
|
Let us consider a
case where, the DHCP clients are VM hosts connecting to Cisco switches in DFA.
The switches are configured with SVI as gateway for the VM hosts. The IP
address of the SVI may not be unique in the DFA system, as when VM host moves
to server connecting to another switch, then another SVI will be brought up on
that switch and configured with the same gateway IP so that the VM does not
need to change its gateway IP.
Configuring
DHCPd as DHCP Server
The system has a
centralized DHCP server that serves all VM hosts. Every switch has a DHCP relay
agent running to forward the DHCP requests from VM hosts to the DHCP server.
Because the SVI IP address is not unique, hence not reachable from the DHCP
server, the relay agent on switch cannot use it as the GIAddr in the request.
Instead, it uses another routing interface which has unique IP address as
GIAddr. In order for the DHCP server to select the correct subnet for each
host, the relay agent also put an identifier in the Circuit ID field in the
Relay Agent Information option. The identifier uniquely identifies the subnet
that a host connects to. However the identifier is only a portion of the
Circuit ID.
Now on the DHCP
server, you must configure it to fetch the identifier out of the Circuit ID and
use the identifier to choose the right subnet. We are able to do this with
DHCPd in the following way: we define classes matching on substring of the
Circuit ID. All the host subnets are in a shared-network. The shared-network
also contains the subnet for the routing interfaces on the switch, so that the
shared-network will be picked when the request comes. The subnet for the
routing interfaces does not have address pool, so it will not assign addresses.
The address allocation is from the host subnets in the shared-network. Each
host subnet only allows its own class members. Hence the server can correctly
choose a subnet for address allocation based on the identifier carried in the
request.
An example of the
DHCPd configuration is given below. Here '59.2.8.0/24' and '99.1.3.0/24' are
the host subnets, with identifier '01:5f:91' and '01:5f:92' respectively.
Subnet '43.2.0.0/24' is the subnet of the routing interfaces. It is used to
select the shared-network, but not used for address allocation.
# Start Segment 90001
class "15f91" {
match if substring (option agent.circuit-id, 5, 3) =01:5f:91;
}
# End Segment 90001
# Start Segment 90002
class "15f92" {
match if substring (option agent.circuit-id, 5, 3) =01:5f:92;
}
# End Segment 90002
shared-network "dfa-network" {
# Start Segment primarySubnet
subnet 43.2.0.0 netmask 255.255.255.0 {
}
# End Segment primarySubnet
# Start Segment 90001
subnet 59.2.8.0 netmask 255.255.255.0 {
option routers 59.2.8.1;
option vlan-id 90001;
}
pool {
allow members of "15f91";
range 59.2.8.2 59.2.8.254;
}
# End Segment 90001
# Start Segment 90002
subnet 99.1.3.0 netmask 255.255.255.0 {
option routers 99.1.3.1;
option vlan-id 90002;
}
pool {
allow members of "15f92";
range 99.1.3.2 99.1.3.254;
}
# End Segment 90002
}