Want create site? Find Free WordPress Themes and plugins.

Цель: на маршрутизаторе 192.168.0.2 сделать заворот http трафика (80 порт tcp) на маршрутизатор со SQUID 192.168.1.2 с помощью iptables. Физически маршрутизаторы находятся за разными портами и свичами.

Это оказалось не возможно выполнить малой кровью – правила PREROUTING с DSTNAT и POSTROUTING с SRCNAT работают криво – пакет приходит “как бы” от 192.168.0.2, а в заголовке http стоит адрес исходного устройства, после чего прокси-сервер отбрасывает запрос.

Прозрачное проксирование с помощью iptables, iproute2

Все работы производятся на 192.168.0.2.

Маркируем пакет:

iptables -t mangle -A PREROUTING -i eth1 -s 192.168.0.0/24 ! -d 192.168.0.0/16 -p tcp –dport 80 -j MARK –set-mark 2


Ставим маркер “2”1) только на пакеты из интерфейса eth1, только из подсети 192.168.0.0/24, только на нелокальные адреса, только по TCP 80 порту.

Настраиваем маршрутизацию для конкретного маркера:

Добавляем отдельную таблицу маршрутизации:2) 3)

echo 202 www.out>> /etc/iproute2/rt_tables


Редактируем сетевой интерфейс eth1 – /etc/network/interfaces, добавляем создание маршрутов при старте сети:

up ip rule add fwmark 2 table www.out
up ip route add default via 192.168.1.1 dev eth1 table www.out


Маршрутизация через 192.168.1.1 обусловлена тем, что он является промежуточным звеном между сетями 192.168.0.0/24 и 192.168.1.0/24, а пакеты передаёт дальше, на 192.168.1.2.

Очищаем кеш пакетов:

ip route flush cache


Наслаждаемся работой.

1) Поле mark представляет собой беззнаковое целое число в диапазоне от 0 до 4294967296 для 32-битных систем.
2) Вместо www.out можно вставить любое название, это только имя таблицы маршрутов.
3) 202 так же можно заменить на своё значение, это резервируемый номер таблицы маршрутов.
Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий