summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--debian/control4
-rw-r--r--debian/copyright3
-rw-r--r--debian/vyatta-cfg-system.postinst.in18
-rw-r--r--scripts/dns-forwarding/vyatta-dns-forwarding.pl130
-rwxr-xr-xscripts/grub-setup176
-rwxr-xr-xscripts/install-system129
-rwxr-xr-xscripts/standalone_root_pw_reset4
-rw-r--r--sysconf/vyatta-sysctl.conf3
-rw-r--r--templates/interfaces/bridge/node.tag/address/node.def3
-rw-r--r--templates/interfaces/tunnel/node.tag/address/node.def3
-rw-r--r--templates/service/dns-forwarding/cache-size/node.def4
-rw-r--r--templates/service/dns-forwarding/node.def10
-rw-r--r--templates/system/static-host-mapping/host-name/node.def17
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"
+