Доброго времени стуток.
Опишу ситуацию на хосте имеется запись в таблице маршр-ии:
xx.xx.xx.xx 255.255.255.255 192.168.1.1 eth0
если создать впн подключение, все запросы заворачиваются в туннель через tun интерфейс. Если после этого создать ssh подключение к адресу xx.xx.xx.xx. Исходящяя tcp сессия на удаленный адрес xx.xx.xx.xx согласно таблице маршрутизации создается с интерфейса eth0/192.168.1.76.
Как сделать чтобы пакеты уходили с tun интерфейса, не удаляя этот маршрут?
на ум пришло такое, но чет нет уверенности что заработает.
все усугубляется еще тем что адреса интерф. eth0, tun+ - динамические.
ЛОР послушаю ваших советов. Может как то по другому можно пометить пакет и дать ему верный путь.
Простите не правильно написал. Первым было: «Ничего не понял. Может все-таки нормально опишите?» Я вот реально не вкуриваю, или может мало курю... в чем проблема?
формируется пакет согласно таблицы маршрутизации, т.к. есть запись вида:
xx.xx.xx.xx via 192.168.1.1 dev eth0 proto static metric 10
то ядро инкапсулирует пакет с адресом назначения xx.xx.xx.xx, адресом источника интерфейса eth0|192.168.1.92.
это понятно?
если его убрать то пакет уйдет через дефолтный маршрут, через tun интерфейс - как и должно быть. Но я его убирать не хочу, т.к. эта запись нужна, она говорит что есть в глобальной сети интернет один хост c адресом (xx.xx.xx.xx).
Как предложили выше добавить статический маршрут (не уверен что верно):
ip route add xx.xx.xx.xx/32 via 10.5.11.5 src 10.5.11.6
поидее это должно сформировать пакет адресованный xx.xx.xx.xx через tun интерфейс(с адресом источника src 10.5.11.6). Только вот не будет ли проблем при двух этих маршрутах и какой приоритет у них будет?
Опять не понятно, почему вообще 192.168.1.76 должен отправлять пакеты на 192.168.1.92 ? Что такое x.x.x.x адрес vpn сервера? 192.168.1.1 это адрес роутера для локалки 192.168.1.0/24 ?
Опять не понятно, почему вообще 192.168.1.76 должен отправлять пакеты на 192.168.1.92 ?
Он и не должен. Где я это говорил, это один и тот же адрес (для eth0). Он динамический поэтому разный получился.
Что такое x.x.x.x адрес vpn сервера?
да удаленный сервер
192.168.1.1 это адрес роутера для локалки 192.168.1.0/24 ?
да маршрутизатор.
----
Сначала идет подкл. к впн серверу. Затем хочется по ssh к нему зайти, но уже в туннеле.
если маршрут добавить, проблема с адр ист. устраняется. но впн туннель падает - возможно в правила iptables нужно смотреть. Итог не работает. Но не суть. Хрен с ним! спасибо за участие.
Да одинаковые сети у тут на двух концах впн-а. Это вообще звездец, в принципе, и это только первый камень, который найден.
Чо сказать, маршрутизацию можно статикой на один адрес сделать, даже в скрипт поднятия ВПНа запилить, только один фиг это не правильно от слова совсем. Правильный выход либо переводить одну сеть в другую, либо не стучать в принципе из одной в другую, а повесить пробросы на точках впн-а от порта во внутреннюю сеть.
Бгы, а падает кстати скорее всего от лупа маршрута... Если это впн работа - дом проще дома сделать сетку 192.168.100.0/24 или вообще 172.20.1.0/24 к примеру...
Та все тоже самое, создаем отдельную таблицу, через iptables маркируем пакет, и ip rule заворачиваем этот mark. Документации для вашего варианта, как писал выше, просто дофига.
xx.xx.xx.xx via 192.168.1.1 dev eth0 proto static metric 10
А по ссш в него надо стучаться в впн? Значит есть 2 машины с одинаковым адресом с доступом из локальной сети и за впном. А это значит что сети как минимум накладываются (да, из одной машины тоже таки сеть).
Ну а дальше можно шаманить, но как только по ссш поработаешь и поднимешь какой-нибудь сервис там, надо будет и его подшаманить...
Нет, возможно тс извратень и стучится на один сервак через шлюз и через впн? Но тогда опять полностью не логично, ссш что, отгорожен с одной стороны, но висит на внешнем адресе, с доступом только изнутри? А другие сервисы отгорожены изнутри чтоли, почему не менять полностью маршрут к этому адресу в тунель при его поднятии???
В общем-то решение есть, ванговать дальше не имеет смысла до следующего поста:
Есть ссш до машины за тунелем, но не могу попасть на веб-сервер
Есть ссш до машины за тунелем, но не могу попасть на веб-сервер
Но вот этим вы одну мысль подкинули. ТС обрати внимание можно от обратного пойти, прописать роут только для впн, а все остальное потом само пойдет через defroute на tun
Да, не сразу понял. То есть это и сервер впн до кучи... Тогда я в принципе не понимаю - ssh 10.5.11.5 не работает принципиально? Это же тот-же сервер, тоже интерфейс за аутентификацией впна, должен быть статикой...
Просто ну в корне не верно по-разному маршрутизировать разные пакеты к ОДНОМУ интерфейсу ОДНОГО хоста. Полнейший бред. Есть интерфейс внешний, есть внутренний. Разобраться кто есть что и во внутренний - управление, во внешний - всё что должно смотреть наружу, а не делать хаки и трики, в которых потом кто-то будет ломать голову и хотеть сломать кому-то руки.
Да я тоже парсил долго, ТС «умеет» задачу описывать :) А вот про остальное, сама задача как ее уже распарсили, может иметь место в жизни. Во всяком случае у меня, хоть и не про ssh, такое реализовано, да это костыль, но жизнь заставила его поставить, не все только от нас зависит.
Уж извините, но таки вроде я оказался прав. Задача имела простое и правильное решение. Просто для меня это несколько принципиально: то что может быть без костылей должно быть без костылей... Сам работал разъездным админом и представляю что такое разбираться в чужих костылях, и что из этого следует...
Блин, неделю не могли додуматься... ))) Умеет ТС задать задачку. =)
И ещё, пока меня плющит... Рекомендую вообще убрать ssh с xx.xx.xx.xx/32 для безопасности. Это снизит если что нагрузку на файрвол и даст сразу понять что туду стучать не нужно, не возникнет впоследствии такой задачи как у вас... Пусть висит только в впн-е, ну и если есть, на локальном адресе... Но помните одно НО: удалённая настройка доступа - к дороге....
Ну если по честному, не неделю а всего лишь один день... правда это было нифига не просто ))) Все что после iptables,ssh маршрутизация (комментарий) уже на тему «подпорок»
Просто для меня это несколько принципиально: то что может быть без костылей должно быть без костылей...
Ну у ТС это отдельный комп, невижу ничего плохого что бы в рамках самообразования и потестировать. Потом уже где-то в проде вполне может пригодиться пусть и с другой конфигурацией. Согласитесь что лучше тренироваться на «кошечках», чем как нередко делают так называемые «одмины» сразу на проде опыты ставят, а потом темы плодят «аааааа у меня все сломалось, помогите срочно»