diff --git a/net/tayga/Makefile b/net/tayga/Makefile
index e350d4580..78cffb74a 100644
--- a/net/tayga/Makefile
+++ b/net/tayga/Makefile
@@ -1,6 +1,5 @@
PLUGIN_NAME= tayga
-PLUGIN_VERSION= 1.1
-PLUGIN_REVISION= 2
+PLUGIN_VERSION= 1.2
PLUGIN_COMMENT= Tayga NAT64
PLUGIN_DEPENDS= tayga
PLUGIN_MAINTAINER= m.muenz@gmail.com
diff --git a/net/tayga/pkg-descr b/net/tayga/pkg-descr
index 0ba5d319c..4ff06aba2 100644
--- a/net/tayga/pkg-descr
+++ b/net/tayga/pkg-descr
@@ -7,6 +7,10 @@ networks where dedicated NAT64 hardware would be overkill.
Plugin Changelog
================
+1.2
+
+* Custom IPv6 routing option
+
1.1
* Register Tayga virtual interface
diff --git a/net/tayga/src/etc/inc/plugins.inc.d/tayga.inc b/net/tayga/src/etc/inc/plugins.inc.d/tayga.inc
index e27304334..8efe00f86 100644
--- a/net/tayga/src/etc/inc/plugins.inc.d/tayga.inc
+++ b/net/tayga/src/etc/inc/plugins.inc.d/tayga.inc
@@ -70,9 +70,9 @@ function tayga_interfaces()
return $interfaces;
}
$oic = array('enable' => true);
- $oic['if'] = 'nat64';
+ $oic['if'] = 'tayga';
$oic['descr'] = 'Tayga';
- $oic['type'] = 'none';
+ $oic['type'] = 'group';
$oic['virtual'] = true;
$oic['networks'] = array();
$interfaces['tayga'] = $oic;
diff --git a/net/tayga/src/etc/rc.d/opnsense-tayga b/net/tayga/src/etc/rc.d/opnsense-tayga
index d86a7dca3..d911e8a69 100755
--- a/net/tayga/src/etc/rc.d/opnsense-tayga
+++ b/net/tayga/src/etc/rc.d/opnsense-tayga
@@ -29,8 +29,11 @@ tayga_start()
sleep 1
ifconfig nat64 inet ${tayga_v4destination}/32 ${tayga_v4address}
ifconfig nat64 inet6 ${tayga_v6destination}/128
- route -6 add ${tayga_v6prefix} -interface nat64
+ ifconfig nat64 group tayga
route -4 add ${tayga_v4pool} -interface nat64
+ if [ "$tayga_v6routedisabled" != "YES" ]; then
+ route -6 add ${tayga_v6prefix} -interface nat64
+ fi
}
tayga_stop()
diff --git a/net/tayga/src/opnsense/mvc/app/controllers/OPNsense/Tayga/forms/general.xml b/net/tayga/src/opnsense/mvc/app/controllers/OPNsense/Tayga/forms/general.xml
index 14a6c5272..db60e2fc7 100644
--- a/net/tayga/src/opnsense/mvc/app/controllers/OPNsense/Tayga/forms/general.xml
+++ b/net/tayga/src/opnsense/mvc/app/controllers/OPNsense/Tayga/forms/general.xml
@@ -41,4 +41,10 @@
text
IPv6 hosts which send traffic through Tayga will be dynamically assigned an IPv4 address from this pool. Can be any size, but each IPv6 host requires one address.
+
+ general.v6routedisabled
+
+ checkbox
+ This is an advanced setting for selective routing scenarios. It will prevent installing the route which routes the IPv6 Prefix to Tayga. This requires assigning and locking the nat64 interface, enabling dynamic gateway policy, configuring a dynamic IPv6 gateway and adding custom routes.
+
diff --git a/net/tayga/src/opnsense/mvc/app/models/OPNsense/Tayga/General.xml b/net/tayga/src/opnsense/mvc/app/models/OPNsense/Tayga/General.xml
index 63680a3db..3b8931b41 100644
--- a/net/tayga/src/opnsense/mvc/app/models/OPNsense/Tayga/General.xml
+++ b/net/tayga/src/opnsense/mvc/app/models/OPNsense/Tayga/General.xml
@@ -1,7 +1,7 @@
//OPNsense/tayga/general
Tayga configuration
- 0.0.4
+ 1.2.0
0
@@ -30,5 +30,9 @@
192.168.255.0/24
Y
+
+ 0
+ Y
+
diff --git a/net/tayga/src/opnsense/service/conf/actions.d/actions_tayga.conf b/net/tayga/src/opnsense/service/conf/actions.d/actions_tayga.conf
index 5d4cf502a..9b114dff9 100644
--- a/net/tayga/src/opnsense/service/conf/actions.d/actions_tayga.conf
+++ b/net/tayga/src/opnsense/service/conf/actions.d/actions_tayga.conf
@@ -5,13 +5,20 @@ type:script_output
message:stopping tayga
[start]
-command:/usr/local/opnsense/scripts/OPNsense/Tayga/setup.sh; /usr/local/etc/rc.d/opnsense-tayga start
+command:
+ /usr/local/opnsense/scripts/OPNsense/Tayga/setup.sh;
+ /usr/local/etc/rc.d/opnsense-tayga start;
+ /usr/local/etc/rc.routing_configure
parameters:
type:script_output
message:starting tayga
[restart]
-command:/usr/local/etc/rc.d/opnsense-tayga stop; /usr/local/opnsense/scripts/OPNsense/Tayga/setup.sh; /usr/local/etc/rc.d/opnsense-tayga start
+command:
+ /usr/local/etc/rc.d/opnsense-tayga stop;
+ /usr/local/opnsense/scripts/OPNsense/Tayga/setup.sh;
+ /usr/local/etc/rc.d/opnsense-tayga start;
+ /usr/local/etc/rc.routing_configure
parameters:
type:script_output
message:restarting tayga
diff --git a/net/tayga/src/opnsense/service/templates/OPNsense/Tayga/tayga b/net/tayga/src/opnsense/service/templates/OPNsense/Tayga/tayga
index c84c7881d..93cae0d9e 100644
--- a/net/tayga/src/opnsense/service/templates/OPNsense/Tayga/tayga
+++ b/net/tayga/src/opnsense/service/templates/OPNsense/Tayga/tayga
@@ -7,6 +7,11 @@ tayga_v4pool={{ OPNsense.tayga.general.v4pool }}
tayga_v6prefix={{ OPNsense.tayga.general.v6prefix }}
tayga_v6address={{ OPNsense.tayga.general.v6address }}
tayga_v6destination={{ OPNsense.tayga.general.v6destination }}
+{% if helpers.exists('OPNsense.tayga.general.v6routedisabled') and OPNsense.tayga.general.v6routedisabled == '1' %}
+tayga_v6routedisabled="YES"
+{% else %}
+tayga_v6routedisabled="NO"
+{% endif %}
{% else %}
tayga_enable="NO"
{% endif %}