У меня есть Mac, на котором работает Mac OS X 10.6 или Ubuntu 9.10 или Windows XP (Multiboot). Решение может быть для любой системы, которая работает лучше.
У меня есть два интернет-провайдера , к одному можно получить доступ через Wi-Fi , к одному можно получить доступ через локальную сеть . В Mac OS XI можно определить приоритет, какую сеть выбрать в первую очередь. Но я хочу сбалансировать нагрузку на обе сети.
Я не хочу покупать дополнительное оборудование. У меня есть несколько неиспользуемых маршрутизаторов Wi-Fi, если это поможет.
Компиляция и настройка программ в Linux для меня не проблема.
Аналогичный вопрос: балансировка нагрузки с несколькими шлюзами
Ответы:
Закрытой темой для linux будет настройка метрики для маршрутов. Меньшие числа предпочтительнее более высоких чисел. Если вы дадите обоим маршрутам одну и ту же метрику, я думаю, они будут выбраны с равной вероятностью.
Я думаю, что техника, которую вы пытаетесь достичь, называется многоходом . У меня нет прямого опыта с этим. Тем не менее, несколько вещей, которые вы, вероятно, должны иметь в виду.
Во всяком случае, это все указатели, которые я могу думать в данный момент.
источник
metric
это параметр для сетевых интерфейсов в Windows и OS X; любая ОС, которая поддерживает несколько сетевых интерфейсов, потребует установки приоритета.Вы можете использовать систему метрик маршрутизации, где вы устанавливаете оба интернет-соединения в своей таблице маршрутизации с одинаковой метрикой. Операционная система должна затем использовать оба этих маршрута в равной степени, эффективно распределяя исходящий трафик по обеим ссылкам.
Входящий трафик в ответ на ваши запросы также должен быть сбалансирован, поскольку он вернется к интерфейсу (Public IP), из которого поступил запрос.
Проблема с этим будет состоять в сохранении сеанса, например, вы просматриваете веб-сайт по одной из ваших ссылок, но следующий просмотр страницы сбалансирован по нагрузке из вашего другого интерфейса, это может привести к путанице в некоторых приложениях, поскольку ваш IP-адрес источника будет постоянно меняться.
Поэтому я бы, вероятно, разделил бы часть вашего трафика на другой интерфейс, используя не равные по стоимости маршруты, может быть по приложению, месту назначения или протоколу. Просто то, что будет держать ваши пути движения согласованными.
источник
В Connectify Dispatch есть решение, которое будет делать именно то, что вам нужно. В настоящее время только для Windows, но люди успешно виртуализировали и использовали свое программное обеспечение на OS X.
Поскольку вы уже запускали (работали) Windows XP, я подумал, что вы сможете разобраться с этой частью самостоятельно.
Самая большая проблема заключается в том, что Windows легко предлагает поддержку нескольких сетевых карт, в то время как в OS X это не так просто реализовать.
источник
Существует своего рода обходной путь: мое приложение может балансировать нагрузку, я могу определить 2 соединения, которые затем используются оба.
Затем я направляю один из IP-адресов сервера на один из IPS.
на Mac OS 10.6:
route add -host XXX.XXX.XXX.XXX 192.168.1.1
Я знаю, это очень специфично, и работает, только если ips сервера всегда одинаковы. И если приложение может балансировать нагрузку любым способом.
источник
Я не думаю, что это будет возможно без выполнения каких-либо действий, например, когда весь трафик выходит из одного провайдера, а трафик - из другого провайдера
Причина в том, что оба трафика разделяются на две отдельные сети, не похоже, что они вернутся. Если бы у вас было 2 канала от 1 провайдера, это могло бы стать возможным.
Как сказал человек ранее, я думаю, что вам все равно понадобится дефолт, и вы можете ограничить определенный трафик через один маршрут, а остальные - через другой. Только не думайте, что балансировка нагрузки, как в локальной сети, будет работать здесь.
Пример: запускать обновления с использованием 192.168.2. * Интернет-провайдер Wi-Fi запускает период полураспада с использованием 192.168.1. * Интернет-провайдер.
источник
Упомянутый ниже URL-адрес специально предназначен для победы 7, но вы должны получить представление о нем. Он изменяет метрику шлюза по умолчанию в зависимости от нагрузки на интерфейс, что приводит к распределению нагрузки.
http://www.youtube.com/watch?v=Qh5Eb8sXvuk
источник
Я слышал один и тот же вопрос дюжину раз, дюжина разных способов. Во-первых, внутренние и внешние сеансы обрабатываются одинаково, но не совпадают. Для каждого внутреннего сеанса может быть несколько внешних, и наоборот. То, о чем вы говорите, не является логически невозможным, но требует немного программирования и подготовки. Некоторые устройства создаются с возможностью агрегирования Ethernet-соединений или Wi-Fi для более высокой скорости сети внутри сети, но для внешних сетей я обнаружил только устройства с FAILOVER, что означает, что они переключаются только тогда, когда это необходимо. Однако вы можете использовать базовое переключение (если операторы с 0 или 1) в протоколе соединения, который перенаправляет трафик через другой шлюз для каждого ВНЕШНЕГО сеанса. Затем вам нужно будет отслеживать каждую ВНЕШНЮЮ СЕССИЮ, привязанную к каждой ВНУТРЕННЕЙ СЕССИИ, оборачивая подсессию внутри основного сеанса с помощью sessionID. Затем вам нужно будет иметь возможность проверить домен сайта или использовать sessionID для завершения внутренней маршрутизации (другими словами, вам нужно будет отличать сообщения от клиента для каждого внешнего сеанса \ соединения, на основе которого сайт, к которому они запрашивали данные или отправляли данные, чтобы был установлен канал для каждого сайта, чтобы сайт не отклонял канал). Это означает, что вам придется встроить новый сетевой протокол в маршрутизатор и решить, как дифференцировать соединения (если это делается только по домену сайта, это может быть осуществимо с маршрутизатором, но клиент может попытаться использовать IP-адрес внешние ворота для сайта, что отрицает это; если это делается на обоих концах, клиент должен отслеживать некоторый идентификатор, обычно числовое значение двоичного маскирования, которое позволяет сопоставить получаемый посыл с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. клиент должен отслеживать некоторый идентификатор, обычно числовое значение двоичного маскирования, которое позволяет сопоставить получаемый посыл с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. клиент должен отслеживать некоторый идентификатор, обычно числовое значение двоичного маскирования, которое позволяет сопоставить получаемый посыл с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. как правило, числовое значение двоичной маскировки, которое позволяет сопоставить полученную отправку с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. как правило, числовое значение двоичной маскировки, которое позволяет сопоставить полученную отправку с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. это позволяет посылать получение, чтобы быть сопоставленным с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. это позволяет посылать получение, чтобы быть сопоставленным с внешним сеансом, маршрутизируемым на главном шлюзе). Другими словами, вам нужно было бы запрограммировать свой собственный протокол для управления сетью, и вам нужно было бы решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или если вы хотите что-то построить это совместимо со старым существующим программированием (которое должно быть связано обменом сообщениями между хостом и клиентом, что увеличивает нагрузку на хост, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. и вам нужно будет решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или же вы хотите создать что-то, совместимое с существующим более старым программированием (которое должно быть связано обменом сообщениями между хостами). и клиент, надевая больше хозяина, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. и вам нужно будет решить, хотите ли вы создать его самостоятельно (используя программирование как клиента, так и хоста), или же вы хотите создать что-то, совместимое с существующим более старым программированием (которое должно быть связано обменом сообщениями между хостами). и клиент, надевая больше хозяина, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. больше надевать на хозяина, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано. больше надевать на хозяина, но ничего нового для клиента). Если вы знаете свой Unix, или вы знаете свои программы Winserver, это может быть сделано с небольшим количеством времени, но это требует большего количества ресурсов, выделяемых для каждого устройства, которое будет сбалансировано.
В более крупных сетях корпоративного стиля вы можете объединить сети в сеть и предоставить каждому этажу или отделу выделенный шлюз, позволяющий использовать несколько интернет-провайдеров и никогда не ставящий слишком много на любой из них. Вы также можете обрабатывать Failover концентратором, который отправляет изменения или перенаправления на другой шлюз, когда у одного из них возникают проблемы. Это предлагает некоторую отказоустойчивость.
источник