LINUX.ORG.RU
ФорумAdmin

Как правильно сеть настроить? Два запрещенных слова из трех букв.

 , , , ,


0

1

Схема сети:

    сервер-1              сервер-2                сервер-3
  eth0   tun0 --tinc--  tun0   tun1 ---fastd---  tun1  eth0

На сервере-1 приходится делать маркировку пакета на основе GID (и запускается все как sg xxx firefox например), потом через ip-rule он роутится на айпишник tun1 у сервера-3. И на выходе из tun0 приходится делать SNAT с адресом tun0.

На сервере-2 приходится добавлять два ip-route правила: для роутинга всго связанного с tun0 собственно в tun0 (как было бы без второго правила идущего следом) и второе правило – роутинг всего на адрес tun1 у сервера-3.

На сервере-3 делается SNAT на выходе в инет.

В чём вопрос. Больно сложный/запутанный набор правил для ip-route, еще iptables. Можно ли как-то проще? Можно ли посадить сеть tinc и сеть fastd как-то в одну подсеть? Одна плоская сеть более удобна, чем две подсети. Можно ли обойтись без ip-route? Кажется нет (нужен source-based routing).

Увы но заменить tinc на fastd или fastd на tinc не представляется возможным. Кажется можно порты tinc посредством iptables пробросить на tun1 адрес сервера-3 и там запустить еще один tinc, траффик которого будет бегать внутри tun1.

Но вообще хотелось бы, чтоб на сервере-1 можно было выбирать, траффик пойдет через инет, через сервер-2 или через сервер-3. И кажется сделать это можно только используя раздельные подсети. И опять ip-route. :-/


Ну, у ipv4 пакета есть поле ToS. Вроде, провайдеры никогда его особо не обрабатывали. ИМХО, можно на сервер-1 выставлять каждому пакету необходимый ToS и на сервер-2 маршрутизровать по этому полю. Ну, и может обнулять его на сервер-2.

Можно ли обойтись без ip-route?

Можно ли настроить в Линуксе маршрутизацию без ip route?

mky ★★★★★
()

Можно сделать туннель fastd внутри туннеля tinc. Тогда на сервере1 будет два интерфейса tun0 и tun1 и все правила маршрутизации будут там. Маршрут до внешнего адреса сервер3 прописать через tun0 (опционально заблокировать iptables на случай отвала связи до сервера2). Нужно не забыть про правильный выбор mtu.

m0xf
()