Slashdot Mirror


RHN Bind Update Brings Down RHEL Named

alexs writes "Red Hat's response to update bind through RHN, patching the DNS hole, made a fatal error which will revert all name servers to caching only servers. This meant that anyone running their own DNS service promptly lost all of their DNS records for which they were acting as primary or secondary name servers. Expect quite a few services provided by servers running RHEL to, errr, die until their system administrators can restore their named.conf. Instead of installing etc/named.conf to etc/named.rpmnew, Red Hat moved the current etc/named.conf to etc/named.conf.rpmsave and replaced etc/named.conf with the default caching only configuration. The fix is easy enough, but this is a schoolboy error which I am surprised Red Hat made. Unfortunately we were hit and our servers went down overnight while RHN dropped its bomb and I am frankly surprised there has not been more of an uproar about this."

17 of 312 comments (clear)

  1. You didn't test before deploying an update? by Anonymous Coward · · Score: 5, Insightful

    So, you didn't test the update on a non-production server? Just install any old patch and let it take your network down? Who do you work for again? I have to make sure not to do business with that.

    1. Re:You didn't test before deploying an update? by suso · · Score: 5, Insightful

      Actually, I caught the error just from looking at the output of up2date/yum. It clearly said named.conf saved to named.conf.rpmsave. So all you have to do is compare what changed, implement any changes and copy named.conf.rpmsave over named.conf.

        Just as I said on the day of the release, be careful, don't just blindly update things.

    2. Re:You didn't test before deploying an update? by illumin8 · · Score: 3, Insightful

      So, you didn't test the update on a non-production server? Just install any old patch and let it take your network down? Who do you work for again? I have to make sure not to do business with that.

      No kidding. The only "schoolboy error" as the submitter put it, was not testing the patch on a non-production server before deploying it on a production DNS server.

      --
      "When the president does it, that means it's not illegal." - Richard M. Nixon
    3. Re:You didn't test before deploying an update? by jocknerd · · Score: 3, Insightful

      You know, not everyone has non-production servers. Every server we have IS production. And if you are paying for Red Hat Enterprise, you expect Red Hat to have tested these updates themselves. If this was a Microsoft error, Slashdot would be all over Microsoft for allowing this to happen.

    4. Re:You didn't test before deploying an update? by numbsafari · · Score: 3, Insightful

      And the rest of slashdot would be all over MS admins who blindly update their systems from AutoUpdate.

      I find it really hard to believe you don't have at the very least a strawman test system. The fact that you don't says volumes.

    5. Re:You didn't test before deploying an update? by Sleepy · · Score: 5, Insightful

      >You know, not everyone has non-production servers. Every server we have IS production. And if you are paying for Red Hat Enterprise, you expect Red Hat to have tested these updates themselves. If this was a Microsoft error, Slashdot would be all over Microsoft for allowing this to happen.

      You are wrong; stop whining. You're just painting yourself as misinformed.

      1) The updates WERE tested.
      2) The admin installed "caching-nameserver", then configured his install to act far outside the default.
      3) He allows automatic updates straight into production. So do you it seems. Good luck with that! RHEL documentation says to not do this, but you're a bigshot "paying" for something different. I suggest you get a sidekick, and stick to the Windows side of your "enterprise".
      4) He didn't revert his .conf file, as is usually needed when some new line is added to a server .conf. This is SO NORMAL you'd have to be a n00b to get bitten!

      Your MS comparison is apples and oranges. If this guy did TEN MINUTES worth of testing he'd realize something's up, and he could revert the rpm package. How many MS updates prohibit uninstall? Quite a few!

      In Windows, you can't diff the before & after config, since Windows admins would rather be blind to what they're installing, since that's the norm and it's accepted.

    6. Re:You didn't test before deploying an update? by poot_rootbeer · · Score: 3, Insightful

      You know, not everyone has non-production servers. Every server we have IS production.

      Well, there's your problem right there...

    7. Re:You didn't test before deploying an update? by Dr+Caleb · · Score: 4, Insightful

      Perhaps it is his problem, but not his fault. Sounds like he's in the dreaded zone where IT is a necessary evil, not a department that can help leverage the business.

      He gets what he needs, or just barely what he needs. When management hands you crap, you learn to make crapade.

      --
      "History doesn't repeat itself, but it does rhyme." Mark Twain
  2. A schoolboy error? by something_wicked_thi · · Score: 4, Insightful

    What? And isn't it an error of similar proportion to upgrade your primary DNS servers without first testing the new install?

    1. Re:A schoolboy error? by something_wicked_thi · · Score: 3, Insightful

      IMHO, rhel should have tested this.

      'Course they should. Nobody said otherwise.

      I'm not sure what you're getting at with building from sources. Seems like overkill and doesn't solve the main problem because you can still screw it up. All anyone's saying is that you should test this on a server that you don't care about, or at least test it on one, before upgrading all of them.

  3. MS by FozE_Bear · · Score: 4, Insightful

    If it was a Microsoft product, we'd all be carrying pitchforks and torches....

  4. That why they get paid by nicolas.kassis · · Score: 3, Insightful

    Half of whole point of a subscription to RHEL is to ensure that patches they put out are properly QAed. The other side is support, but I never had a chance to test that part out.

  5. Well by ledow · · Score: 3, Insightful

    Yeah, it's a silly mistake.

    But you should be testing things like this first, and whenever you upgrade you should really be looking at/for all .rpmsave or equivalent files first to make sure nothing has changed in the meantime. Otherwise, you're just removing your config and replacing it with the default whatever happens. You should also be checking .rpmnew (or equivalent) each time to check that it hasn't changed in terms of syntax, defaults etc. (which, let's be honest, is quite likely for such an important update - especially given that we hardly know what the exact problem is yet). I wouldn't go so far as to suggest intimate analysis of packages while they are still packed unless the systems you are running are quite critical to the operation of a business.

    Part human-error on RH's part (it happens). Part incompetence in not testing the updates yourself first. Chances are that if I were affected by this, I would catch it as part of "right, what did that package change?", or notice as part of usual testing later, and then just move the file. I probably wouldn't even bother to send RH a note.

    If you have a DNS server, that suggests that there are reliant computers. As courtesy to all those reliant computers you HAVE to test changes and check carefully what they are doing first. If you were "stung" by it, it suggests you hit this problem on ALL your DNS servers and/or that you only have one DNS server anyway. To deploy packages like this on such a setup is just asking for trouble.

  6. Mod parent up! by Chrisq · · Score: 3, Insightful

    I am sure that many people do not realise that going through a NAT device usually means that predictable port numbers will be allocated.

    Of course until we get details of the hole and fix we cannot be 100% sure but it is very likely that exposing predictable port numbers (which the fix randomised) reintroduces the hole.

    If DNS software vendors had a year's notice then why didn't the NAT firewall vendors. They could have introduced a patch at the same time.

  7. Re:Test your patches by Just+Some+Guy · · Score: 5, Insightful

    What kind of environment are you in where you don't first test your patches that are going out to live production machines? Regardless of the fact that it is linux and not windows, you should always test your patches before you roll them production.

    Disclaimer: I test first.

    You know, lot of people work in small shops that can't afford multiple redundant servers. I suspect that business with a single DNS/web/mailserver are a lot more common than Slashdotters this morning seem to thing. What are those admins supposed to do? They're receiving a critical security patch from a trusted vendor, and I imagine a lot of them feel pretty safe applying that to their sole production server. This doesn't make them stupid or incompetent.

    I have the luxury of lots of hardware that can fill in for other gear in a pinch, but lots of people don't. They don't deserve scorn for it.

    --
    Dewey, what part of this looks like authorities should be involved?
  8. Welcome to third party packaging... by Venotar · · Score: 3, Insightful

    This is news? Redhat (like every OS vendor I've ever dealt with) have been pushing out updates with broken assumptions for years.

    In fact, this isn't even the first time they've done something similar when updating bind:
    back in 2004 they released RHEL 3 update 4 and many people had precisely the same experience. Additionally, when applied, Update 4 removed the /etc/rc*.d/S*named and /etc/rc*.d/K*named and then shut named off.

    As a quick glance at redhat's bugzilla shows, the first problem (the same one you experienced in this release) wasn't a schoolboy mistake on the packagers part, or a bug. It was the result of a poorly understood choice on the part of the person who originally provisioned the machine.

    Rather than installing just the original bind-9.2.4, the people who had their named.conf overwritten had installed bind plus a package called caching-nameserver. It's that package that, when updated, backed up and overwrote their bind config. The "caching-nameserver" package should only be installed if you want to run a caching nameserver, because the caching-nameserver package isn't an application at all - it's simply a named.conf file.

    The real bug (back in 2004) wasn't actually in Update 4's bind package. As it turns out, the package it replaced incorrectly contained a `chkconfig --del named` in its uninstall script.

    Anyone without proper alerting and a good QA process found that one out the hard way. I had customers who'd gotten so blasè about performing nighttime maintenances without proper reversion testing that they scheduled nightly cronjobs that ran up2date at midnight and rebooted the production machine, Naturally, they woke up in the morning to find they'd just suffered 8 hours of downtime.

    Lesson? Don't trust the vendor's QC work, don't install unnecessary packages, and make sure to QC your own work! Ask any experienced Windows admin about unintended consequences from "trusted" vendor patches...

  9. Re:bug details by _Sprocket_ · · Score: 3, Insightful

    It is a bug when an update overwrites your configuration file.

    Normally I'd say you've got a valid point. The problem here is that the config file seems to be part of the intent of the package (please correct me if I'm wrong).

    A rough example would be if someone replaced a packaged binary with a custom-compiled version and then complained when the package update overwrote that modified binary.