powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / iptables + GRE
10 сообщений из 10, страница 1 из 1
iptables + GRE
    #39275311
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже мозг сломал.
Есть машина А (192.168.1.46, 192.168.10.220, 10.0.0.1) - шлюз,
и есть машиа Б (10.0.0.2, 10.0.0.3) (у нее в качестве основного шлюза стоит А - 10.0.0.1)

все что приходит на 192.168.1.46

Код: sql
1.
2.
eth0      Link encap:Ethernet  HWaddr 00:15:5d:01:2d:00
          inet addr:192.168.1.46  Bcast:192.168.1.255  Mask:255.255.255.0



Отправляем на машину Б

Код: sql
1.
2.
iptables -v -t nat -A PREROUTING  -p tcp -d 192.168.1.46 -j DNAT --to 10.0.0.2
iptables -v -t nat -A POSTROUTING -p tcp -s 10.0.0.2 -j SNAT --to 192.168.1.46



все без проблем работает как и ожидалось.

Так же на машину А (шлюз) приходит трафик GRE
Код: sql
1.
2.
tun0      Link encap:UNSPEC  HWaddr C0-A8-01-2E-30-30-3A-30-00-00-00-00-00-00-00-00
          inet addr:192.168.10.220  P-t-P:192.168.4.1  Mask:255.255.255.255



Сам по себе туннель работает, по нему можно подключиться к машине А.
Но мне надо этот трафик тоже завернуть на машину Б:

Код: sql
1.
2.
iptables -v -t nat -A PREROUTING  -p tcp -d 192.168.10.220 -j DNAT --to 10.0.0.3
iptables -v -t nat -A POSTROUTING -p tcp -s 10.0.0.3 -j SNAT --to 192.168.10.220



А не работает. Что я делаю не так?
...
Рейтинг: 0 / 0
iptables + GRE
    #39275313
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь набор правил:

Код: sql
1.
2.
3.
4.
5.
DNAT  tcp opt -- in * out *  0.0.0.0/0  -> 192.168.1.46   to:10.0.0.2
SNAT  tcp opt -- in * out *  10.0.0.2  -> 0.0.0.0/0   to:192.168.1.46
DNAT  tcp opt -- in * out *  0.0.0.0/0  -> 192.168.10.220   to:10.0.0.3
SNAT  tcp opt -- in * out *  10.0.0.3  -> 0.0.0.0/0   to:192.168.10.220
MASQUERADE  all opt -- in * out eth0  10.0.0.2  -> 0.0.0.0/0
...
Рейтинг: 0 / 0
iptables + GRE
    #39275423
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так понимаю пакеты приходят на 10.0.0.3 а ответ уходит от 10.0.0.2 ?
...
Рейтинг: 0 / 0
iptables + GRE
    #39275426
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пошел курить policy-routing
...
Рейтинг: 0 / 0
iptables + GRE
    #39275874
Завернуть весь туннель на Б или затерминировать его на A, засунув трафик из него в Б?

HettНо мне надо этот трафик тоже завернуть на машину Б:
Код: sql
1.
iptables ... -p tcp ...



tcp и gre разные протоколы. И я вообще не уверен, что GRE сможет через NAT.
...
Рейтинг: 0 / 0
iptables + GRE
    #39275892
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Протоколы высокого уровня из правил убрал, в дальнейшем можно их опустить.

Если не применять правила:

Код: sql
1.
2.
iptables -v -t nat -A PREROUTING  -d 192.168.10.220 -j DNAT --to 10.0.0.3
iptables -v -t nat -A POSTROUTING -s 10.0.0.3 -j SNAT --to 192.168.10.220



то все работает нормально, трафик доходит до конечной точки (до интерфейса tun0):

Код: sql
1.
2.
tun0      Link encap:UNSPEC  HWaddr C0-A8-01-2E-30-30-3A-30-00-00-00-00-00-00-00-00
          inet addr:192.168.10.220  P-t-P:192.168.4.1  Mask:255.255.255.255



Правильно ли я понимаю, что здесь путь GRE заканчивается и трафик преобразуется в инкапсулированный протокол?

Этот трафик видно в tcpdump:

Код: sql
1.
2.
3.
4.
5.
root@gw:~# tcpdump -p -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
12:26:50.306674 IP 192.168.1.100 > 192.168.10.220: ICMP echo request, id 1, seq 2222, length 40
12:26:50.306709 IP 192.168.10.220 > 192.168.1.100: ICMP echo reply, id 1, seq 2222, length 40



но почему-то с этими пакетами я больше ничего не могу сделать,
пытаюсь их завернуть на 10.0.0.3

Код: sql
1.
2.
iptables -v -t nat -A PREROUTING   -d 192.168.10.220 -j DNAT --to 10.0.0.3
iptables -v -t nat -A POSTROUTING  -s 10.0.0.3       -j SNAT --to 192.168.10.220



и они словно куда-то подевались,
192.168.10.220 на пинг уже не отвечает, а пакеты словно в черную дыру ушли.

авторЗавернуть весь туннель на Б или затерминировать его на A, засунув трафик из него в Б?
Доставить трафик любым способом, чтобы сохранить оригинальные SRC
На Б стоит Windows и подключить к ней GRE нет возможности. Я для этих целей и поставил шлюз.
...
Рейтинг: 0 / 0
iptables + GRE
    #39275898
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и да, если применить правила:


Код: sql
1.
2.
iptables -v -t nat -A PREROUTING   -d 192.168.10.220 -j DNAT --to 10.0.0.3
iptables -v -t nat -A POSTROUTING  -s 10.0.0.3       -j SNAT --to 192.168.10.220



то tcpdump на машине 10.0.0.3 не видит трафика никакого, он туда и не приходит, хз куда девается.
...
Рейтинг: 0 / 0
iptables + GRE
    #39275912
А если перед запуском iptables убрать ip-адрес 192.168.10.220 с интерфейса eth0 на сервере A?
...
Рейтинг: 0 / 0
iptables + GRE
    #39275915
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на eth0 его и нет, он только на tun0
...
Рейтинг: 0 / 0
iptables + GRE
    #39276535
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема была в rp_filter, кому интересно если.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / iptables + GRE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]