summaryrefslogtreecommitdiff
path: root/interface-definitions
diff options
context:
space:
mode:
authorJernej Jakob <jernej.jakob@gmail.com>2020-04-14 17:15:58 +0200
committerJernej Jakob <jernej.jakob@gmail.com>2020-04-16 12:48:59 +0200
commitbb9f99853c723c5100c3fffbc592ba79f3abebfe (patch)
tree77b5e7da7b6b20bdec5b282108148a54df8c3300 /interface-definitions
parentf50877bff8afed409f02d2978da6a70c383ccea1 (diff)
downloadvyos-1x-bb9f99853c723c5100c3fffbc592ba79f3abebfe.tar.gz
vyos-1x-bb9f99853c723c5100c3fffbc592ba79f3abebfe.zip
openvpn: T149: IPv6 support
- allow configuring IPv6 server addresses and push options - add IPv6 server client IP pool - add IPv6 push dhcp-option DNS6 - allow configuring IPv6 server client addresses - allow configuring IPv6 site-to-site addresses - validate all IPv6 options and addresses - use protos that explicitely open an IPv6 listening socket (tcp6-server, tcp6-client, udp6) as the default on Linux listens on IPv4 only (https://community.openvpn.net/openvpn/ticket/360) - add validator for any IPv6 address, host or network (used by pool)
Diffstat (limited to 'interface-definitions')
-rw-r--r--interface-definitions/interfaces-openvpn.xml.in94
1 files changed, 79 insertions, 15 deletions
diff --git a/interface-definitions/interfaces-openvpn.xml.in b/interface-definitions/interfaces-openvpn.xml.in
index 574a3a58c..b5da8cf76 100644
--- a/interface-definitions/interfaces-openvpn.xml.in
+++ b/interface-definitions/interfaces-openvpn.xml.in
@@ -233,15 +233,15 @@
</node>
<tagNode name="local-address">
<properties>
- <help>Local IP address of tunnel</help>
+ <help>Local IP address of tunnel (IPv4 or IPv6)</help>
<constraint>
- <validator name="ipv4-address"/>
+ <validator name="ip-address"/>
</constraint>
</properties>
<children>
<leafNode name="subnet-mask">
<properties>
- <help>Subnet-mask for local IP address of tunnel</help>
+ <help>Subnet-mask for local IP address of tunnel (IPv4 only)</help>
<constraint>
<validator name="ipv4-address"/>
</constraint>
@@ -256,8 +256,12 @@
<format>ipv4</format>
<description>Local IPv4 address</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Local IPv6 address</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-address"/>
+ <validator name="ip-address"/>
</constraint>
</properties>
</leafNode>
@@ -341,9 +345,14 @@
<format>ipv4</format>
<description>Remote end IPv4 address</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Remote end IPv6 address</description>
+ </valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
+ <multi/>
</properties>
</leafNode>
<leafNode name="remote-host">
@@ -351,7 +360,11 @@
<help>Remote host to connect to (dynamic if not set)</help>
<valueHelp>
<format>ipv4</format>
- <description>IP address of remote host</description>
+ <description>IPv4 address of remote host</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address of remote host</description>
</valueHelp>
<valueHelp>
<format>txt</format>
@@ -411,9 +424,14 @@
<format>ipv4</format>
<description>Client IPv4 address</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Client IPv6 address</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-address"/>
+ <validator name="ip-address"/>
</constraint>
+ <multi/>
</properties>
</leafNode>
<leafNode name="push-route">
@@ -423,21 +441,29 @@
<format>ipv4net</format>
<description>IPv4 network and prefix length</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 network and prefix length</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-prefix"/>
+ <validator name="ip-prefix"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="subnet">
<properties>
- <help>Subnet belonging to the client</help>
+ <help>Subnet belonging to the client (iroute)</help>
<valueHelp>
<format>ipv4net</format>
<description>IPv4 network and prefix length belonging to the client</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 network and prefix length belonging to the client</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-prefix"/>
+ <validator name="ip-prefix"/>
</constraint>
<multi/>
</properties>
@@ -446,7 +472,7 @@
</tagNode>
<node name="client-ip-pool">
<properties>
- <help>Pool of client IP addresses</help>
+ <help>Pool of client IPv4 addresses</help>
</properties>
<children>
<leafNode name="disable">
@@ -496,6 +522,31 @@
</leafNode>
</children>
</node>
+ <node name="client-ipv6-pool">
+ <properties>
+ <help>Pool of client IPv6 addresses</help>
+ </properties>
+ <children>
+ <leafNode name="base">
+ <properties>
+ <help>Client IPv6 pool base address with optional prefix length</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>Client IPv6 pool base address with optional prefix length (defaults: base = server subnet + 0x1000, prefix length = server prefix length)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="disable">
+ <properties>
+ <help>Disable client IPv6 pool</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="domain-name">
<properties>
<help>DNS suffix to be pushed to all clients</help>
@@ -524,8 +575,12 @@
<format>ipv4</format>
<description>DNS server IPv4 address</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>DNS server IPv6 address</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-address"/>
+ <validator name="ip-address"/>
</constraint>
<multi/>
</properties>
@@ -537,8 +592,12 @@
<format>ipv4net</format>
<description>IPv4 network and prefix length</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 network and prefix length</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-prefix"/>
+ <validator name="ip-prefix"/>
</constraint>
<multi/>
</properties>
@@ -555,9 +614,14 @@
<format>ipv4net</format>
<description>IPv4 network and prefix length</description>
</valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 network and prefix length</description>
+ </valueHelp>
<constraint>
- <validator name="ipv4-prefix"/>
+ <validator name="ip-prefix"/>
</constraint>
+ <multi/>
</properties>
</leafNode>
<leafNode name="topology">
@@ -568,7 +632,7 @@
</completionHelp>
<valueHelp>
<format>net30</format>
- <description>net30 topology</description>
+ <description>net30 topology (default)</description>
</valueHelp>
<valueHelp>
<format>point-to-point</format>
@@ -579,7 +643,7 @@
<description>Subnet topology</description>
</valueHelp>
<constraint>
- <regex>(subnet|point-to-point)</regex>
+ <regex>(subnet|point-to-point|net30)</regex>
</constraint>
</properties>
</leafNode>