Проблеми с DNS resolving под Windows

Наскоро се натъкнах на интересен проблем с DNS резолвинга при мои клиенти.

Измествах пощенски сървър на нова машина (на ново място, и нов IP адрес). На следващия ден при едни мои по-големи клиенти на повечето компютри нямаше поща. (За да е объркването пълно, на някои имаше.)

След малко чоплене, разследването показа следната ситуация:

1. Няма поща на тези компютри, които не са били рестартирани от изместването на сървъра. На рестартираните има.
2. Поща не се получава, защото нерестартираните компютри се опитват да я теглят от СТАРИЯ сървър (където тя вече не пристига).
3. ВСИЧКИ компютри, включително нерестартираните, при ping правилно откриват под съответното име IP-то на НОВИЯ сървър. Но POP3 заявките на Microsoft Outlook продължават да вървят към стария!

(Няколко машини ползваха вместо MS Outlook – Outlook Express. На тях пощата се теглеше коректно от новия. Така и не успяхме да разберем обаче били ли са рестартирани междувременно, или не: по въпроса има конфликт на политики между различните мениджъри във фирмата, и изпълнителите се боят да кажат истината.)

Нещата се оправиха с просто рестартиране на обърканите машини. За мен обаче остана загадката защо се получава този ефект. Предполагам, че MS Outlook по някаква причина кешира IP-та на POP3 сървъри (и не ги обновява коректно) отделно от DNS кеша на компютъра (който се обновява коректно).

Както и да е. Видях проблем – описах го. Ако е бъг в MS Outlook, надали съм го забелязал само аз, и сигурно скоро ще го оправят.

20 thoughts on “Проблеми с DNS resolving под Windows

  1. Васил Колев

    Лошото е, че това е стандартна програмистка грешка. Приложението resolve-ва един път, запомня адреса и трябва рестарт, че да се усети къде да иде. Понякога па го прави link-ната към него resolver библиотека, понякога глупавия windows го прави (виждал съм кило подобни случаи), изобщо теорията казва, че на DNS запис с TTL 60 секунди, 50% от трафика се измества за половин час, 98% за 2 часа и после се точат по някоя друга заблудена връзка още поне две седмици (след което става трудно забележимо, ама пак го има).

    Reply
  2. foo

    Microsoft’s DNS client also has optional support for local caching, in the form of a DNS Client service (also known as DNSCACHE). Before they attempt to directly communicate with DNS servers, the library routines first attempt to make a local IPC connection to the DNS Client service on the machine. If there is one, and if such a connection can be made, they hand the actual work of dealing with the lookup over to the DNS Client service. The DNS Client service itself communicates with DNS servers, and caches the results that it receives.

    Reply
  3. Бамсе

    А защо не им сложиш Thunderbird.. Outlook е дупка в сигурността, а ето че и бъгава излезе 😉

    Рестартирането на компютрите мисля, че може да се види от Event Viewer – eventvwr.msc

    Reply
  4. Григор Post author

    @Васил Колев: За пръв път попадам на случай, когато го прави приложение. Виждал съм да го прави OS-а, но тогава всичко се резолвва до стария IP. А този път всичко се резолвваше до новия, с изключение на работата на MS Outlook (която нямаш как да видиш докъде се резолвва). Добре че се сетих да погледна логовете на сървъра, а след това и на стария сървър… 🙂

    @foo: Не става дума за това. Щеше и ping и прочее да откриват стария IP, а те откриваха новия.

    @Бамсе: Въпросната фирма са ми клиент само за хостинг – нямам как да им определям вътрешната ИТ политика. Иначе и аз съм поклонник на Thunderbird (а на KMail още повече 🙂 ). А рестартирането на компютрите в крайна сметка го видяхме точно оттам.

    Reply
  5. Сашо

    Григоре,
    Явно си откривател – ако ти се занимава, дай инфо за версията на Outlook-a и POP3 грешката

    Reply
  6. Senji

    А защо рестарт?
    Под Джама си има тази опция:
    ipconfig /flushdns
    това чисти днс-кеша, изобщо не се чуди, колко кахъри съм имал само покрай объркани кешове от един или друг тип…

    Reply
  7. Michel

    //sideline: Ползвам Thunderbird нонстоп от около… 4-5 години. Мейл клиентът не е лош, под IMAP работи прилично добре (макар че малко повече пъргавина нямаше да се откажа да видя…), но под POP3, за съжаление, съм го виждал неведнъж да затрива немалко писма и дори цели папки с мейл… ей-така. Без причина. Събуждаш се, пускаш Thunderbird, ЕЙ КЪДЕ МИ Е ПОЩАТА??? И хоп, няма я, или голяма част от нея… И досега не съм разбрал за причината да самоизтрива на случаен принцип части от поща, свалена през POP3. А не е като да не съм търсил… Просто в един момент е възможно да изтрие (не дори corrupt, а истинско триене, файловете са празни) някакви части в акаунта, кеширани в:

    C:\Documents and Settings\\Application Data\Thunderbird\Profiles\…

    След това нищо не помага, просто ги няма данните, освен ако не си бил достатъчно предвидлив да си пазиш backup копия, или Ghosts редовни на C:… Неприятно, но факт.

    Под IMAP се държи много по-добре и стабилно, но пък и IMAP е много по-добър протокол, все пак в този случай писмата се пазят на сървъра, а клиентът само ги показва и кешира локално… 🙂

    Reply
  8. Григор Post author

    @Сашо: За съжаление не обърнах внимание на версиите (компютрите в тази фирма не са мое царство, само помагах да се чопли проблемът). Грешка нямаше никаква – просто се свързваше със стария сървър вместо с новия (тоест, със старото IP).

    @Senji: DNS кеша си беше ОК, всички други програми намираха новото IP безпроблемно. Явно MS Outlook си е бил кешнал старото вътрешно, в свой си кеш.

    @Michel: Бъг за рапортуване! 🙂

    Reply
  9. ~!@#$%^&*()_

    даааам, типично по журналистическо-линуксаджийски
    заглавието внушава – виндовс създава проблеми
    пък то се оказва, че некъфси пощенски клиент си пазел кеша

    Reply
  10. Григор Post author

    @~!@#$%^&*()_: Грешиш. Типично по журналистическо-нелинуксаджийски е: “Компютри бяха заразени с вируса Conficker”. Без никакво споменаване на операционната система.

    (Подсетка: уязвима на този вирус, а и на почти всички други, е само една ОС. Ако ставаше дума примерно за вирус за Мак, споменаването на вида компютри и ОС винаги е било абсолютно задължително. Какво би било, ако става дума за вирус за Линукс, не знам – познай защо. С времето може и да науча, но съотношението между разпространението на вируси върху различните ОС ще остане, дори ако дойде ден Линукс да държи преобладаващия дял от пазара.)

    Reply
  11. ~!@#$%^&*()_

    щом е споменато името на вируса ОС-а е ясен, не знам да има вируси за различни ОС с еднакво име.
    а твойто заглавие си е чиста манипулация.

    ако изобщо линукса стане годен за десктоп и десктоп потребителите му станат достатъчна бройка, бъди спокоен, вируси за линукс ще има достатъчно.

    Reply
  12. Григор Post author

    @~!@#$%^&*()_: Те и вирусите за Мак са само за МакОС, само че за тях братята журналисти задължително пишат за каква ОС са, нали?

    За Линукс – на машините на повечето хора, които са поискали от мен да го пробват, се е оказал годен за десктоп, и за доста неща дори по-производителен от другите десктопи. (Говоря за KDE – с GNOME нямам опит, така че не давам акъл.)

    (Подсетка: Има хора, които работят под Уиндоус, и хора, които работят под Линукс. От тези, които предпочитат Уиндоус, на практика никой не е дори пробвал Линукс. (Ти например?) От тези, които предпочитат Линукс, на практика всички имат сериозен опит от Уиндоус. Над 90% от тези, които познават добре и двата десктопа, предпочитат да работят под Линукс. Изводи?)

    А вируси за него и в момента има достатъчно. Само че за тях научаваме от научните статии. Докато за вирусите за някои други ОС научаваме от това, че ги откриваме на компютъра си. Изводи?

    (Подсетка: Изводите са си за теб. Аз тоя мач вече съм го гледал.)

    Reply
  13. Кръстю

    @ Гр.Гачев – казахте :”Нещата се оправиха с просто рестартиране на обърканите машини”…Преди малко по телевизията Яне Янев каза, че държавата в момента се нуждае от едно просто рестартиране….Дали пък не чете блога ви?! -Ха-ха…

    Reply
  14. Григор Post author

    @Кръстю: Надали чете блога ми. По-скоро се изживява като хан Аспарух… 😉

    Reply
  15. Atanas Boev

    понеже каза, че при outlook express-а работи, а при outlook-а не, се сетих за една разлика между двата клиента. Когато затвориш outlook той не спира наистина, а един процес OUTLOOK.EXE остава да живее и се грижи за иконката в трея. Като спреш процеса, при следващо пускане outlook не се оплаква. И друг път съм оправял проблеми с такова “истинско” рестартиране, outlook-а не можеше да си намери една току що монтирана папка.

    Reply
  16. Michel

    @Григор:

    Никви бъгове за рапортуване… Вече не ползвам POP3 просто. Освен това, този проблем се проявяваше на супер-случаен принцип. Така или иначе, на няколко машини с WinXP съм го виждал, да се проявява под една лии друга форма, но накрая винаги резултатът беше, че част от пощата на потребителя просто липсваше, затрита, празно… 🙁

    IMAP е по-добър:)

    Reply
  17. makenzie

    Добър ден, в момента работя по един курсов проект и бих искал да помоля за малко помощ. По-конкретно, някои ако може да даден с няколко изречения кратък анализ за ‘товара на dns сървър при работа с тел. номера, IPv4 и IPv6 адреси’. Благодаря

    Reply
  18. Григор Post author

    @makenzie: Може би не съм достатъчно осведомен, но не виждам каква връзка имат телефонните номера с DNS сървър (освен при някои доста специални изпълнения). Оттам нататък, натоварването (ако разбирате това под “товара” на DNS сървър при работа с IPv4 и IPv6 адреси) зависи открай докрай от подробностите – така че надали бих могъл да помогна без доста повече подробности.

    Reply
  19. makenzie

    Благодаря за бързия отговор все пак. Днес успях да напиша някои неща и ще изпратя работата си на преподавателя. Ще пиша пак за съвет ако не я одобри. Поздрави.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *