Что такое IP-пересылка ядра?

70

Я видел во многих блогах, используя эту команду для включения переадресации IP при использовании многих инструментов сетевой безопасности / сниффинга в Linux

echo 1 > /proc/sys/net/ipv4/ip_forward

Может кто-нибудь объяснить мне в терминах непрофессионала, что по существу делает эта команда? Это превращает вашу систему в маршрутизатор?

Мадхур Ахаджа
источник
1
файл python для включения и отключения перенаправления

Ответы:

77

«IP-пересылка» является синонимом «маршрутизации». Это называется «переадресация IP-адресов ядра», потому что это особенность ядра Linux.

Маршрутизатор имеет несколько сетевых интерфейсов. Если трафик поступает на один интерфейс, который соответствует подсети другого сетевого интерфейса, маршрутизатор затем перенаправляет этот трафик на другой сетевой интерфейс.

Итак, допустим, у вас есть две NIC, одна (NIC 1) находится по адресу 192.168.2.1/24, а другая (NIC 2) - 192.168.3.1/24. Если переадресация включена, и пакет поступает на NIC 1 с «адресом назначения» 192.168.3.8, маршрутизатор повторно отправит этот пакет из NIC 2.

Маршрутизаторы, работающие в качестве шлюзов в Интернет, обычно используют маршрут по умолчанию, при котором любой трафик, который не соответствует ни одной сетевой карте, будет проходить через сетевой адаптер по умолчанию. Таким образом, в приведенном выше примере, если у вас есть подключение к Интернету на NIC 2, вы устанавливаете NIC 2 в качестве маршрута по умолчанию, и тогда любой трафик, поступающий с NIC 1, который не предназначен для чего-то на 192.168.2.0/24, будет идти через NIC 2. Надеемся, что есть другие маршрутизаторы, кроме NIC 2, которые могут дополнительно маршрутизировать его (в случае с Интернетом следующим переходом будет маршрутизатор вашего провайдера, а затем их провайдерский маршрутизатор и т. д.)

Включение ip_forwardговорит вашей системе Linux сделать это. Для того, чтобы это было значимым, вам нужно два сетевых интерфейса (любые 2 или более проводных плат NIC, Wi-Fi или чипсетов, PPP-соединения через модем 56k или последовательный порт и т. Д.).

При выполнении маршрутизации важна безопасность, и в этом iptablesучаствует фильтр пакетов Linux . Поэтому вам потребуется iptablesконфигурация, соответствующая вашим потребностям.

Обратите внимание, что включение переадресации с iptablesотключенным и / или без учета брандмауэра и безопасности может сделать вас уязвимым, если один из сетевых адаптеров подключен к Интернету или подсети, которую вы не можете контролировать.

LawrenceC
источник
2
Правильно, вы захотите сделать NAT, если NIC 2 является частным IP. Linux также может выполнять NAT, и iptablesэто способ его настройки.
LawrenceC
Нужен ли NAT для передачи данных с NIC 2 на NIC 1?
GutenYe
2
Обычно NAT будет работать от LAN до WAN, поэтому, если NIC 2 имеет частный IP, а NIC 1 имеет публичный 1, вам нужен NAT; В частности, интернет-облицовочный интерфейса (NIC 1 на выше) требуется MASQUERADEправило в iptables«х POSTROUTINGна цепи , чтобы сделать это. См. Revsys.com/writings/quicktips/nat.html и i.stack.imgur.com/rzz83.png .
LawrenceC
Проще говоря, будет ли правильно, если я скажу, что включение переадресации IP означает, что машина может передавать пакет с одного сетевого адаптера на другой сетевой адаптер? Кроме того, было бы верно, если бы я сказал, что включение переадресации IP-адресов на машине с одним IP / NIC не требуется?
Сри
1
@ultrasawblade В случае, если включена переадресация IP и подключение к Интернету на NIC 2, а также в качестве маршрута по умолчанию, если он получает пакет, предназначенный для 192.168.2.2, от NIC 1, что будет делать маршрутизатор?
бобо
3

Когда эта опция включена, «IP forwarding» позволяет машине Linux получать входящие пакеты и пересылать их. Компьютеру Linux, действующему как обычный хост, не нужно было бы включать IP-пересылку, потому что он просто генерирует и получает IP-трафик для своих собственных целей (то есть для целей своего пользователя).

Однако существуют случаи, когда переадресация IP полезна: 1. Мы хотим, чтобы наша машина действовала как маршрутизатор, получая пакеты от других хостов и направляя их к месту назначения. 2. Мы плохие парни, и мы хотим выдать себя за другую машину в так называемой « атаке человека посередине ». В этом случае мы хотим перехватить и увидеть весь трафик, направленный к жертве, но мы также хотим перенаправить этот трафик ей, чтобы она не «чувствовала» наше присутствие.

Андреа Аральдо
источник