LINUX.ORG.RU
ФорумAdmin

routing


0

0

Есть 2 подсетки:
192.168.1.0/24
192.168.2.0/24

Шлюзы у них соответсвенно: 192.168.1.1 и 192.168.2.1
У второй шлюз также имеет один интерфейс в первой подсетке, допустим 192.168.1.100

Собстно, надо их соединить
Делаю "route add -net 192.168.2.1/24 gw 192.168.1.100", в правилах iptables прохождения пакетов разрешаю.
Но все как-то криво: пинги проходят, соединения устанавливаться не хотят.
Если на втором сделать "route add -net 192.168.1.1/24 gw 192.168.1.1" то всё пащшет нормально. Но хочется, чтобы соединения со второй подсети проходили напрямую, без учатия шлюза 192.168.1.1.
Т.е. кагбэ получается, что пакеты из первой подсетки идут по одному пути, а возвращаются по другому. Как это реализовать?

//golties

anonymous

> Но все как-то криво: пинги проходят, соединения устанавливаться не хотят.

Правило для форварда RELATED,ESTABLISHED прописывать Пушкин будет?

> Но хочется, чтобы соединения со второй подсети проходили напрямую, без учатия шлюза 192.168.1.1.

Куда ходило, что ходило? Что надо-то? NAT в интернет, просто роутинг между двумя локалками, или что?

> кагбэ

В /s/ уже спрашивал? :)

anonymous
()

>Делаю "route add -net 192.168.2.1/24 gw 192.168.1.100"

Это на шлюзе 192.168.1.1 ? Команда у вас не выполнится. Надо 192.168.2.0/24

После этого 1ый шлюз будет знать про подсеть 192.168.2.0/24 и куда направить для неё пакеты.

>Если на втором сделать "route add -net 192.168.1.1/24 gw 192.168.1.1"

Непонятно что вы там делаете. Зачем гонять пакеты через первый роутер если можно послать их напрямую? 
Ну-ка покажите таблицы маршрутизации на обоих роутерах ДО ваших манипуляций.

У вас на втором(192.168.2.1) роутере должен присутствовать такой маршрут:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 ethX

где ethX - интерфейс который смотрит в подсеть 192.168.1.0/24

После этого всё должно работать.
Если хост из подсети 192.168.1.0/24 пошлёт пакет в сеть 192.168.2.0/24 
то он сначала сделает это через свой дефолтный роутер 192.168.1.1(вы же настроили дефолтные роутеры на клиентских машинах, правда?)
Ротуер пошлёт хосту редирект, что мол лучше ты шли пакеты через 192.168.1.100, так как тебе там ближе.
И всё.

Nao ★★★★★
()

ещё заодно покажите iptables -vnL FORWARD и sysctl net.ipv4.ip_forward на обоих роутерах, а то что-то сомнения закрадываются.

Nao ★★★★★
()
Ответ на: комментарий от anonymous

>> Но все как-то криво: пинги проходят, соединения устанавливаться не хотят.

>Правило для форварда RELATED,ESTABLISHED прописывать Пушкин будет?


Первый шлюз:

iptables -L|grep 192.168.2.0
ACCEPT all -- 192.168.1.0/16 192.168.2.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state RELATED,ESTABLISHED
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state RELATED,ESTABLISHED
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state RELATED,ESTABLISHED
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state RELATED,ESTABLISHED

Второй:

iptables -L|grep 192.168.1.0
LOG all -- 192.168.2.0/24 192.168.1.0/24 limit: avg 3/min burst 5 state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDext-ACC-FORW '
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state RELATED,ESTABLISHED
LOG all -- 192.168.1.0/24 192.168.2.0/24 limit: avg 3/min burst 5 state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDext-ACC-FORW '
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state RELATED,ESTABLISHED
LOG all -- 192.168.2.0/24 192.168.1.0/24 limit: avg 3/min burst 5 state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDint-ACC-FORW '
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state RELATED,ESTABLISHED
LOG all -- 192.168.1.0/24 192.168.2.0/24 limit: avg 3/min burst 5 state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDint-ACC-FORW '
ACCEPT all -- 192.168.1.0/24 192.168.2.0/24 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 192.168.2.0/24 192.168.1.0/24 state RELATED,ESTABLISHED
LOG all -- 192.168.1.0/24 anywhere limit: avg 3/min burst 5 state NEW LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-TRUST '
ACCEPT all -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED

>Куда ходило, что ходило? Что надо-то? NAT в интернет, просто роутинг между двумя локалками, или что?


Роутинг между локалками, без ната

//pagmes

anonymous
()
Ответ на: комментарий от Nao

>>Делаю "route add -net 192.168.2.1/24 gw 192.168.1.100"

>Это на шлюзе 192.168.1.1 ? Команда у вас не выполнится. Надо 192.168.2.0/24


Опечатка, ес-но 192.168.2.0/24 сделано

>>Если на втором сделать "route add -net 192.168.1.1/24 gw 192.168.1.1"


>Непонятно что вы там делаете. Зачем гонять пакеты через первый роутер если можно послать их напрямую?


Я ж говорю, без этого криво работает, потому и спрашиваю в чем дело.

>Если хост из подсети 192.168.1.0/24 пошлёт пакет в сеть 192.168.2.0/24

то он сначала сделает это через свой дефолтный роутер 192.168.1.1(вы же настроили дефолтные роутеры на клиентских машинах, правда?)
Ротуер пошлёт хосту редирект, что мол лучше ты шли пакеты через 192.168.1.100, так как тебе там ближе.
И всё.

Но не пашет :`(

Первый шлюз:
iptables -vnL FORWARD
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
140K 6790K TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
2079K 1091M forward_int all -- eth0 * 0.0.0.0/0 0.0.0.0/0
1860K 1706M forward_ext all -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 forward_ext all -- eth2 * 0.0.0.0/0 0.0.0.0/0
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWD-ILL-ROUTING '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0


Второй:

iptables -vnL FORWARD
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
14520 741K TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
358K 31M forward_int all -- eth0 * 0.0.0.0/0 0.0.0.0/0
381K 351M forward_ext all -- eth1 * 0.0.0.0/0 0.0.0.0/0
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWD-ILL-ROUTING '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

anonymous
()
Ответ на: комментарий от Nao

net.ipv4.ip_forward = 1 само-собой, иначе бы вообще ничего не форвардилось.

anonymous
()
Ответ на: комментарий от anonymous

> forward_ext all

Это что за извращения? Сделай сначала игрушечные правила на стандартных таблицах.

anonymous
()
Ответ на: комментарий от Nao

>Таблицы forward_int и forward_ext тоже покажите.

Так я выше привел их куски, касающиеся этих подсеток. Там видно 2 одинаковых набора правил, для int и ext.

Еще раз уточню: те же пинги проходят, соединения иногда устанавливаются.
Может дело в физике?

anonymous
()
Ответ на: комментарий от anonymous

Там только куски правил. Да и из вашего поста было непонятно что это те таблицы.

Nao ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.