Перенаправьте ВСЕ пакеты, поступающие на порт 60300, на gw 10.8.0.1 и / или dev tun0, используя iproute2 и iptables - PullRequest
0 голосов
/ 19 октября 2011

Я хочу переслать все пакеты, поступающие на порт 60300, на tun0. Быстрая схема:

Интернет -> myserver: 60300 -> tun0 myserver -> 10.8.0.1 -> 10.8.0.2.

Я хотел сделать это с помощью:

iptables -t mangle -A PREROUTING -i eth0 -m --dports 60300 -j ROUTE --oif tun0

тогда я узнал, что цель МАРШРУТА - большая жирная ложь, чтобы люди могли смеяться над нубами, как я.

После быстрого поиска выяснилось, что это также возможно с пометкой:

iptables -t mangle -A PREROUTING -i eth0 -m --dports 60300 -j MARK --set-mark 1

и использование iproute2, что-то вроде этого:

ip rule add fwmark 1 table (nb?)

Здесь я борюсь. Есть ли более простое решение? Кстати, я использую Debian 6.0 с обновлениями безопасности.

Ответы [ 2 ]

0 голосов
/ 31 октября 2016

Существует огромная разница между маршрутизацией NAT и iproute2.
Пока вы помечаете пакет, он может обрабатываться таблицей маршрутизации.
Разница заключается в адресе назначения.
Если вы используете NAT, адрес получателя пакета будет изменен на 10.8.0.2
В случае использования iproute2, 10.8.0.2 будет просто следующим переходом без изменения адреса получателя.
Итак, можно сказать, что эти решения имеют разный фон.
1. В случае NAT-маршрутизации пакет прибудет на tun0, а затем будет нацелен непосредственно на 10.8.0.2 - его удобно использовать, когда пакет приходит из какой-то сети, и вам необходимо направить его непосредственно в конечную точку.Таблица маршрутизации будет использоваться только для выбора подходящего интерфейса / шлюза.
2. Лучше использовать iproute2 для гибкой маршрутизации трафика с сохранением целевого IP (например, для балансировки исходящего трафика).В этом случае таблица маршрутизации будет искать отмеченный упакованный (например) и направлять его согласно надлежащему правилу.Конечно, отметка пакета не перейдет к следующему прыжку.
Впервые действительно сложно понять идеологию маршрутизации политики, однако она содержит только 3 основных вещи, которые могут упростить ее:
- / etc /iproute2 / rt_tables - этот файл содержит всю информацию о таблицах и их приоритетах.После добавления пользовательская таблица будет сохранена в таблице маршрутизации.
- список правил ip - эта команда отображает все действительные правила, которые участвуют в маршрутизации политики.
- таблица показа ip route XXX - показывает все правила маршрутизации для таблицы.Если в этой таблице не задан маршрут по умолчанию, все несопоставленные пакеты будут обрабатываться основной таблицей маршрутизации.
Нельзя сравнивать iproute2 с NAT - они решают разные задачи и могут использоваться в разных ситуациях.

0 голосов
/ 20 октября 2011

Решение:

iptables -t nat -A PREROUTING -p tcp -i eth0 -d myserver --destination-port 60300 -j DNAT --to 10.8.0.2:60300
iptables -t nat -A PREROUTING -p udp -i eth0 -d myserver --destination-port 60300 -j DNAT --to 10.8.0.2:60300

...

...