Вопрос профессионалам

Среди наших читателей много сертифицированных специалистов по семейству операционных систем Windows компании Microsoft.

Мне прислали отличный вопрос, который хотелось бы адресовать всем системным администраторам и иже с ними.

Ответ должен быть полным, желательно с ссылкой на MS либо RFC.

Итак, вопрос в оригинале:

host1: 10.0.0.1/24, default gw 10.0.0.1
host2: 192.168.0.1/24 default gw 192.168.0.1
хосты объединены через хаб/коммутатор (роли не играет).
с host1 делается  команда
> ping 192.168.0.1

какой будет результат?

Ответ, типа «дестинейшн хост анричибл» советую оставить при себе.

Так как у всех есть виртуальная среда, можете быстро настроить стенд для проверки.

36 комментариев к “Вопрос профессионалам”

  1. P.Masalkin

    Витя, ну что тебя так задело, а? Имхо ваш сайт не терон.ру, чтобы подобные холивары разводить

  2. Кроме того, надо на сайте, хотя бы в пятницу, иметь элемент развлечения — мозговой разминки, а то вскипит серое вещество.

  3. Андрей

    Советую всем сначала поднять тестовые машинки, посмотреть, а потом понять почему именно так. MS пишет про использование таких настроек, но не про то почему такие настройки дают странный результат. RFC не нашел, если кто покажет — буду крайне благодарен.

  4. Конечно немного имхо странные настройки 🙂
    Что гетвеем хост юзает (по настройкам) сам себя…

  5. P.Masalkin

    C:\Documents and Settings\XXX>arp -a

    Интерфейс: 10.0.0.1 — 0x2
    Адрес IP Физический адрес Тип
    192.168.0.1 00-03-ff-f0-a2-f6 динамический

    Я правильно мыслю?

  6. Андрей

    По результатам: на винде пинги бегают, arp отрабатывает; на фряхе пинги убегают (tcpdump показывает), а вот arp не хочет, встает вопрос с каким маком назначения убегает пинг. Логично предположить что с широковещалкой, но вот ответа не приходит, да и машина назначения пакет не получает (судя по тому же tcpdump).

    ps RFC в студию … блин 🙂

  7. P.Masalkin

    Наверное, нет. Правильнее так:
    Активные маршруты:
    Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
    0.0.0.0 0.0.0.0 10.0.0.1 10.0.0.1 20

  8. A.Vakhitov

    ARP-пакет убегает с хоста на MAC-адрес FFFF.FFFF.FFFF.
    Когда ARP-пакет возвращается обратно на хост, в нем содержатся оба MAC-адреса (как источника, так и получателя).
    Инфа от ПО Cisco Packet Tracer.

  9. Андрей

    В случае с фряхой … она делает как с обычным маршрутизатором, в МАС получателя подставляет МАС шлюз (т.е. свой же) и отправляет пакет, IP источника и получателя не меняет. Правда почему-то в TCPDUMP я вижу отправленый пакет, но не вижу полученный пакет.

  10. P.Masalkin

    Попробую поподробнее описать решение задачи (если не прав — поправьте).
    1. Приложение (утилита ping) пытается обратиться по некоему сетевому адресу.
    2. Поскольку IP-адрес получателя относится к сети, отличной от сети отправителя, пакет неренаправляется на шлюз по умолчанию (в нашем случае — на тот же адрес, что и у NIC)
    3. Дальше винда сама же, просматривая таблицу маршрутизации, обнаруживает в ней стандартный маршрут (0.0.0.0) который велит ей пересылать все пакеты, не относящиеся ни к одной из перечисленных (route print) в интерфейс 10.0.0.1
    4. Поскольку компы соединены через ethernet, протокол ARP разрешает адрес получателя в MAC (они же в одной сети?). То есть наличие в ARP таблице MAC’а хоста из другой есть следствие.

    Вот…

  11. Это задача из разряда:
    Почему MS DHCP server выдает адреса типа 192.168.0.0 и 192.168.0.255.
    Или почему в WinXP SP3 я могу поставить шлюз 192.168.0.1 для сети 172.20.0.0/24. Или почему я могу отправить spoofed ARP answer с любым IPом и MACом 00:00:00:00:00:00 на любой WinXP, а он возьмет и запишет его в АРП кэш.
    А ответ, просто у кого-то из MS зачеслась левая пятка и они для какого-либо сию минутного своего удобства сделать не по RFC.

  12. P.Masalkin

    Почему наступил шаг 4….Чуствуя какой-нить подвох, отвечу: Ну, потому что ниже сетевого уровня лежит канальный, то есть нам необходимо получить аппаратный адрес получателя. Как его получить? Поможет ARP…

  13. P.Masalkin

    Не совсем понимаю…Он послал запрос на FF:FF:FF:FF:FF:FF с ip-адресом получателя, в ответ получил его (получателя) MAC. Вроде и все, ARP свою функцию выполнил.

    Вот RFC: http://tools.ietf.org/html/rfc826 (правда, сам не читал)

  14. Андрей

    он не должен посылать запрос, что иллюстрирует фряха
    а в линуксах (ubuntu) кстати тоже пингуется

  15. Андрей

    только ARP запросом, но винда-линукс и фряха мыслят поразному.
    винда-линукс лезут в таблицу маршрутизации и видя что все сети доступны с интерфейса отправляют этот запрос с IP назначения, а фряха видит что есть маршрутизатор и пытается выяснить МАС маршрутизатора, а так как он есть в талице ARP (она сама себя ищет), она отправляет сразу ICMP пакет самой себе (по МАСам) с разными IP адресами, получив же его отбрасывает тат как IP назначения не ее.

    всё вышенаписаное сугубо ИМХО вытекающее из анализа пакетов

  16. Это вопрос про RIP Listener в компании с сервисом совместного доступа к интернету?

    Или я мелко плаваю?

  17. На всякий поясню, что если они включены, то каждый хост себя считает роутером гордо дающим интернет пользователям.

  18. Имхо, ближе всех Anvarich.
    Ибо сразу после попытки пинга хост должен попытаться разрешить c помощью ARP MAC-адрес шлюза по умолчанию.
    А вот как он это делает…
    Например, сделать это через сеть у него не получится, кроме того, соседний хост обязан дропать такие пакеты, как явную попытку ARP-спуфинга (запись в ARP-таблицу без запроса).
    Соответственно, при таком действии должен получаться чистый «Request Time Out».
    Раз пинги на винде ходят, видимо, она может провести связь между шлюзом и маком (точнее, грамотно обработать ситуацию, когда IP-адрес совпадает с DefGW).
    От себя добавлю, что делать подобные настройки мне кажется некорректным.

  19. Андрей

    Андрюха, мелкомягкие даже РЕКОМЕНДУЮТ делать такие настройки, если в сети нет маршрутизатора. Ссылку спроси у mr.Nobody, я ему кидал.

  20. A.Vakhitov

    По крайней мере, рекомендаций таких он точно не кидал. Видел только ссылку про неработу у Висты этого механизма в определенных случаях.

  21. Андрей

    Блин, не смог отписаться на ТехНете, отпишусь здесь. Собственно фряху можно заставить пропускать пинги (пока не пробовал). У маршрута кроме того что мы видим в винде при route print есть ещё флаги. Один из них (G — во фряхе, да и в остальных никсах думаю он же) указывает, является ли маршрут direct или indirect. Разницу можно почитать по ссылке на ТехНет во втором ответе на RFC.
    Так что все операционки пользуют талицу маршрутизации, просто они (таблицы) поразному сформированы. Кстати в винде я не нашел возможности задать флаг подобный G.

  22. День добрый!

    Вопрос к профессионалам из той же области.

    Есть большая сетка, разбитая на несколько подсетей, с маршрутизатором в центре. В одной отдельной подсети есть выход в интернет. Из этой отдельной подсети на компах прописан маршрут по умолчанию — шлюз в интернет. Для доступа в другие подсети прописан статический маршрут через маршрутизатор. Шлюзом выступает Win2003, маршрутизатором Catalyst 3750.

    Сегодня пользователи стали жаловаться на отсутствие интернета. Проверка показала, что пакеты стали уходить не на шлюз, а на маршрутизатор. В чём причина, куда копать?

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *