joeware - never stop exploring... :)

Information about joeware mixed with wild and crazy opinions...

2/19/2010

Load Balancing Domain Controllers

by @ 11:52 pm. Filed under tech

Recently a friend pinged me about what I thought about load balancing Domain Controllers behind some sort of VIP (Virtual IP) hardware be it from Brocade, Cisco, Barracuda, F5 or from whatever vendor.

As a generic statement, I am against it. Period.

Active Directory was built in such a way that the load balancing[1] and redundancy is built in. The clients just have to be smart enough to utilize it. This can be done, I have seen people writing code in UNIX even to do the SRV record lookup and in fact one implementation I saw was arguably better than MSFT’s in how it chased after next best site and next best site after that, etc.

But joe… some apps just don’t do it right! True, so let’s just give them a pass to do things wrong[2]… No. Go back to the vendors and tell them you don’t consider them to be AD Integrated and you will find a different solution. Of course if someone already bought the product without actually consulting anyone with relevant technical skills then you are a little stuck but I would still avoid load balancing, instead point at the Domain DNS record and say have at it. Possibly showing them that you won’t crutch every single thing they throw your way will help get you or someone else with the insight to check out the product before purchase. These special crutching operations cost companies money both in having to work out the unique solutions but also in supporting them and teaching new support people about them. Can’t tell you how much fun it is to explain an environment to someone like “Well it works in this way with the exception of this which does that and that which does this, etc.

There can be issues with this practice other than you are helping some company sell a product that should be updated. When I received the initial question I knew there was a Kerberos issue with this but thought I would ask some of my intelligent friends on an MVP distribution list what they were aware of to see if there was more than I was thinking about and also if Microsoft had written up any documentation. One of the responses was really good that I would like to share here. It is from my friend and fellow Microsoft MVP Joe Kaplan.

—–Original Message—–
From: xxx [mailto:xxx] On Behalf Of Joe Kaplan
Sent: Friday, February 19, 2010 12:02 PM
To: xxx
Subject: Re: [xxx] Hardware Load Balancing Domain Controllers

There is a principle in Kerb that exactly one security account can be

associated with a given SPN. On a DC, various services run as system which

in turn ends up using the domain computer account. This is a different

account on each DC.

However, clients form requests for Kerb service tickets by using the DNS

name of the target service to form the SPN used in the request.

In a load balanced scenario, you run the risk of having a single DNS name

refer to multiple different hosts behind it. If in turn the service being

targeted is a service that accepts Kerb auth and the service is running as a

different user depending on the host (which would be the case for services

that are part of a DC), then you’ll get random Kerb auth failures (the

dreaded KERB_APP_ERR_MODIFIED). This is probably not what you want and

therefore a significant risk in this situation.

You could potentially get away with load balancing LDAP and use an alternate

DNS name that has no Kerb SPN associated with it. You’d get no Kerb auth

(only NTLM) and it might work in most cases as a result (no cross domain

moves because delegation is now broken but other stuff may be fine).

However, it probably isn’t a good idea.

You CAN do this the right way with ADAM by having the ADAM instances all run

as the same fixed domain user service account and creating an SPN to match

the DNS name of the load balancer front end you are using. ADAM makes it

hard on you to get SSL working in this instance by insisting that you use a

wildcard cert, but it can be reasonable. Note that this is typically also

what you do when load balancing web applications that require Kerb auth.

Joe K.

 

that is pretty clear, I asked Joe if he knew of any MSFT docs on the subject and his next response was even more clear.

 

From: xxx [xxx] On Behalf Of Joe Kaplan
Sent: Friday, February 19, 2010 1:15 PM
To: xxx
Subject: Re: [xxx] Hardware Load Balancing Domain Controllers

I have no idea on the documentation part. I’m just telling you what I know

based on personal experience and my knowledge of the underlying mechanisms

(which is unfortunately much deeper than I’d probably enjoy due to some of

my personal experiences to date :)).

I’m obviously recommending against doing this which is also the party line.

My opinion is that the benefit here is probably completely overshadowed by

the risk of having lots of things not work in ways that are very difficult

to understand. Getting predictable, positive results from this will likely

be non-trivial.*

Joe K.

* Emphasis is mine… Joe didn’t smack us in the face with his email like that. He is too nice. I am the mean joe… I was nice enough to get Joe’s permission to publish this though.

 

There are several MVPs whose opinion I will not question or at least not question when they are speaking to specific technologies. For example, I won’t question Guido Grillenmeier too much on AD Disaster Recovery.  I will not question Lee Flight too much on ADAM / ADLDS / and pretty much anything LDAP related. I won’t question my bestest buddy Dean Wells on batch commands… well I would now, he isn’t an MVP anymore… ;o)  Back to the point, I don’t question JoeK on his knowledge of .NET / Windows Auth / ADFS / Kerberos. If he says something works in a certain way, I thank him with great humility for taking the time to respond. More than once his comments in email or in newsgroup posts has helped me work issues out in those areas and there are changes in AdFind/Mod that are directly due to some of Joe’s comments/emails and even his .NET book – The .NET Developer’s Guide to Directory Services Programming. 🙂

 

   joe

 

[1] Granted the load balancing isn’t that great, keep taking on load until you fall over and don’t respond anymore… But that is exactly the same kind of load balancing you get with VIP in front of a DC. The VIP devices do not know how much load the DCs are under, at best they look at the port(s) you told it to worry about and it will stop giving out that IP if that/those port/s stop responding.

Anyone who has ever watched Exchange’s load balancing algorithms for using AD in a very big nasty Exchange deployments knows it is keep beating on the DCs until they fall over and then find another DC to gang up on and in all actuality Exchange is in a position to do better because it is one distributed app that could keep track of the connections to all of the DCs from all of the Exchange servers itself. I guess MSFT could add a special operational attribute to the rootdse of DCs (and ADAM servers) which indicated relative load when you asked for it and then you could get a VIP (or other app) smart enough to ask for that but I don’t see that happening anytime soon.

[2] As an example here… Say you have six kids you are babysitting. Four of them listen to you and follow your rules, the other two choose to randomly kick you in the shin and paint on your 52” Big Screen TV… Do you give those two kids a pass? No you correct their uncivilized behavior without delay. Think of your vendors as kids. They are working for your approval and your $’s. Make them earn it.

Rating 4.33 out of 5

From the mailbag… Finding groups with a certain string in the name

by @ 9:33 pm. Filed under tech

From: joe [mailto:support@joeware.net]
Sent: xxx
To: xxx
Subject: RE: AdFind

Hey xxx, you could do something like

adfind -default -f "&(objectcategory=group)(name=*webmaster*) " -dn

If you want to specify a domain other than the default, replace -default with -b domainDN

   joe

O’Reilly Active Directory Fourth Edition – http://www.joeware.net/win/ad4e.htm

From: xxx
Sent: xxx
To: ‘support@joeware.net’
Subject: AdFind

Joe:

Can/how can AdFind be used to find all groups in a domain that have for example, the string “webmaster” in the group name?

Any help would be appreciated.

Thanks,

xxx

Rating 3.00 out of 5

From the mailbag… Downloading tools

by @ 9:29 pm. Filed under general

—–Original Message—–
From: joe [mailto:support@joeware.net]
Sent: xxx
To: xxx
Subject: RE:

Hey xxx,

You should only try to download joeware utilities from my website… I can’t vouche for whether or not other sites have put anything into the executable.

http://www.joeware.net/freetools/tools/oldcmp/index.htm

I just now downloaded and unzipped it (using the standard OS unzip and WinZip) and it execute fine.

joe

O’Reilly Active Directory Fourth Edition – http://www.joeware.net/win/ad4e.htm

—–Original Message—–

From: xxx

Sent: xxx

To: support@joeware.net

Subject:

Good Morning;

I’ve tried to download the oldcmp.zip file from sereral sites this morning. When I go to extract I get an invalid or corrupt distribution. Please download again. Are there any known issues with the download version or am I missing something on my system to properly extract.

Thanks in Advance

xxx

Rating 3.00 out of 5

From the mailbag… How to dump SMTP addresses for users in a group

by @ 9:09 pm. Filed under tech

From: joe [mailto:joe@joeware.net]
Sent: xxx
To: xxx
Subject: RE: ADFIND – Group + Members Query

You can’t do this in one query, it will take at least two.

First query would be to find the group and dump its memberof values.

adfind -default –f "&(objectcategory=group)(name=groupname)" memberof

The second query (or set of queries) would be to dump the SMTP addresses of the members.

If you know that the members are all in the same domain as the group you can use this shortcut

adfind -this "group DN" -asq member mail

If the members could be in different domains, this can be done with a single command line but will be multiple queries. Specifically a query for every single member + 1

adfind -this "group DN" member -qlist | adfind mail

If you don’t need memberof this could be done in one command line

adfind -default -f "&(objectcategory=group)(name=groupname)" member -qlist | adfind mail

Oh that also assumes that mail will be the only SMTP address you need, if you need the primary and secondaries then this gets more complicated and would look like

adfind -default -f "&(objectcategory=group)(name=groupname)" member -qlist | adfind proxyaddresses -mvfilter proxyaddresses=smtp

And if you want that in CSV format, you simply add –CSV to the end

adfind -default -f "&(objectcategory=group)(name=groupname)" member -qlist | adfind proxyaddresses -mvfilter proxyaddresses=smtp -csv

Note that you may not be able to cut and paste the commands, sometimes outlook puts characters in that the CMD Prompt doesn’t like.

   joe

O’Reilly Active Directory Fourth Edition – http://www.joeware.net/win/ad4e.htm

 

From: xxx
Sent: xxx
To: joe@joeware.net
Subject: ADFIND – Group + Members Query

Hi Joe,
I hope you are doing fine.
I need a query to 1. find a specific group, 2. dump it’s members, 3. the groups this group is member of and also 4. dump the smtp address of the group’s members.
I managed to build the following query:
adfind -gcb -f "&(objectClass=group)(name=_test1)" member memberof
I was able to achieve the items 1, 2 and 3, but the 4th one is a bit difficult. Is it possible to be done?
Cheers,

xxx

Rating 3.00 out of 5

I am free…

by @ 8:27 pm. Filed under quotes

I am free, no matter what rules surround me. If I find them tolerable, I tolerate them; if I find them too obnoxious, I break them. I am free because I know that I alone am morally responsible for everything I do.

 

    – Robert Heinlein (The Moon Is a Harsh Mistress)

Rating 3.00 out of 5

Happy Birthday Copernicus…

by @ 7:47 am. Filed under general
  • There is no one center of all the celestial spheres [orbits].
  • The Earth’s center is not the center of the universe.
  • The center of the universe is near the sun.
  • The distance of the Earth to the sun is imperceptible compared with the distance to the stars.
  • The rotation of the Earth accounts for the apparent daily rotation of the stars.
  • The apparent annual cycle of movements of the sun is caused by the Earth revolving around the sun.
  • The apparent retrograde motion of the planets is caused by the motion of the Earth, from which one observes.
  • Rating 3.00 out of 5

    2/18/2010

    Useful Microsoft PKI Documentation Reference Page

    by @ 9:56 pm. Filed under tech

    PKI / Certificate Authority Information

    http://blogs.technet.com/pki/archive/2007/08/19/windows-pki-documentation-reference.aspx

    Rating 3.00 out of 5

    Utility Versions Text File

    by @ 8:47 pm. Filed under tech

    I have added a text file in a semi-CSV format up on the website for current versions and release dates of the utilities. There is a link from the free tools page but you can go directly to it via

    http://www.joeware.net/freetools/versions.txt

    This is what it currently looks like

    Updated: 2010.02.18
    ---
    App,Version,Date
    accexp,01.01.00,2002.08.04
    adfind,01.41.00,2010.02.13
    admod,01.12.00,2010.02.13
    adqueueloop,02.00.00,2006.03.23
    atsn,01.00.00,2004.03.27
    auth,01.01.00,2001.08.17
    changepw,02.03.00,2006.06.26
    clienttest,01.01.00,2005.11.09
    cpau,01.11.00,2005.11.08
    dnssrvrec,01.00.00,2006.01.15
    eldll,01.00.00,2002.02.17
    eldllex,01.00.00,2002.02.17
    exchmbx,01.04.00,2006.04.29
    expire,01.00.00,2000.04.15
    findexpacc,01.01.00,2005.06.19
    findnbt,01.02.00,2002.11.15
    findpdc,01.00.01,2001.09.28
    gcchk,01.03.00,2004.08.30
    getuserinfo,02.07.00,2003.09.27
    lg,01.02.00,2006.07.10
    memberof,02.03.00,2006.06.10
    netsess,02.00.00,2004.02.01
    oldcmp,01.05.00,2004.12.28
    qlogoff,01.00.00,2001.01.28
    quiet,01.01.00,2002.04.27
    psomgr,01.00.00,2007.04.15
    secdata,02.03.00,2002.08.19
    sectok,01.00.00,2001.11.11
    seinteractivelogon,00.10.00,2001.09.20
    shrflgs,01.00.01,2005.02.19
    sidtoname,02.00.00,2003.03.07
    snu,01.00.00,2001.11.04
    svcutil,02.04.00,2005.06.12
    unjoin,01.01.00,2007.07.17
    unlock,02.01.00,2004.08.16
    userdump,01.01.00,2001.01.28
    username,01.00.00,2002.10.08
    w2klockdesktop,01.00.00,2001.05.10
    writeprot,01.00.00,2004.08.08
    Rating 3.00 out of 5

    Outlook 2010 Bloat Bug

    by @ 8:13 pm. Filed under tech

    If you have Outlook 2010, install this bug fix…

    http://blogs.msdn.com/buckh/archive/2010/02/12/fix-for-message-size-issue-in-outlook-2010-beta.aspx

    Rating 3.00 out of 5

    2/17/2010

    ADAM (aka ADLDS) is available for Windows 7 now!!!! Part Deux (and this time we really mean it!!!)

    by @ 12:31 pm. Filed under tech

    Previously I announced that ADAM/ADLDS was available for Windows 7 client machines. Shortly after I announced that MSFT quietly pulled the product back off the download site due to some issue that they did not disclose. An issue critical enough though that they actually pulled the product.

    Anyway I just got confirmation from Microsoft today that they released it back to the download site and indeed I just downloaded both the x86 and x64 versions.

    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=a45059af-47a8-4c96-afe3-93dab7b5b658

     

       joe

    Rating 3.00 out of 5

    [joeware – never stop exploring… :) is proudly powered by WordPress.]