diff options
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | debian/control | 4 | ||||
-rw-r--r-- | debian/copyright | 3 | ||||
-rw-r--r-- | debian/vyatta-cfg-system.postinst.in | 18 | ||||
-rw-r--r-- | scripts/dns-forwarding/vyatta-dns-forwarding.pl | 130 | ||||
-rwxr-xr-x | scripts/grub-setup | 176 | ||||
-rwxr-xr-x | scripts/install-system | 129 | ||||
-rwxr-xr-x | scripts/standalone_root_pw_reset | 4 | ||||
-rw-r--r-- | sysconf/vyatta-sysctl.conf | 3 | ||||
-rw-r--r-- | templates/interfaces/bridge/node.tag/address/node.def | 3 | ||||
-rw-r--r-- | templates/interfaces/tunnel/node.tag/address/node.def | 3 | ||||
-rw-r--r-- | templates/service/dns-forwarding/cache-size/node.def | 4 | ||||
-rw-r--r-- | templates/service/dns-forwarding/node.def | 10 | ||||
-rw-r--r-- | templates/system/static-host-mapping/host-name/node.def | 17 |
14 files changed, 366 insertions, 140 deletions
diff --git a/Makefile.am b/Makefile.am index 742f9025..ec5a473e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,6 +15,7 @@ bin_SCRIPTS += scripts/vyatta-functions sbin_SCRIPTS += scripts/init-floppy sbin_SCRIPTS += scripts/rl-system.init sbin_SCRIPTS += scripts/install-system +sbin_SCRIPTS += scripts/grub-setup sbin_SCRIPTS += scripts/quick-install sbin_SCRIPTS += scripts/standalone_root_pw_reset sbin_SCRIPTS += scripts/vyatta-passwd-sync @@ -29,6 +30,7 @@ sbin_SCRIPTS += scripts/keepalived/vyatta-vrrp-state.pl sbin_SCRIPTS += scripts/telnetd.init sbin_SCRIPTS += scripts/add_bootfile_eth_hwid sbin_SCRIPTS += scripts/mod_bootfile_eth_hwid +sbin_SCRIPTS += scripts/dns-forwarding/vyatta-dns-forwarding.pl noinst_DATA = test_bootfile diff --git a/debian/control b/debian/control index 4b5692bb..20237cd1 100644 --- a/debian/control +++ b/debian/control @@ -33,7 +33,9 @@ Depends: sed (>= 4.1.5), usbutils, tasksel, snmp, - tcpdump + tcpdump, + dnsmasq +Pre-Depends: bash-completion Suggests: util-linux (>= 2.13-5), net-tools, ethtool, diff --git a/debian/copyright b/debian/copyright index f12deb1f..5eb46c84 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,7 +1,8 @@ This package was debianized by An-Cheng Huang <ancheng@vyatta.com> on Thu, 18 Oct 2007 11:03:18 -0700. -It's original content from the GIT repository <http://vyatt.com/git/vyatta-cfg-system> +It's original content from the GIT repository + <http://vyatt.com/git/vyatta-cfg-system> Upstream Author: diff --git a/debian/vyatta-cfg-system.postinst.in b/debian/vyatta-cfg-system.postinst.in index b21437a5..2c057103 100644 --- a/debian/vyatta-cfg-system.postinst.in +++ b/debian/vyatta-cfg-system.postinst.in @@ -7,7 +7,7 @@ bindir=@bindir@ sbindir=@sbindir@ # remove init of daemons that we start/stop -for init in ntp ssh snmpd openhpid vyatta-keepalived ipvsadm; do +for init in ntp ssh snmpd openhpid vyatta-keepalived ipvsadm dnsmasq; do update-rc.d -f ${init} remove >/dev/null done @@ -23,6 +23,7 @@ esac ln -sf ../vyatta-net.rules /etc/udev/rules.d/$vyatta_net_rules if [ "$sysconfdir" != "/etc" ]; then + touch /etc/sudoers cp -p /etc/sudoers /etc/sudoers.bak # for "admin" level @@ -32,13 +33,12 @@ if [ "$sysconfdir" != "/etc" ]; then fi # cleanup any old entries from previous versions - ed - /etc/sudoers <<EOF -/### BEGIN VYATTA/,/### END VYATTA/d -/Cmnd_Alias IPTABLE/,/PPPOE_CMDS/d -g/sudo-users/d -g/env_keep+=VYATTA/d -wq -EOF + sed -i /etc/sudoers \ + -e '/### BEGIN VYATTA/,/### END VYATTA/d' \ + -e '/Cmnd_Alias IPTABLE/,/PPPOE_CMDS/d' \ + -e '/sudo-users/d' \ + -e '/env_keep+=VYATTA/d' || true + # Add Vyatta entries cat <<"EOF" >>/etc/sudoers ### BEGIN VYATTA @@ -85,6 +85,8 @@ if [ ! -f /etc/bash_completion ]; then echo "source /etc/bash_completion.d/20vyatta-cfg" >> /etc/bash_completion fi +sed -i 's/^set /builtin set /' /etc/bash_completion + # Local Variables: # mode: shell-script # sh-indentation: 4 diff --git a/scripts/dns-forwarding/vyatta-dns-forwarding.pl b/scripts/dns-forwarding/vyatta-dns-forwarding.pl new file mode 100644 index 00000000..4eebf6d7 --- /dev/null +++ b/scripts/dns-forwarding/vyatta-dns-forwarding.pl @@ -0,0 +1,130 @@ +#!/usr/bin/perl +# +# Module: vyatta-dns-forwarding.pl +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Mohit Mehta +# Date: August 2008 +# Description: Script to glue Vyatta CLI to dnsmasq daemon +# +# **** End License **** +# + +use lib "/opt/vyatta/share/perl5/"; +use VyattaConfig; +use VyattaMisc; +use Getopt::Long; + +use strict; +use warnings; + +my $dnsforwarding_init = '/etc/init.d/dnsmasq'; +my $dnsforwarding_conf = '/etc/dnsmasq.conf'; + +sub dnsforwarding_init { + +} + +sub dnsforwarding_restart { + system("$dnsforwarding_init restart >&/dev/null"); + print "Setting up DNS forwarding.\n"; +} + +sub dnsforwarding_stop { + system("$dnsforwarding_init stop >&/dev/null"); + print "Stopping DNS forwarding.\n"; +} + +sub dnsforwarding_get_constants { + my $output; + + my $date = `date`; + chomp $date; + $output = "#\n# autogenerated by vyatta-dns-forwarding.pl on $date\n#\n"; + return $output; +} + +sub dnsforwarding_get_values { + my $output = ''; + my $config = new VyattaConfig; + + $config->setLevel("service dns-forwarding"); + my $cache_size = $config->returnValue("cache-size"); + if (defined $cache_size) { + $output .= "cache-size=$cache_size\n"; + } + + return $output; +} + +sub dnsforwarding_write_file { + my ($config) = @_; + + open(my $fh, '>', $dnsforwarding_conf) || die "Couldn't open $dnsforwarding_conf - $!"; + print $fh $config; + close $fh; +} + +sub check_nameserver { + + my $cmd = `grep nameserver /etc/resolv.conf|wc -l`; + return $cmd; +} + +# +# main +# +my $init_dnsforwarding; +my $update_dnsforwarding; +my $stop_dnsforwarding; +my $nameserver; + +GetOptions("init-dnsforwarding!" => \$init_dnsforwarding, + "update-dnsforwarding!" => \$update_dnsforwarding, + "stop-dnsforwarding!" => \$stop_dnsforwarding, + "nameserver!" => \$nameserver); + +if (defined $nameserver) { + my $nameserver_exists = check_nameserver(); + if ($nameserver_exists < 1){ + exit 1; + } else { + exit 0; + } +} + + +if (defined $init_dnsforwarding) { + dnsforwarding_init(); +} + +if (defined $update_dnsforwarding) { + my $config; + + $config = dnsforwarding_get_constants(); + $config .= dnsforwarding_get_values(); + dnsforwarding_write_file($config); + dnsforwarding_restart(); +} + +if (defined $stop_dnsforwarding) { + dnsforwarding_stop(); +} + +exit 0; + +# end of file + diff --git a/scripts/grub-setup b/scripts/grub-setup new file mode 100755 index 00000000..bf293486 --- /dev/null +++ b/scripts/grub-setup @@ -0,0 +1,176 @@ +#!/bin/sh +# +# Module: grup-setup +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2006, 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Robert Bays +# Date: 2006 +# Description: +# +# **** End License **** +# +# Vyatta grub customization setup script. +# +# + +ROOT_PARTITION="$1" +GRUB_OPTIONS="$2" +ROOTFSDIR="$3" + +[ "$ROOT_PARTITION" ] || exit 1 + +# Grub options +GRUB_OPTIONS="$GRUB_OPTIONS quiet" + +# Path to standalone root password reset script +pass_reset=/opt/vyatta/sbin/standalone_root_pw_reset + +# Output to both console (last device is /dev/console) +vty_console="console=ttyS0,9600 console=tty0" +serial_console="console=tty0 console=ttyS0,9600" + +# If vga_logo is set, enable use of the VGA monitor for displaying the +# logo during boot. The "vga=" boot command specifies a VGA mode that +# is encoded as shown below. We pick a value that is likely to work +# on most systems: +# +# Color depth | 640x480 | 800x600 | 1024x768 | 1280x1024 +# -----------------+---------+---------+----------+---------- +# 256 (8bit) | 769 771 773 775 +# 32000 (15bit) | 784 787 790 793 +# 65000 (16bit) | 785 788 791 794 +# 16.7 Mill.(24bit)| 786 789 792 795 +# + vga_logo="vga=785" + + # get list of kernels, except Xen + kernel_versions=$(ls /boot/vmlinuz-* 2> /dev/null | grep -v xen | sed 's:/boot/vmlinuz::g' | sort -r) + + # get xen kernel info + xen_kernel_version=$(ls /boot/vmlinuz*xen 2> /dev/null | sed 's:/boot/vmlinuz::g' | sort -r) + xen_version=$(ls /boot/ | grep xen- | sort -r) + + # Figure out whether we are running on the serial or KVM console: + if [ "`tty`" == "/dev/ttyS0" ]; then + # Since user is running on serial console, make that the default. + default_console=1 + else + # Since user is running on KVM console, make that the default + default_console=0 + fi + + # Read UUID off of filesystem and use it to tell GRUB where to mount drive + # This allows device to move around and grub will still find it + uuid=$(dumpe2fs -h /dev/${ROOT_PARTITION} 2>/dev/null | awk '/^Filesystem UUID/ {print $3}') + if [ -z "$uuid" ] + then + # TODO: use /proc/mount if dumpe2fs fails + echo "Unable to read filesystem UUID. Exiting." + exit 1 + else + grub_root="root=UUID=$uuid ro" + fi + +( + # create the grub.cfg file for grub + # The "default=" line selects which boot option will be used by default. + # Numbering starts at 0 for the first option. + echo -e "set default=$default_console" + echo "set timeout=5" + #echo "#set splashimage=(hd0,0)/grub/splash.xpm.gz" + # set serial console options + echo -e "serial --unit=0 --speed=9600" + echo "terminal serial" + echo "set root=$grub_root" + + echo "" + echo "echo -n Press ESC to enter the Grub menu..." + echo "if sleep --verbose --interruptible 5 ; then" + echo -e "\tterminal console" + echo -e "\techo -n Press the ESC key to enter the Grub menu..." + echo -e "\tif sleep --verbose --interruptible 5 ; then" + echo -e "\t\tterminal serial" + echo -e "\t\tset timeout=0" + echo -e "\tfi" + echo "fi" + echo "" + + if [ -f "/boot/vmlinuz" ]; then + # Set first system boot option. Make KVM the default console in this one. + echo -e "menuentry \"Vyatta OFR (KVM console)\" {" + #echo -e "\tlinux /boot/vmlinuz $GRUB_OPTIONS $vga_logo $vty_console" + echo -e "\tlinux /boot/vmlinuz $GRUB_OPTIONS $vga_logo $vty_console" + echo -e "\tinitrd /boot/initrd.img" + echo -e "}" + + # Set the second system boot option. Make the serial port be the default + # console in this one. + echo + echo -e "menuentry \"Vyatta OFR (Serial console)\" {" + echo -e "\tlinux /boot/vmlinuz $GRUB_OPTIONS $serial_console" + echo -e "\tinitrd /boot/initrd.img" + echo -e "}" + fi + + # create xen kernels if they exist + if [ -n "$xen_kernel_version" ]; then + for xversion in $xen_kernel_version; do + echo + echo + echo -e "menuentry \"Vyatta Xen linux$xversion dom0\" {" + echo -e "\tmultiboot /boot/$xen_version " + echo -e "\tmodule /boot/vmlinuz$xversion $GRUB_OPTIONS $vty_console" + echo -e "\tmodule /boot/initrd.img$xversion" + echo -e "}" + done + fi + + # create other kernels if they exist + if [ -n "$kernel_versions" ]; then + for kversion in $kernel_versions; do + echo + echo -e "menuentry \"Vyatta OFR linux$kversion (KVM console)\" {" + echo -e "\tlinux /boot/vmlinuz$kversion $GRUB_OPTIONS $vty_console" + echo -e "\tinitrd /boot/initrd.img$kversion" + echo -e "}" + echo + echo -e "menuentry \"Vyatta OFR linux$kversion (Serial console)\" {" + echo -e "\tlinux /boot/vmlinuz$kversion $GRUB_OPTIONS $serial_console" + echo -e "\tinitrd /boot/initrd.img$kversion" + echo -e "}" + done + fi + + # Set options for root password reset. Offer + # options for both serial and KVM console. + + echo + echo -e "menuentry \"Root password reset to factory (KVM console)\" {" + echo -e "\tlinux /boot/vmlinuz $GRUB_OPTIONS $vty_console init=$pass_reset" + echo -e "\tinitrd /boot/initrd.img" + echo -e "}" + + echo + echo -e "menuentry \"Root password reset to factory (Serial console)\" {" + echo -e "\tlinux /boot/vmlinuz $GRUB_OPTIONS $serial_console init=$pass_reset" + echo -e "\tinitrd /boot/initrd.img" + echo -e "}" +) >"$ROOTFSDIR"/boot/grub/grub.cfg + +( [ -s /boot/grub/menu.lst ] && + upgrade-from-grub-legacy && + rm -f /boot/grub/menu.lst* +) || true diff --git a/scripts/install-system b/scripts/install-system index d6ea9b74..a704d4a7 100755 --- a/scripts/install-system +++ b/scripts/install-system @@ -612,131 +612,20 @@ install_grub () { grub-install --no-floppy --root-directory=$rootfsdir /dev/$INSTALL_DRIVE >>$INSTALL_LOG 2>&1 progress_indicator stop - # TODO: This needs to be changed to map to the correct drive - part=$(echo $ROOT_PARTITION | sed 's/[^0-9]//g') - if [ "$(cat /sys/block/$orig_install_drive/removable)" == 0 ]; then - root=$(grep $orig_install_drive $rootfsdir/boot/grub/device.map | /usr/bin/awk -F')' '{ print $1 }') - root="$root,$part)" - else - root="(hd0,$part)" - echo "This looks like a removable device. Setting root grub device to $root." - echo "This looks like a removable device. Setting root grub device to $root." >> $INSTALL_LOG - fi - - # get list of kernels, except Xen - kernel_versions=$(ls /boot/vmlinuz-* 2> /dev/null | grep -v xen | sed 's:/boot/vmlinuz::g' | sort -r) - - # get xen kernel info - xen_kernel_version=$(ls /boot/vmlinuz*xen 2> /dev/null | sed 's:/boot/vmlinuz::g' | sort -r) - xen_version=$(ls /boot/ | grep xen- | sort -r) - - # Figure out whether we are running on the serial or KVM console: - if [ "`tty`" == "/dev/ttyS0" ]; then - # Since user is running on serial console, make that the default. - DEFAULT_CONSOLE="1" - else - # Since user is running on KVM console, make that the default - DEFAULT_CONSOLE="0" + # Assume no dma if the disk is smaller than 10G (such as a CF drive) + size=$(get_drive_size $INSTALL_DRIVE) + if [[ $size -lt 11000 && ! $grub_options =~ 'ide=nodma' ]] + then + grub_options="ide=nodma" fi - # Read UUID off of filesystem and use it to tell GRUB where to mount drive - # This allows device to move around and grub will still find it - local rootdev="/dev/$ROOT_PARTITION"; - uuid=$(dumpe2fs -h $rootdev 2>/dev/null | awk '/^Filesystem UUID/ {print $3}') - if [ -z "$uuid" ] + if /opt/vyatta/sbin/grub-setup "$ROOT_PARTITION" "$grub_options" /mnt/rootfs >>$INSTALL_LOG then - echo "Unable to read filesystem UUID. Exiting." - exit 1 + echo "OK" else - GRUB_ROOT="root=UUID=$uuid ro" + echo Grub failed to install! + exit 1 fi - - ( - # create the grub.cfg file for grub - # The "default=" line selects which boot option will be used by default. - # Numbering starts at 0 for the first option. - echo -e "set default=$DEFAULT_CONSOLE" - echo "set timeout=5" - #echo "#set splashimage=(hd0,0)/grub/splash.xpm.gz" - # set serial console options - echo -e "serial --unit=0 --speed=9600" - echo "terminal serial" - echo "set root=$root" - - echo "" - echo "echo -n Press ESC to enter the Grub menu..." - echo "if sleep --verbose --interruptible 5 ; then" - echo -e "\tterminal console" - echo -e "\techo -n Press the ESC key to enter the Grub menu..." - echo -e "\tif sleep --verbose --interruptible 5 ; then" - echo -e "\t\tterminal serial" - echo -e "\t\tset timeout=0" - echo -e "\tfi" - echo "fi" - echo "" - - if [ -f "/boot/vmlinuz" ]; then - # Set first system boot option. Make KVM the default console in this one. - echo -e "menuentry \"Vyatta OFR (KVM console)\" {" - echo -e "\tlinux /boot/vmlinuz $GRUB_ROOT $GRUB_OPTIONS $VGA_LOGO $VTY_CONSOLE" - echo -e "\tinitrd /boot/initrd.img" - echo -e "}" - - # Set the second system boot option. Make the serial port be the default - # console in this one. - echo - echo -e "menuentry \"Vyatta OFR (Serial console)\" {" - echo -e "\tlinux /boot/vmlinuz $GRUB_ROOT $GRUB_OPTIONS $SERIAL_CONSOLE" - echo -e "\tinitrd /boot/initrd.img" - echo -e "}" - fi - - # create xen kernels if they exist - if [ -n "$xen_kernel_version" ]; then - for xversion in $xen_kernel_version; do - echo - echo - echo -e "menuentry \"Vyatta Xen linux$xversion dom0\" {" - echo -e "\tmultiboot /boot/$xen_version " - echo -e "\tmodule /boot/vmlinuz$xversion $GRUB_ROOT $GRUB_OPTIONS $VTY_CONSOLE" - echo -e "\tmodule /boot/initrd.img$xversion" - echo -e "}" - done - fi - - # create other kernels if they exist - if [ -n "$kernel_versions" ]; then - for kversion in $kernel_versions; do - echo - echo -e "menuentry \"Vyatta OFR linux$kversion (KVM console)\" {" - echo -e "\tlinux /boot/vmlinuz$kversion $GRUB_ROOT $GRUB_OPTIONS $VTY_CONSOLE" - echo -e "\tinitrd /boot/initrd.img$kversion" - echo -e "}" - echo - echo -e "menuentry \"Vyatta OFR linux$kversion (Serial console)\" {" - echo -e "\tlinux /boot/vmlinuz$kversion $GRUB_ROOT $GRUB_OPTIONS $SERIAL_CONSOLE" - echo -e "\tinitrd /boot/initrd.img$kversion" - echo -e "}" - done - fi - - # Set options for root password reset. Offer - # options for both serial and KVM console. - - echo - echo -e "menuentry \"Root password reset to factory (KVM console)\" {" - echo -e "\tlinux /boot/vmlinuz $GRUB_ROOT $GRUB_OPTIONS $VTY_CONSOLE init=$PWRESET" - echo -e "\tinitrd /boot/initrd.img" - echo -e "}" - - echo - echo -e "menuentry \"Root password reset to factory (Serial console)\" {" - echo -e "\tlinux /boot/vmlinuz $GRUB_ROOT $GRUB_OPTIONS $SERIAL_CONSOLE init=$PWRESET" - echo -e "\tinitrd /boot/initrd.img" - echo -e "}" - ) >"$rootfsdir/boot/grub/grub.cfg" - - echo "OK" } # ask for user input on the parted and skip setup methods diff --git a/scripts/standalone_root_pw_reset b/scripts/standalone_root_pw_reset index b173f22d..336d534d 100755 --- a/scripts/standalone_root_pw_reset +++ b/scripts/standalone_root_pw_reset @@ -70,13 +70,13 @@ cp $CF ${CF}.before_pwrecovery echo "Reseting the root password..." # change system first -newpwd=$(mkpasswd -H md5 vyatta) +newpwd=`mkpasswd -H md5 vyatta` usermod --password "$newpwd" root # escape / in encrypted passwd pw=$(echo $newpwd | sed 's:/:\\/:g') sed -i \ - -e "/^.* user root {/,/}/s/encrypted-password:.*\$/encrypted-password: \"$pw\"/" \ + -e "/^.* user root {/,/}/s/encrypted-password .*\$/encrypted-password \"$pw\"/" \ $CF echo $(date "+%b%e %T") $(hostname) "Root password reset to factory value" \ diff --git a/sysconf/vyatta-sysctl.conf b/sysconf/vyatta-sysctl.conf index cb03a614..fae11945 100644 --- a/sysconf/vyatta-sysctl.conf +++ b/sysconf/vyatta-sysctl.conf @@ -24,3 +24,6 @@ net.ipv4.icmp_errors_use_inbound_ifaddr=1 # Turn off SACK since it causes problems with MD5 due to lack of options space net.ipv4.tcp_sack=0 + +# Enable packet forwarding for IPv6 +net.ipv6.conf.all.forwarding=1 diff --git a/templates/interfaces/bridge/node.tag/address/node.def b/templates/interfaces/bridge/node.tag/address/node.def index 52188386..3f04ec06 100644 --- a/templates/interfaces/bridge/node.tag/address/node.def +++ b/templates/interfaces/bridge/node.tag/address/node.def @@ -7,5 +7,6 @@ delete:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete allowed: echo "dhcp <>" comp_help:Possible completions: <x.x.x.x/x> Set the IP address and prefix length - dhcp\t\t\t\tSet the IP address and prefix length via DHCP + <h:h:h:h:h:h:h:h/x> Set the IPv6 address and prefix length + dhcp Set the IP address and prefix length via DHCP diff --git a/templates/interfaces/tunnel/node.tag/address/node.def b/templates/interfaces/tunnel/node.tag/address/node.def index 07ea4a0e..3310ee00 100644 --- a/templates/interfaces/tunnel/node.tag/address/node.def +++ b/templates/interfaces/tunnel/node.tag/address/node.def @@ -9,4 +9,5 @@ update:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update delete:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../@)"; "Error deleting address $VAR(@) on interface $VAR(../@)" comp_help:Possible completions: - <x.x.x.x/x> Set the IP address and prefix length + <x.x.x.x/x> Set the IP address and prefix length + <h:h:h:h:h:h:h:h/x> Set the IPv6 address and prefix length diff --git a/templates/service/dns-forwarding/cache-size/node.def b/templates/service/dns-forwarding/cache-size/node.def new file mode 100644 index 00000000..3a73f308 --- /dev/null +++ b/templates/service/dns-forwarding/cache-size/node.def @@ -0,0 +1,4 @@ +type: u32 +default:150 +help: Set DNS forwarding cache size +syntax:expression: ($VAR(@) >=0 && $VAR(@) < 10001) ; "Cache size must be between 0 and 10000" diff --git a/templates/service/dns-forwarding/node.def b/templates/service/dns-forwarding/node.def new file mode 100644 index 00000000..f84e4f02 --- /dev/null +++ b/templates/service/dns-forwarding/node.def @@ -0,0 +1,10 @@ +help: Configure Domain Name Server (DNS) forwarding +syntax:expression: exec "/opt/vyatta/sbin/vyatta-dns-forwarding.pl --nameserver"; "No nameserver exists to forward DNS queries" +create:expression: "/opt/vyatta/sbin/vyatta-dns-forwarding.pl --init-dnsforwarding" +delete:expression: "touch /tmp/dnsmasq.$PPID" +end:expression: "if [ -f \"/tmp/dnsmasq.$PPID\" ]; then \ + sudo /opt/vyatta/sbin/vyatta-dns-forwarding.pl --stop-dnsforwarding \ + rm /tmp/dnsmasq.$PPID; \ + else \ + sudo /opt/vyatta/sbin/vyatta-dns-forwarding.pl --update-dnsforwarding; \ + fi; " diff --git a/templates/system/static-host-mapping/host-name/node.def b/templates/system/static-host-mapping/host-name/node.def index 189025e3..187b21dd 100644 --- a/templates/system/static-host-mapping/host-name/node.def +++ b/templates/system/static-host-mapping/host-name/node.def @@ -3,9 +3,14 @@ type: txt help: Set to map DNS names to system interfaces syntax:expression: pattern $VAR(@) "^[-a-zA-Z0-9.]+$" ; "invalid host name $VAR(@)" commit:expression: $VAR(./inet) != ""; "IP address for the static mapping must be set" -end:expression: "sudo sh -c \"\ - touch /etc/hosts; \ - sed -i '/ $VAR(@) .*#vyatta entry/d' /etc/hosts; \ - if [ -z \"$VAR(./inet/@)\" ]; then exit 0; fi; \ - declare -a aliases=( $VAR(alias/@@) ); \ - echo \\\"$VAR(inet/@)\t $VAR(@) \\${aliases[*]} \t #vyatta entry\\\" \ >> /etc/hosts\" " +end: sudo sh -c " + touch /etc/hosts + sed -i '/ $VAR(@) .*#vyatta entry/d' /etc/hosts + if [ -z \"$VAR(./inet/@)\" ]; then + if [ -d /opt/vyatta/config/active/service/dns-forwarding ]; then /etc/init.d/dnsmasq restart >&/dev/null; fi + exit 0 + fi + declare -a aliases=( $VAR(alias/@@) ) + echo -e \"$VAR(inet/@)\\t $VAR(@) \${aliases[*]} \\t #vyatta entry\" >> /etc/hosts + if [ -d /opt/vyatta/config/active/service/dns-forwarding ]; then /etc/init.d/dnsmasq restart >&/dev/null; fi" + |