pgreco / rpms / ipa

Forked from forks/areguera/rpms/ipa 4 years ago
Clone

Blame SOURCES/0075-Prefer-TCP-connections-to-UDP-in-krb5-clients.patch

e3ffab
From 0538c3040f65dea97a8e98eab7be2c8fc8ff17a9 Mon Sep 17 00:00:00 2001
e3ffab
From: Nathaniel McCallum <npmccallum@redhat.com>
e3ffab
Date: Fri, 5 Dec 2014 11:18:55 -0500
e3ffab
Subject: [PATCH] Prefer TCP connections to UDP in krb5 clients
e3ffab
e3ffab
In general, TCP is a better fit for FreeIPA due to large packet sizes.
e3ffab
e3ffab
However, there is also a specific need for TCP when using OTP. If a UDP
e3ffab
packet is delivered to the server and the server takes longer to process
e3ffab
it than the client timeout (likely), the OTP value will be resent.
e3ffab
Unfortunately, this will cause failures or even lockouts. Switching to
e3ffab
TCP avoids this problem altogether.
e3ffab
e3ffab
https://fedorahosted.org/freeipa/ticket/4725
e3ffab
e3ffab
Reviewed-By: Martin Kosek <mkosek@redhat.com>
e3ffab
---
e3ffab
 install/share/krb5.conf.template          | 1 +
e3ffab
 install/tools/ipa-replica-conncheck       | 1 +
e3ffab
 ipa-client/ipa-install/ipa-client-install | 1 +
e3ffab
 3 files changed, 3 insertions(+)
e3ffab
e3ffab
diff --git a/install/share/krb5.conf.template b/install/share/krb5.conf.template
e3ffab
index 7c82083e3331cfacccc1995cd9dfa6ddd88edd1f..6cb5ee34704cd6158e882bfa89fc597f3ff1bb0f 100644
e3ffab
--- a/install/share/krb5.conf.template
e3ffab
+++ b/install/share/krb5.conf.template
e3ffab
@@ -12,6 +12,7 @@ includedir /var/lib/sss/pubconf/krb5.include.d/
e3ffab
  rdns = false
e3ffab
  ticket_lifetime = 24h
e3ffab
  forwardable = yes
e3ffab
+ udp_preference_limit = 0
e3ffab
 $OTHER_LIBDEFAULTS
e3ffab
 [realms]
e3ffab
  $REALM = {
e3ffab
diff --git a/install/tools/ipa-replica-conncheck b/install/tools/ipa-replica-conncheck
e3ffab
index 88e42bafbc600fb7c36b7727c770e75edccd2196..22348fc2158e59afc2e1aa51e3d3f51e90b99e39 100755
e3ffab
--- a/install/tools/ipa-replica-conncheck
e3ffab
+++ b/install/tools/ipa-replica-conncheck
e3ffab
@@ -208,6 +208,7 @@ def configure_krb5_conf(realm, kdc, filename):
e3ffab
     libdefaults.append({'name':'rdns', 'type':'option', 'value':'false'})
e3ffab
     libdefaults.append({'name':'ticket_lifetime', 'type':'option', 'value':'24h'})
e3ffab
     libdefaults.append({'name':'forwardable', 'type':'option', 'value':'yes'})
e3ffab
+    libdefaults.append({'name':'udp_preference_limit', 'type':'option', 'value':'0'})
e3ffab
 
e3ffab
     opts.append({'name':'libdefaults', 'type':'section', 'value': libdefaults})
e3ffab
     opts.append({'name':'empty', 'type':'empty'})
e3ffab
diff --git a/ipa-client/ipa-install/ipa-client-install b/ipa-client/ipa-install/ipa-client-install
e3ffab
index 7b1e2f8b0b873375c14d02558dce65b68a5ad173..75a1711a7e1fdc9359ad02d55ad94d65af51ea93 100755
e3ffab
--- a/ipa-client/ipa-install/ipa-client-install
e3ffab
+++ b/ipa-client/ipa-install/ipa-client-install
e3ffab
@@ -1047,6 +1047,7 @@ def configure_krb5_conf(cli_realm, cli_domain, cli_server, cli_kdc, dnsok,
e3ffab
     libopts.append({'name':'rdns', 'type':'option', 'value':'false'})
e3ffab
     libopts.append({'name':'ticket_lifetime', 'type':'option', 'value':'24h'})
e3ffab
     libopts.append({'name':'forwardable', 'type':'option', 'value':'yes'})
e3ffab
+    libopts.append({'name':'udp_preference_limit', 'type':'option', 'value':'0'})
e3ffab
 
e3ffab
     # Configure KEYRING CCACHE if supported
e3ffab
     if kernel_keyring.is_persistent_keyring_supported():
e3ffab
-- 
e3ffab
2.1.0
e3ffab