Linux не поддерживает статические рекурсивные маршруты?
697
Neil McGill
Я пытаюсь добавить несколько рекурсивных маршрутов. Следующая идея отлично работает, скажем, на маршрутизаторе cisco, но Linux (Ubuntu 14.04.5 LTS) не устраивает
# ip -4 route add 1.1.1.1/32 dev eth4 # ip -4 route add 2.2.2.2/32 via 1.1.1.1 # ip -4 route add 3.3.3.3/32 via 2.2.2.2 RTNETLINK answers: Network is unreachable # ip route default via 10.122.197.1 dev eth4 metric 100 1.1.1.1 dev eth4 scope link 2.2.2.2 via 1.1.1.1 dev eth4
Просто разрешите рекурсию вручную и введите последний шлюз? Linux отправляет маршрутизированные пакеты напрямую и не рассматривает их как возможные входящие пакеты и снова маршрутизирует их. Почему вы думаете, что вам нужны рекурсивные маршруты?
dirkt 6 лет назад
0
Да, это можно сделать вручную, но мой вопрос - почему это не может быть сделано в Linux. Извините, я не могу разгласить почему проекта.
Neil McGill 6 лет назад
0
Это не может быть сделано в Linux, потому что именно так работает сетевой стек Linux - и это делает обработку пакетов более эффективной, избегая дополнительной проверки после принятия решения о маршрутизации. И если бы я реализовывал сетевой стек, я бы тоже этого не включил, так как не понимаю, почему это когда-либо понадобится (и вы не хотите объяснять). Достаточно ли этого в качестве ответа?
dirkt 6 лет назад
0
@dirkt Эту же проверку можно выполнить один раз при добавлении маршрута. Вот как в Bird реализованы рекурсивные маршруты.
grawity 6 лет назад
1
Многоуровневая рекурсия маршрутов - довольно стандартная вещь в мире маршрутизаторов, но Linux, похоже, останавливается на 1 уровне рекурсии и 2 уровнях и выше. Я не особенно покупаю ответ, что это сделано для эффективности, как, например, @grawity говорит, что это можно сделать один раз во время установки маршрута в выдумку. Ребро все еще может отслеживать многоуровневую рекурсию. По крайней мере, так работает маршрутизаторы. Так что это кажется либо намеренным выбором дизайна, чтобы не поддерживать это, либо ошибкой в linux ... Bird для меня новость - спасибо за эту информацию.
Neil McGill 6 лет назад
0
Поэтому отправьте патч, который выполняет проверку при вставке маршрута, либо в `ip`, либо в ядре. Я уверен, что вы услышите от разработчиков ядра, если они по какой-то причине возражают против этого ...
dirkt 6 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
2
Windows 7 Home Premium запоминает пароли общего доступа к сети?
-
3
Каковы различия между оконными менеджерами Linux?
-
5
Поделитесь XP сетевым подключением без перезагрузки?
-
5
Как мне сказать Windows использовать 802.11 вместо 3G?