Проблема маршрутизации Linux
У меня есть 2 маршрутизатора linksys, на которых работает linux и используется встроенная прошивка томата.. у обоих подключены интернет-линии, но только 1 действует как DHCP-сервер (маршрутизатор 1). Мне нужно добиться, чтобы все пакеты поступали на маршрутизатор 1 из внутреннего IP-адреса, которые хотят получить доступ к Интернету, будут выходить на эту интернет-линию, но с 1 определенного порта, если маршрутизатор 1 обнаружит пакеты с определенного исходного порта (например, http: 80), он перенаправит этот пакет на маршрутизатор 2 и выйдет на Интернет оттуда.. Я нашел некоторые документы, которые дают решение, что мне понадобятся серверы Linux с 2 сетевыми картами, а затем мы подключаем к нему как интернет-линии, так и базу маршрутизации, но я не хочу этого делать, потому что мой Босс не хочет иметь дополнительную работу по обслуживанию этого сервера, кроме того, он говорит, что сам маршрутизатор уже является Linux, так что почему... Я склонен согласиться с его мнениями.. Можно ли это сделать или отдельный сервер Linux, выступающий в качестве маршрутизатора является обязательным? Спасибо всем заранее и с нетерпением жду ваших ответов.. Я новичок в сети Linux, и это, кажется, что-то из моей способности решить:(
Искренне Ваш! Дык к
3 ответа
Без знания прошивки или других ограничений сложно дать хороший ответ. Это, безусловно, возможно сделать с использованием полноценной системы Linux, но это сложная настройка маршрутизации, которая может содержать интересные ошибки. Если возможно, я бы рекомендовал избегать такого рода настройки.
Пока ваше ядро поддерживает маршрутизацию политик, вы должны более или менее следовать приведенным здесь инструкциям. Более полные инструкции можно найти здесь.
Обратите внимание, что вам придется перенастроить вторичный шлюз, чтобы не использовать DHCP. При запуске маршрутизатора DHCP рано или поздно вернется и укусит вас.
Это сложная настройка. Возможно, вам будет проще перенести два интернет-соединения на один маршрутизатор и добавить дополнительную VLAN и зону для второго интернет-соединения.
Я бы посмотрел документацию для нескольких ISPS на сайте Shorewall. Я полагаю, что Tomato должен запустить Shorewall-lite (для этого потребуется другой сервер, способный создавать правила. Если я не верю, документация объясняет настраиваемые правила. Возможно, вы сможете запустить разделенное соединение, используя два маршрутизатора, используя адрес шлюза второго маршрутизатора в качестве второго пункта назначения маршрутизации. Если я понимаю ваши требования, я думаю, вам нужно только настроить маршрутизатор 1.
Из вашего описания (пакеты с портом-источником 80 почти всегда будут ответами на HTTP-запросы), звучит так, как будто у вас есть HTTP-сервер, который вы хотите показывать позади маршрутизатора2. Другими словами, пакеты приходят через router2 (или, возможно, router1, но это было бы ошибкой) к серверу, и сервер отвечал бы через router2. Вы хотите, чтобы весь ваш другой интернет-трафик проходил через router1.
Мое предложение было бы сделать небольшое изменение маршрутизации на сервере:
- Измените маршрут по умолчанию для сервера на router2.
- Создайте статический маршрут для внутренней сети для маршрутизации на router1. (примечание: вы можете пропустить этот шаг, если ваш сервер находится внутри вашей внутренней сети; стек IP будет обрабатывать это по умолчанию)
Вы можете сделать это только с одной сетевой картой на сервере, если это то, что касается вас, при условии, что оба router1 и router2 имеют интерфейсы во внутренней сети.
Я знаю, что вы не хотите вносить изменения на сервере, но гораздо проще разместить конфигурацию там, чем на двух пограничных маршрутизаторах.