OS / X выполняет большую часть своей маршрутизации на основе порядка интерфейсов в «Сетевых настройках».
Мне нужно разделить трафик, поэтому я сначала поставил маршрут по умолчанию, а затем направил трафик на второй интерфейс.
Проблема в том, что после использования команды route я начинаю получать эти ошибки либо в браузере, либо в traceroute с сообщением «Невозможно выделить память».
Кажется, что route делает что-то не так.
Вот деталь:
У меня есть два интерфейса в таком порядке:
Подключение Wi-Fi к капсуле времени Apple, которая подключается к Интернету - 10.0.1.9
Подключение к интернет-провайдеру по локальной сети - 10.0.2.250
Это работает отлично, однако я хотел бы маршрутизировать трафик через второй канал, а не просто использовать его в качестве аварийного переключения.
Итак, я использую команду маршрута, например:
route -n add -host 197.242.144.171 10.0.2.250 route -n add -host 197.242.144.175 10.0.2.250 route -n add -host 173.194.41.182 10.0.2.250
Это не дает никаких ошибок, и netstat -nr показывает:
197.242.144.171 10.0.2.250 UGHS 0 1 en0 197.242.144.175 10.0.2.250 UGHS 0 0 en0 173.194.41.182 10.0.2.250 UGHS 0 12 en0
Но если я попробую проследить маршрут, то получу:
traceroute 197.242.144.175 traceroute на 197.242.144.175 (197.242.144.175), максимум 64 перехода, 52 байтовых пакета traceroute: sendto: Невозможно выделить память 1 traceroute: записано 197.242.144.175 52 символа, ret = -1
Какие-либо предложения??
Я тоже только что наткнулся на это. Для меня это был неправильный ip. В ваших командах маршрута шлюз должен быть интерфейсом на другом конце соединения, то есть не использовать 10.0.2.250 в качестве шлюза, используйте ip на другом конце (10.0.2.1?).
Я предполагаю, что происходит то, что отображение адресов входит в цикл, поэтому он не может выделить больше памяти. Я вижу, что это старый вопрос, но я тоже столкнулся с ним и нигде не нашел хорошего объяснения.