- Linux что такое ip forward
- Linux что такое ip forward
- что именно делает? net.ipv4.ip_forward =
- ВНЕМАТЕЛЬНО СТАВИМ И ЧИТАЕМ ВОПРОСЫ
- Как включить/выключить IP Forwarding в Linux
- Проверяем включен или нет IP Forwarding в данный момент
- Временно включаем/отключаем IP Forwarding
- Постоянно включаем/отключаем IP Forwarding в системе
Linux что такое ip forward
Маршрутизация транзитных IP-пакетов (не предназначенных для этого компьютера), или IP-форвардинг, является опциональной возможностью IP-стека Linux. По умолчанию функция форвардинга не активируется, и система не пересылает транзитные пакеты через свои интерфейсы, а только обрабатывает адресованные ей пакеты. Включение форвардинга IP-пакетов производится через параметр net.ipv4.ip_forward интерфейса sysctl . Если значение этого параметра равно 0, то форвардинг отключен, если же значение параметра не равно 0, форвардинг включен:
Кроме того, возможно разрешать или запрещать участие в форвардинге для каждого интерфейса индивидуально:
По умолчанию форвардинг включается и выключается для всех интерфейсов одновременно, но для отдельных интерфейсов возможно сменить флаг участия в форвардинге. Изменять параметры форвардинга может только системный администратор или пользователь, который имеет право записи в необходимые файлы интерфейса sysctl . Следующий листинг демонстрирует включение форвардинга через все интерфейсы путем вызова программы sysctl :
В процессе маршрутизации для выбора интерфейса и следующего узла для доставки пакета (next hop) ядро использует таблицу маршрутизации. Эта таблица представляет список критериев, в соответствии с которыми выбирается следующий узел. В частности, в таблице маршрутизации фигурируют следующие условия: адрес сети получателя пакета, маска подсети получателя пакета, IP-адрес следующего узла, метрика маршрута и служебные поля (например, тип и возраст записи). Таблица маршрутизации используется не только в IP-форвардинге, но и даже при простой отсылке IP-пакета для выбора интерфейса, через который будет производиться отсылка пакета.
Запись о сети с адресом 0.0.0.0 и маской подсети 0.0.0.0 называют маршрутом по умолчанию, или default route. Узел, чей адрес указан в поле gateway для маршрута по умолчанию, называют маршрутизатором по умолчанию, или default gateway или default router. В системе может быть произвольное количество маршрутов по умолчанию, но они должны быть как минимум с разными метриками. Для просмотра таблицы маршрутизации можно воспользоваться командой route. Эта команда позволяет оперировать с таблицей маршрутов, добавляя и удаляя из нее записи.
В данном выводе таблица упорядочена по маске подсети, что соответствует порядку ее просмотра ядром. Столбцы Destination и Genmask содержат адрес и маску сети получателя пакета, столбец Metric фактически указывает приоритет маршрута (маршрут с меньшей метрикой более приоритетен), поле Gateway указывает IP-адрес следующего узла для передачи пакета. Некоторые типы интерфейсов (в частности, интерфейсы типа точка-точка, или point-to-point) подразумевают, что на принимающем конце линии связи всегда находится не более одного узла, и поэтому в этой ситуации IP-адрес следующего узла можно не указывать. В данном случае мы видим, что в приведенном примере некоторые узлы доступны через интерфейс ppp0 типа точка-точка. В частности, именно из-за этого свойства приведенная выше таблица оказывается эквивалентна следующей ниже. Жирным шрифтом помечена измененная строка, демонстрирующая “точечную” природу PPP-соединения:
Специфика использования протокола PPP (обычно используемого при модемых соединениях) такова, что любой PPP-интерфейс является интерфейсом типа точка-точка, более того – PPP и расшифровывается как Point-to-Point Protocol. Также интерфейсами точка-точка являются интерфейсы SLIP (Serial Line IP) и практически все разновидности туннельных интерфейсов.
При деактивизации интерфейса из таблицы маршрутизации автоматически исключаются все маршруты, для которых в поле Iface был указан отключившийся интерфейс. Для некоторых типов интерфейсов при активизации в таблице маршрутизации также создаются служебные записи о маршрутах, которые нельзя удалить.
В большинстве случаев таблица маршрутизации имеет не слишком большой размер, но в некоторых ситуациях (в частности, на шлюзовых машинах в больших сетях) таблица может иметь весьма значительный размер и изменяется не “вручную” с помощью команды route, а специальными программами – демонами поддержки протоколов динамической маршрутизации. С некоторыми упрощениями алгоритм работы этих демонов можно описать следующим образом: демон “слушает” приходящие пакеты для обслуживаемых протоколов динамической маршрутизации, и по получении (или неполучении) такого пакета отдает ядру команду на изменение таблицы маршрутизации.
Следует также заметить, что команда route в режиме вывода таблицы маршрутизации фактически просто фильтрует и форматирует данные, содержащиеся в специальном файле, называемом /proc/net/route, используемом для доступа к таблице маршрутизации, ведущейся ядром.
Источник
Linux что такое ip forward
Многие организации получают у своих провайдеров лишь несколько маршрутизируемых в Интернете IP-адресов. Из-за этого ограничения администраторы вынуждены придумывать способы доступа к Интернет-службам, не требующие назначения реальных IP-адресов каждому узлу локальной сети. Использование частных IP-адресов — это распространенный способ обеспечить доступ к внешним и внутренним сетевым службам для всех узлов локальной сети. Пограничные маршрутизаторы (например, брандмауэры) могут получать данные, передаваемые из Интернета, и маршрутизировать пакеты к целевому узлу в локальной сети. В то же время, маршрутизаторы/брандмауэры также могут маршрутизировать исходящие запросы от локального узла к удалённой Интернет-службе. Такое перенаправление сетевого трафика иногда может быть опасным, особенно, учитывая возможности современных средств взлома, способных подменять внутренние IP-адреса и представлять компьютер злоумышленника узлом вашей сети. Чтобы предотвратить незаконное использование сетевых ресурсов таким образом, iptables предоставляет политики маршрутизации и пересылки пакетов.
Политика FORWARD позволяет администратору управлять тем, как пакеты маршрутизируются в локальной сети. Например, чтобы разрешить маршрутизацию для всей локальной сети (предположим, что брандмауэру/шлюзу назначен внутренний IP-адрес на интерфейсе eth1), можно задать такие правила:
iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -o eth1 -j ACCEPT
Это правило даёт компьютерам за брандмауэром/шлюзом доступ к внутренней сети. Шлюз маршрутизирует пакеты от одного узла в локальной сети к целевому узлу назначения, передавая все пакеты через устройство eth1 .
Замечание |
---|
Замечание |
---|