Что мне нужно сделать, чтобы установить мой компьютер в качестве шлюза по умолчанию?

Что мне нужно сделать, чтобы установить мой компьютер в качестве шлюза по умолчанию?

Мы пытаемся собрать коробку с двумя сетевыми картами (скажем, внешней и внутренней), где внутренняя сетевая карта должна выступать в качестве шлюза по умолчанию в сети, к которой она подключена.

Этот ящик работает под управлением Ubuntu. Основная цель этого ящика — принимать сообщения, сгенерированные во внутренней сети, выполнять с ними некоторую работу и пересылать их через внешнюю сетевую карту на сервер. Внутренняя сеть полностью изолирована с помощью простого обычного коммутатора, соединяющего внутреннюю сетевую карту с двумя другими ящиками.

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

Вопрос: 1. Как настроить сетевую карту в качестве шлюза по умолчанию (нужна ли какая-то настройка в Ubuntu)? 2. После такой настройки достаточно ли просто прослушивать интерфейс для перехвата входящих сообщений?

Любая помощь (указание правильного направления) приветствуется.

Спасибо.

решение1

Вам не нужно никакой специальной настройки на NIC, чтобы сделать его шлюзом по умолчанию. Вам просто нужно настроить машины во внутренней локальной сети, чтобы использовать этот NIC IP в качестве шлюза по умолчанию.

Для маршрутизации пакетов между двумя подсетями необходимо включить пересылку IPv4 с помощью:

# echo 1 > /proc/sys/net/ipv4/ip_forward     (as root)

Чтобы сделать его постоянным, отредактируйте файл /etc/sysctl.confи раскомментируйте строку:

net.ipv4.ip_forward=1

Для перехвата пакетов вы можете написать программу на C/C++. Вы можете использовать libpcap, чтобы получить трафик, который достигает вашего внутреннего сетевого адаптера, и выполнить любую необходимую обработку. Я не могу предоставить больше подробностей, потому что не знаю, какой тип обработки вы хотите выполнить.

Связанный контент