net/haproxy: add support for DNS resolution over TCP, refs #2644

This commit is contained in:
Frank Wall
2022-01-19 23:51:48 +01:00
parent 66d0b8682b
commit 67946800aa
4 changed files with 11 additions and 7 deletions
+3
View File
@@ -11,6 +11,9 @@ Plugin Changelog
WARNING: This release switches to the HAProxy 2.4 release series,
which may result in incompatible changes for some users.
Added:
* add support for DNS resolution over TCP (#2644)
Changed:
* upgrade to HAProxy 2.4 release series (#2644)
* disable strict-limits for safekeeping (#2644)
@@ -24,7 +24,7 @@
<style>tokenize</style>
<allownew>true</allownew>
<sortable>true</sortable>
<help><![CDATA[Add nameservers to this resolver configuration, i.e. 127.0.0.1:53 or 192.168.1.1:53. Use TAB key to complete typing.]]></help>
<help><![CDATA[Add nameservers to this resolver configuration. They may be prefixed with either tcp@ or udp@ to use the TCP or UDP protocol respectively. For example 192.168.1.1:53, tcp@192.168.1.1:53 or udp@192.168.1.1:53. Use TAB key to complete typing.]]></help>
<hint>Enter ip:port here. Finish with TAB.</hint>
</field>
<field>
@@ -55,7 +55,7 @@
<id>resolver.accepted_payload_size</id>
<label>Max DNS answer size</label>
<type>text</type>
<help><![CDATA[Defines the maximum payload size accepted by HAProxy and announced to all the name servers configured in this resolvers section. The default is 512 bytes, the maximum allowed is 8192.]]></help>
<help><![CDATA[Defines the maximum payload size accepted by HAProxy and announced to all the name servers configured in this resolvers section. The default is 512 bytes, the maximum allowed is 8192 for UDP and 65535 for TCP.]]></help>
<advanced>true</advanced>
</field>
<field>
@@ -2796,9 +2796,9 @@
<Required>N</Required>
<Sorted>Y</Sorted>
<multiple>Y</multiple>
<mask>/^((([0-9a-zA-Z._\-\*:\[\]]+:[0-9]+(-[0-9]+)?)([,]){0,1}))*/u</mask>
<mask>/^((((udp@|tcp@)?[0-9a-zA-Z._\-\*:\[\]]+:[0-9]+(-[0-9]+)?)([,]){0,1}))*/u</mask>
<ChangeCase>lower</ChangeCase>
<ValidationMessage>Please provide a valid nameserver address, i.e. 127.0.0.1:53, [::1]:53 or 192.168.1.1:53.</ValidationMessage>
<ValidationMessage>Please provide a valid nameserver address, i.e. 127.0.0.1:53, [::1]:53 or tcp@192.168.1.1:53.</ValidationMessage>
</nameservers>
<parse_resolv_conf type="BooleanField">
<default>0</default>
@@ -2825,8 +2825,8 @@
</timeout_retry>
<accepted_payload_size type="IntegerField">
<MinimumValue>0</MinimumValue>
<MaximumValue>8192</MaximumValue>
<ValidationMessage>Should be a number between 0 and 8192</ValidationMessage>
<MaximumValue>65535</MaximumValue>
<ValidationMessage>Should be a number between 0 and 65535</ValidationMessage>
<Required>N</Required>
</accepted_payload_size>
<hold_valid type="TextField">
@@ -1174,7 +1174,8 @@ userlist stats_auth
resolvers {{resolver.id}}
{% if resolver.nameservers|default("") != "" %}
{% for nameserver in resolver.nameservers.split(",") %}
nameserver {{nameserver}} {{nameserver}}
{# # special characters are not supported in server names #}
nameserver {{nameserver|replace('@', '_')}} {{nameserver}}
{% endfor %}
{% endif %}
{% if resolver.parse_resolv_conf|default("") == "1" %}