Каков практический пример использования команды suspend в Bash?

Маршрутизация

Основной способ определить, где пакеты ядра - это таблица маршрутизации ( ip route и другие), а не правила межсетевого экрана ( iptables , nftables ). После того, как вы включили переадресацию IP с помощью net.ipv4.ip_forward = 1 , ядро ​​будет обрабатывать входящие пакеты через таблицу маршрутизации и отправлять их обратно. Итак, если вы хотите, чтобы трафик на 10.0.0.2 проходил через eth0, независимо от того, откуда он пришел:

ip route add 10.0.0.2/32 dev eth0

Теперь, по умолчанию, когда ядро ​​видит трафик, поступающий на eth0 и идущий обратно, то же самое, оно отправит перенаправление ICMP, чтобы сообщить исходной машине: «Эй, это неэффективно! отправьте его напрямую!» Вам нужно отключить это ( net.ipv4.conf.eth0.send_redirects = 0 ). Он также проверяет исходный адрес, чтобы убедиться, что он пришел оттуда, где ожидал; вам может потребоваться отключить и это ( net.ipv4.conf.eth0.rp_filter = 0 ).

Так как это происходит через механизм маршрутизации ядра, необходимые вещи, такие как уменьшение IP TTL, будут выполнены. Но такие вещи, как IP-адрес источника и назначения, не меняются.

Маршрутизация + NAT

Если вам нужно дополнительно изменить исходный или целевой IP-адреса, добавьте NAT поверх. Например, если вам нужен исходный IP-адрес для этой машины, вы можете добавить свой:

iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE

Обратите внимание, что если вы не изменили значение по умолчанию, FORWARD уже должен принять. Если нет, вы можете добавить свое правило (или, альтернативно, изменить значение по умолчанию).

NAT + Маршрутизация

Вы также можете изменить IP-адрес назначения при поступлении пакета, что изменит способ его маршрутизации (поскольку это изменение выполняется до того, как его увидит маршрутизация). Это выглядит так:

iptables -t nat -A PREROUTING -s 10.0.0.1 -j DNAT --to-dest 10.0.0.2

Обратите внимание, что вы не можете использовать здесь - out-interface , потому что выходной интерфейс не известен до завершения маршрутизации. Вы можете использовать - внутри интерфейса .

Существующие инструменты

Вам также следует взглянуть на iperf3 и генератор пакетов .

12
29.07.2016, 10:40
0 ответов

Теги

Похожие вопросы