1

Интересная проблема.

Если к моему MacBook Pro подключены два сетевых подключения, и я удаляю одно, разве в сети не должно использоваться другое?

Ну, это было не прошлой ночью - когда я пошла спать, моя жена спросила о кабеле Ethernet, который я проложил через кухню, и, думая, что беспроводное соединение будет обрабатывать трафик, если сеть Ethernet будет удалена, я сказал ей просто удалите кабель Ethernet, уберите линию из кухни, закройте дверь и ложитесь спать, когда я перевернулся ... :-D

Этим утром Mac Mail и другие инструменты (Safari) не смогли подключиться к Интернету, хотя к моему маршрутизатору WiFi было подключено беспроводное соединение. Итак, я наивно перезапустил Mail и Safari, и они все еще не могли видеть Интернет.

Итак, я открыл Сеть в Системных настройках и изменил порядок так, чтобы Wi-Fi был первым, а не вторым, как в:

OSX 10.9.2] Системные настройки -> Сеть

И сразу же Safari и Mail были снова подключены к Интернету.

Я думал, что TCP/IP будет просто использовать сетевой интерфейс, который доступен, если другой нет?

Это приводит меня к более общему вопросу: как разделить сетевой трафик, чтобы использовать преимущества обоих сетевых интерфейсов, увеличивая тем самым мою пропускную способность?

3 ответа3

2

Я только что проверил аварийное переключение на моем Mac mini. У меня настроены два сетевых интерфейса: Ethernet и WiFi. Оба были в хорошем состоянии, когда тест начался, с приоритетом Ethernet в порядке обслуживания.

Я повторил тест несколько раз, глядя на различные показатели сети. Переход на WiFi произошел, как и следовало ожидать. Один пакет проверки связи сброшен при разъединении; никто не упал при переподключении.

`en0` -  Built-in Broadcom Gigabit Ethernet  
`en1` -  Built-in Apple Wireless Network Adapter

Console.app сообщает об этих сообщениях, когда я вытаскиваю RJ-45:

2014-04-26 1:14:40.000 PM kernel[0]: AppleBCM5701Ethernet [en0]: Link down (womp disabled, proxy idle)
2014-04-26 1:14:41.267 PM configd[54]: network changed: v4(en1:192.168.2.22, en0-:192.168.2.122) DNS! Proxy! SMB

Один ping был сброшен.

После повторного подключения кабеля Ethernet эти сообщения были зарегистрированы:

2014-04-26 1:14:47.000 PM kernel[0]: Ethernet [AppleBCM5701Ethernet]: Link up on en0, 1-Gigabit, Full-duplex, Symmetric flow-control, Debug [796d,2321,0de1,0300,cde1,3c00]
2014-04-26 1:14:47.901 PM configd[54]: network changed: v4(en0+:192.168.2.122, en1) DNS! Proxy! SMB

Нет отброшенных пакетов.

route monitor показал шквал изменяемых маршрутов.

В итоге: в Mac OS X версии 10.9.2, работающей на Mac Mini середины 2011 года, аварийное переключение работает должным образом.

Итак, почему это не могло случиться для вас ..? Я подумал, что одной из причин может быть ключ приемопередатчика Thunderbolt, который не сообщает ядру о сбое оператора, но на снимке экрана кажется, что система знает об отсутствии соединения Ethernet.

Повторяется ли проблема, и если да, какие сообщения регистрируются?

Доступны ли журналы этого конкретного события?

1

Отличный вопрос, кстати! У меня была похожая ситуация со мной, когда я работал в Intel, но я не помню, чтобы интерфейсы не переключались автоматически при отключении одного из них.

Мой ответ касается вашего общего вопроса

Это приводит меня к более общему вопросу: как разделить сетевой трафик, чтобы использовать преимущества обоих сетевых интерфейсов, увеличивая тем самым мою пропускную способность?

Теперь, если бы у вас было два интерфейса Ethernet (в отличие от Ethernet и WiFi), вы могли бы использовать технологию, известную как Link Aggregation, чтобы «связать» два одинаковых интерфейса, чтобы заставить ваш компьютер думать, что это было одно соединение Ethernet. Сетевой протокол, который обеспечивает эту функцию, называется LACP (протокол управления агрегацией каналов). К сожалению, для объединения каналов не только двойной сетевой адаптер должен поддерживать эту функцию, но и механизм, к которому вы подключаетесь, также должен поддерживать LACP, и все его настройки должны быть такими же, как на стороне клиента. Эта функция распространена на маршрутизаторах и коммутаторах высшего класса, но большинство потребительских устройств не поддерживают это.

Поскольку ваш WiFi-адаптер и Ethernet-адаптер - это два совершенно разных интерфейса, вы не можете просто соединить их вместе и увеличить пропускную способность. Это также связано с тем, что теоретическая скорость соединения Wireless (зависит от используемой технологии) и Ethernet (10/100/1000) весьма различна. Согласно Википедии

В большинстве реализаций все порты, используемые в агрегации, имеют одинаковый физический тип, например все медные порты (10/100/1000BASE ‑ T), все многомодовые оптоволоконные порты или все одномодовые оптоволоконные порты. Однако все стандарты IEEE требуют, чтобы каждый канал был дуплексным, и все они имели одинаковую скорость (10, 100, 1000 или 10000 Мбит /с).

Многие коммутаторы не зависят от PHY, это означает, что коммутатор может иметь смесь меди, SX, LX, LX10 или других GBIC. Несмотря на то, что поддержание того же уровня PHY является обычным подходом, можно объединить оптоволокно 1000BASE-SX для одного канала и 1000BASE-LX (более длинный, разнесенный тракт) для второго канала, но важно то, что скорость будет равна 1. Полный дуплекс Гбит /с для обеих ссылок. Один путь может иметь немного более длительное время прохождения, но стандарт был разработан, поэтому это не вызовет проблемы.

0

Я не очень знаком с компьютерами Macintosh, но я знаком с сетями Ethernet и TCP/IP. Помимо использования какой-либо схемы агрегации / совместного использования / разделения ссылок, ответ на ваш вопрос «почему он не использовал другую ссылку» состоит в том, что… это зависит от того, к какому интерфейсу (интерфейсам) привязаны рассматриваемые приложения, если они могут найти другой маршрут и так далее.

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

  • Ethernet НЕ является TCP/IP. TCP/IP НЕ является Ethernet.
  • IP-адреса НЕ назначаются вашему компьютеру; Они назначены MAC-адресу вашей сетевой карты.
  • Данные отправляются по сети путем КАРТЫ IP-адреса на соответствующий MAC-адрес (и обратно), используя ARP - протокол разрешения адресов.
  • В пределах любого отдельного сегмента сети каждый адрес, будь то MAC-адрес Ethernet или адрес TCP/IP, ДОЛЖЕН быть уникальным. Думайте об этом как о своем телефоне - представьте, как вы будете раздражены, если вам придется делиться своим телефоном с соседями, чтобы у них был тот же номер телефона, что и у вас. Телку придется позвонить вам обоим, и тогда вам и вашему соседу придется выяснить, кто звонит и для кого из вас.

Учитывая вышесказанное, должно начать понимать, почему вы потеряли "связь". Ваше проводное соединение имеет один MAC-адрес, который сопоставлен с одним IP-адресом, а ваша беспроводная сеть имеет другую уникальную пару MAC/IP-адресов. Между вашим компьютером и вашим маршрутизатором эти пары MAC/IP используются для определения, куда следует отправлять любые данные сети. НО... если одна ссылка не работает, ни у вашего компьютера, ни у вашего роутера нет простого способа внезапно "сменить" пары адресов источника и назначения по факту.

Думайте об этом как о почтовом отделении. Кто-то пишет вам письмо, и они записывают ваше имя и адрес на конверте. Что если вы переехали? Если вы ничего не сделаете, чтобы перенаправить вашу почту, она все равно будет доставлена на ваш старый адрес, и вы никогда ее не увидите. Конечно, как я уже сказал, вы могли бы перенаправить / переслать его, и это то, что делают некоторые схемы агрегации - но для этого требуется дополнительное оборудование или программное обеспечение, так же, как почтовому отделению нужны дополнительные рабочие / машины для сортировки и перенаправления вашего почта. Это не то, что происходит само по себе.

Многие приложения также "привязываются" к определенному сетевому интерфейсу - без привязки это все равно, что сказать незнакомцу "позвони мне завтра", не давая им номер для вызова. У них не было бы возможности узнать, как с вами связаться. Кроме того, ваш почтовый клиент должен сообщить почтовому серверу, с какого IP-адреса отправлять вам любые данные. Обычно это происходит прозрачно, потому что адреса источника и назначения встраиваются в заголовки пакетов.

Теперь, учитывая то, что вы описали, не все вышесказанное относится к вам .. В правильно сконфигурированной системе большинство исходящих соединений действительно должно найти любой доступный интерфейс, чтобы можно было отправлять сетевой трафик, и по мере того, как маршрутизаторы и коммутаторы становятся более сложными, автоматический перевод адресов происходит без необходимости какого-либо дополнительного аппаратного / программного обеспечения. Но есть еще другие вопросы, с которыми приходится бороться; Одним из них является метрика интерфейса (приоритет), которая, как она звучит, была вашей первоначальной проблемой.

Не сказав, что он может использовать другой интерфейс, ваш компьютер попробовал только первый интерфейс в вашем списке. Насколько он знает, второй интерфейс может быть связан с ядерной стартовой установкой, и любые данные начнут WW3. Не очень хорошая идея, даже если она экстремальна:- Во всяком случае, дело в том, что без настройки вашего компьютера у вас не будет реального ума, чтобы выяснить, что другое соединение будет работать так же хорошо, как и первое. Вот почему он начал работать после того, как вы правильно настроили его на "отказоустойчивость".

Опять же, по мере того, как компьютеры и операционные системы становятся все более изощренными, все больше и больше ДЕЙСТВИТЕЛЬНО выходят из коробки, предварительно настроенной на автоматическое выполнение подобных действий в наши дни ... но понимание основных проблем и конфигураций поможет вам понять и исправить проблемы, когда они происходят. Кроме того, я не совсем уверен в том, как компьютеры Macintosh настроены для работы с вами, но я понимаю, что более новые, основанные на * x, последние несколько лет, как правило, имеют надежную обработку и логику iface вверх / вниз.

Другая возможная проблема / причина ваших точных симптомов может быть в таблицах маршрутизации. Вообще говоря, когда стек TCP / IP пытается маршрутизировать пакет данных, он ищет адрес назначения в таблице маршрутизации. Если он находит точное соответствие, он отправляет, чтобы упаковать назначенный интерфейс. Если он не находит точное совпадение, но находит близкое / замаскированное совпадение, он отправит пакет этому назначенному интерфейсу. Если он не находит соответствия вообще, он отправит пакет любому "шлюзу по умолчанию", чтобы позволить шлюзу решить, как маршрутизировать пакет.

Тем не менее, может быть только один шлюз по умолчанию! Это связано с тем, что компьютер (а точнее, стек TCP/IP вашего компьютера) не может определить, куда отправить пакет, поэтому ему необходимо отправить его на шлюз, чтобы сделать это определение. Однако, если у вас было два шлюза по умолчанию - ваш компьютер не знал бы, на какой из них его отправлять, поскольку он не может определить, куда отправлять пакет в первую очередь! Ваш компьютер будет иметь нервный срыв, пытаясь решить, и в конечном итоге разделить на ноль, что, как мы знаем, не будет хорошо ..

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

Извините, если это все ясно, как грязь! Но чтобы помочь вам диагностировать подобные проблемы, узнайте, как использовать некоторые инструменты диагностики сети, такие как «arp» (сообщает вам, какой MAC-адрес привязан / сопоставлен с IP-адресом, или наоборот) и «route» (покажет Вы, как он будет пытаться маршрутизировать пакеты на основе адреса назначения).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .