diff options
Diffstat (limited to 'bootstrap/make-dhcpd6.pl')
-rwxr-xr-x | bootstrap/make-dhcpd6.pl | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/bootstrap/make-dhcpd6.pl b/bootstrap/make-dhcpd6.pl deleted file mode 100755 index dc3f8b9..0000000 --- a/bootstrap/make-dhcpd6.pl +++ /dev/null @@ -1,171 +0,0 @@ -#!/usr/bin/perl -I /root/tgmanage -use strict; - -use Net::IP; - -BEGIN { - require "include/config.pm"; - eval { - require "include/config.local.pm"; - }; -} - -my $base = "/etc"; -$base = $ARGV[0] if $#ARGV > -1; -$base .= "/" if not $base =~ m/\/$/ and not $base eq ""; - -my $dhcpd_base = $base . "dhcp/"; -my $dhcpd_conf = $dhcpd_base . "dhcpd6.conf"; -my $dhcpd_pxeconf = $dhcpd_base . "v6-pxe-boot.conf"; -my $dhcpd_wlc_conf = $dhcpd_base . "v6-wlc.conf"; -my $dhcpd_voip_conf = $dhcpd_base . "v6-voip.conf"; - -my $sec_net = Net::IP->new($nms::config::sec_net_v6)->short(); -my ($sec_first, $sec_last) = ("8000", "9999"); - -# Create PXE-boot configuration file for DHCP -if ( not -f $dhcpd_conf ) -{ - print STDERR "Creating file " . $dhcpd_conf . "\n"; - open DHCPDFILE, ">" . $dhcpd_conf or die ( $! . " " . $dhcpd_conf); - - print DHCPDFILE <<"EOF"; -# GENERATED BY make-dhcpd6.pl - -# IPv6 address valid lifetime -# (at the end the address is no longer usable by the client) -# (usual IPv6 default is 30 days) -default-lease-time 3600; - -# IPv6 address preferred lifetime -# (at the end the address is deprecated, i.e., the client should use -# other addresses for new connections) -# (usual IPv6 default is 7 days) -preferred-lifetime 3600; - -# T1, the delay before Renew -# (default is 1/2 preferred lifetime) -option dhcp-renewal-time 1800; - -# T2, the delay before Rebind (if Renews failed) -# (default is 3/4 preferred lifetime) -option dhcp-rebinding-time 1800; - -# Enable RFC 5007 support -allow leasequery; - -# Set preference to 255 (maximum) in order to avoid waiting for -# additional servers when there is only one -option dhcp6.preference 255; - -# Server side command to enable rapid-commit (2 packet exchange) -option dhcp6.rapid-commit; - -# The delay before information-request refresh -# (minimum is 10 minutes, maximum one day, default is to not refresh) -# (set to 6 hours) -option dhcp6.info-refresh-time 21600; - -# Don't let clients set their own FQDN -ignore client-updates; - -# disable ddns -ddns-update-style none; - -# make server authorative -authoritative; - -# Global definitions for name server address(es) and domain search list -option domain-name "$nms::config::tgname.gathering.org"; -option dhcp6.name-servers $nms::config::pri_v6, $nms::config::sec_v6; - -key DHCP_UPDATER { - algorithm HMAC-MD5.SIG-ALG.REG.INT; - secret $nms::config::ddns_key; -} - -subnet6 $nms::config::pri_net_v6 {} -subnet6 $nms::config::sec_net_v6 { - range6 ${sec_net}${sec_first} ${sec_net}${sec_last}; -} - -include "/etc/dhcp/v6-generated-include.conf"; -include "$dhcpd_pxeconf"; -#include "$dhcpd_wlc_conf"; -#include "$dhcpd_voip_conf"; - -EOF - close DHCPDFILE; -} - -# Create PXE-boot configuration file for DHCP -if ( not -f $dhcpd_pxeconf ) -{ - print STDERR "Creating file " . $dhcpd_pxeconf . "\n"; - open PXEFILE, ">" . $dhcpd_pxeconf or die ( $! . " " . $dhcpd_pxeconf); - - print PXEFILE <<"EOF"; -option dhcp6.bootfile-url code 59 = string; -option dhcp6.client-arch-type code 61 = array of unsigned integer 16; - -if option dhcp6.client-arch-type = 00:07 { - option dhcp6.bootfile-url "tftp://[$nms::config::pxe_server_v6]/bootx64.efi"; -} else { - # support a hypothetical BIOS system that can PXE boot over IPv6 - option dhcp6.bootfile-url "tftp://[$nms::config::pxe_server_v6]/pxelinux.0"; -} - -EOF - - close PXEFILE; -} - -# Create WLC configuration file -if ( not -f $dhcpd_wlc_conf ) -{ - print STDERR "Creating file " . $dhcpd_wlc_conf . "\n"; - open WLCFILE, ">" . $dhcpd_wlc_conf or die ( $! . " " . $dhcpd_wlc_conf); - - print WLCFILE <<"EOF"; -option space AP; -option AP.server-address code 241 = array of ip-address; -set vendor-string = option vendor-class-identifier; - -class "access-points" { - match if substring (option vendor-class-identifier, 0, 8) = "Access Point"; - vendor-option-space AP; - option AP.server-address $nms::config::wlc1_v6; -} -EOF - close WLCFILE; -} - -# Create VoIP config -if ( not -f $dhcpd_voip_conf ) -{ - print STDERR "Creating file " . $dhcpd_voip_conf . "\n"; - open VOIPFILE, ">" . $dhcpd_voip_conf or die ( $! . " " . $dhcpd_voip_conf); - - print VOIPFILE <<"EOF"; -option space CiscoVOIP; -option CiscoVOIP.cm-tftp-server code 150 = array of ip-address; - -class "cisco-voip-lan" { - match if substring (option vendor-class-identifier, 0, 28) = "Cisco Systems, Inc. IP Phone"; - vendor-option-space CiscoVOIP; - log( info, concat( "LOLOPHONE: " , option vendor-class-identifier )); - option CiscoVOIP.cm-tftp-server $nms::config::voip1_v6; - next-server $nms::config::voip1_v6; -} - -class "cisco-voip-wlan" { - match if substring (option vendor-class-identifier, 0, 33) = "Cisco Systems Inc. Wireless Phone"; - vendor-option-space CiscoVOIP; - log( info, concat( "BANANAPHONE: " , option vendor-class-identifier )); - option CiscoVOIP.cm-tftp-server $nms::config::voip1_v6; - next-server $nms::config::voip1_v6; -} -EOF - close VOIPFILE; -} - |