На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
Модератор: SLEDopit
На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
Заранее прошу прощения за кривую формулировку.
Есть такая интересная задачка: есть определённый сервер в интернете (назовем 'inet-server') до которого можно достучаться только с определенных IP, один из этих IP есть на одном моем сервере (назовем мой сервер 'myserver') на этом моем сервере ('myserver') у одного сетевого интерфейса есть несколько IP адресов, у одного из которых и есть доступ на тот сервер ('inet-server'). Чтобы иметь доступ до 'inet-server' из дома я поднял OpenVPN на 'myserver' но т.к. на 'myserver' несколько IP адресов на сетевом интерфейсе (алиасы, скажем 1.1.1.1 основной и 1.1.1.2 алиас), запросы до 'inet-server' идут с основного IP адреса '1.1.1.1' у которого нет к нему доступа. Нужно сделать так чтобы запросы к 'inet-server' шли с 1.1.1.2 Как это сделать? я думаю это както должно решаться с помощью iptables.
Есть такая интересная задачка: есть определённый сервер в интернете (назовем 'inet-server') до которого можно достучаться только с определенных IP, один из этих IP есть на одном моем сервере (назовем мой сервер 'myserver') на этом моем сервере ('myserver') у одного сетевого интерфейса есть несколько IP адресов, у одного из которых и есть доступ на тот сервер ('inet-server'). Чтобы иметь доступ до 'inet-server' из дома я поднял OpenVPN на 'myserver' но т.к. на 'myserver' несколько IP адресов на сетевом интерфейсе (алиасы, скажем 1.1.1.1 основной и 1.1.1.2 алиас), запросы до 'inet-server' идут с основного IP адреса '1.1.1.1' у которого нет к нему доступа. Нужно сделать так чтобы запросы к 'inet-server' шли с 1.1.1.2 Как это сделать? я думаю это както должно решаться с помощью iptables.
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
всё гораздо проще:
$ sudo ip r a <ip inet-server-а> dev <интерфейс> src 1.1.1.2
*в сторону
«алиасы». когда же люди, наконец, забудут этот термин? нету в сетевой подсистеме ядра linux alias-ов, нету. это пережиток прошлого века.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
Что то я и не подумал про это, спасибо, а если немного изменить задачу, допустим клиенту через OpenVPN (тоесть мне на домашний компьютер) выдавался определённый IP 192.168.250.2 и при этом нужно сделать так чтобы при обращении к любому серверу в интернете (через openvpn тунель) запросы шли с второго IP сервера 'myserver' 1.1.1.2. Повторюсь на 'myserver' на сетевом интерфейсе eth0 несколько IP адресов. Это можно реализовать?
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
NeverM писал(а): ↑27.04.2010 23:56Что то я и не подумал про это, спасибо, а если немного изменить задачу, допустим клиенту через OpenVPN (тоесть мне на домашний компьютер) выдавался определённый IP 192.168.250.2 и при этом нужно сделать так чтобы при обращении к любому серверу в интернете (через openvpn тунель) запросы шли с второго IP сервера 'myserver' 1.1.1.2. Повторюсь на 'myserver' на сетевом интерфейсе eth0 несколько IP адресов. Это можно реализовать?
Также, как и с одним адресом -- прописать SNAT.
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
чуть расширю ответ, данный уважаемым KiWi:
upd. а пофантазировав, можно и такой вариант выдумать:
предположим, что адрес 1.1.1.2 нужен вам лишь для похождений этого самого openvpn-клиента. а в остальное время не нужен совсем.
насколько я понимаю ( http://xgu.ru/wiki/OpenVPN_Proxy_ARP ) в openvpn можно использовать ppp-шный механизм proxyarp.
следовательно, вы выдаёте клиенту внутри туннеля тот самый адрес 1.1.1.2, и он начинает «светиться» на внешнем ethernet-интерфейсе сервера. причём только в тот период, когда openvpn-туннель поднят.
в этом случае и подмена source address-а не нужна.
ну вам же в любом случае надо будет подменять source address, правильно? вот и подменяйте его на тот, который нужно.
upd. а пофантазировав, можно и такой вариант выдумать:
предположим, что адрес 1.1.1.2 нужен вам лишь для похождений этого самого openvpn-клиента. а в остальное время не нужен совсем.
насколько я понимаю ( http://xgu.ru/wiki/OpenVPN_Proxy_ARP ) в openvpn можно использовать ppp-шный механизм proxyarp.
следовательно, вы выдаёте клиенту внутри туннеля тот самый адрес 1.1.1.2, и он начинает «светиться» на внешнем ethernet-интерфейсе сервера. причём только в тот период, когда openvpn-туннель поднят.
в этом случае и подмена source address-а не нужна.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
NeverM писал(а): ↑27.04.2010 23:35Заранее прошу прощения за кривую формулировку.
Есть такая интересная задачка: есть определённый сервер в интернете (назовем 'inet-server') до которого можно достучаться только с определенных IP, один из этих IP есть на одном моем сервере (назовем мой сервер 'myserver') на этом моем сервере ('myserver') у одного сетевого интерфейса есть несколько IP адресов, у одного из которых и есть доступ на тот сервер ('inet-server'). Чтобы иметь доступ до 'inet-server' из дома я поднял OpenVPN на 'myserver' но т.к. на 'myserver' несколько IP адресов на сетевом интерфейсе (алиасы, скажем 1.1.1.1 основной и 1.1.1.2 алиас), запросы до 'inet-server' идут с основного IP адреса '1.1.1.1' у которого нет к нему доступа. Нужно сделать так чтобы запросы к 'inet-server' шли с 1.1.1.2 Как это сделать? я думаю это както должно решаться с помощью iptables.
Была похожая проблема, сделал так: route add IP(inrt server) netmask (его маска) dev нужный интерфейс или gw шлюз, но лучше man route там есть примеры.
Поправите меня, если я не прав, буду тока рад.
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
«алиасы». когда же люди, наконец, забудут этот термин? нету в сетевой подсистеме ядра linux alias-ов, нету. это пережиток прошлого века.
а как это называть теперь, в новом веке?
Losing is fun!
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
как и во все времена: ip-адрес.
p.s. ради того, чтоб ifconfig хоть как-то смог показать адреса, закреплённые за интерфейсом, каждому адресу можно опционально выдать label. man ip.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
ifconfig eth0:0 192.168.77.10 - не алиас?
Losing is fun!
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
ну какбэ старые костыли местами удобнее новых...
почему не надо, кстате? до сих пор не могу понять.
почему не надо, кстате? до сих пор не могу понять.
Losing is fun!
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
Видать что более гибко и информативнее работает, так?
Поправите меня, если я не прав, буду тока рад.
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
в ядре (которое linux) версии 2.0, вышедшей ещё в конце прошлого века, была кардинально переписана сетевая подсистема.
замене подвергся и интерфейс управления сетевой подсистемой. старый (bsd-шный, видимо, но не суть) интерфейс был заменен на новый, cisco-like интерфейс.
ifconfig, route, arp (и, наверно, ещё какие-нибудь подобные программы) превратились просто в приблизительно-двусторонние ретрансляторы «старый-новый интерфейс».
полного соответствия, естественно, получить невозможно. в частности, из-за функциональной бедности старой реализации (и бедности соответствующего ей интерфейса).
очень образно говоря, в космический корабль в уголочке поставили для удобства автомобилистов руль, педали сцепления, тормоза и газа, рычаг коробки передач, переключатели поворотов и т.д.
и это даже как-то позволяет слегка «рулить» космическим кораблём.
давайте уж будем шагать в ногу со временем. раз автомобиль внезапно стал ракетой, неплохо бы наконец и поменять привычки.
кстати, весьма забавно, что сейчас достаточно трудно найти линуксоида, работавшего ещё с ядрами 1.x, а вот старые (непонятно чьи) привычки — доминируют.
отчасти виноваты и дистрибьюторы, которые много лет даже не включали пакет iproute (с юзерспейсными программами, реализующими новый интерфейс) в базовую инсталляцию. вероятно, какие-то причины для этого были (надеюсь, достаточно разумные), но кто их сейчас вспомнит…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
ну да. Вот я и о том как раз: когда _удобнее_и_проще_и_вполне_достаточно_ рулить педалями и сцеплением на корабле через бескрайние просторы галактики в спирали - отчего бы этого не делать? о тех же алиасах: да, можно навесить через ip a a блабла еще один адрес. Но лично мне (и не только) eth0:0 роднее и ближе, плюс то, что такой псевдоинтерфейс без проблем везде (из встречавшихся дитров) добавляется штатными скриптами, в отличие от (?? хотя тут не берусь точно утверждать, но вроде как так).
Losing is fun!
- Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
удобнее и проще - это необъективная оценка. ею аргументировать нельзя.
в остальном поддержу arkhnchul.
sash-kan, ты перебарщиваешь с советованием ip, каждый линуксойд в праве пользоваться теми утилями, которыми он хочет ;-)
я, кстати, сам юзаю ifconfig & route, хотя понимаю всю пользу ip, просто переучиться трудно.
знаю людей, которые пользуются lilo, например. и apt-get :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
arkhnchul
Ленивая Бестолоч...
ну, что можно сказать в ответ на упоминание святого и неприкосновенного субъективного удобства? (улыбка)
разве что: добро пожаловать в реальный мир. на самом деле он не так уж страшен и ужасен. (улыбка)
Ленивая Бестолоч...
ну, что можно сказать в ответ на упоминание святого и неприкосновенного субъективного удобства? (улыбка)
разве что: добро пожаловать в реальный мир. на самом деле он не так уж страшен и ужасен. (улыбка)
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
Ленивая Бестолочь писал(а): ↑28.04.2010 23:41знаю людей, которые пользуются lilo, например. и apt-get
Я-я-я! У меня apt-get. И пакеты debuild'ом собираю, да-да.
Здесь аналогично с IPv6 -- куча всего должна переделываться.
Но IPv6 быть и это факт.
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
возможно.
но я лично не вижу другого пути разорвать замкнутый круг, нежели время от времени напоминать новичкам, что… ну, не буду повторяться, вы все в курсе (улыбка).
если вдруг кто-то знает лучший метод разрыва, подскажите, с радостью выслушаю и приму на вооружение.
p.s. сразу предупреждаю: варианту «забей», при всей его привлекательности для моей ленивой натуры, увы, последовать не могу…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
во-первых, это не псевдоинтерфейс. интерфейсы и ip-адреса — это совершенно разные сущности. даже с приставкой «псевдо-» говорить об ip-адресе, как об интерфейсе, imho, некорректно.
во-вторых, а что это за «штатные скрипты» и в каком дистрибутиве они ещё сохранились?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
во-первых, это не псевдоинтерфейс. интерфейсы и ip-адреса — это совершенно разные сущности. даже с приставкой «псевдо-» говорить об ip-адресе, как об интерфейсе, imho, некорректно.
ifconfig и ip кажут eth0:0 как отдельный интерфейс. В конфигах, где упоминается интерфейс, а не адрес, его можно вбить и работать так. iptables вроде как тоже правила с ним вполне воспринимает. Отчего же название некорректно, если оно внешне - интерфейс, пусть и не физический?
во-вторых, а что это за «штатные скрипты» и в каком дистрибутиве они ещё сохранились?
в редхатообразных, например, те, что парсят разные ifcfg-eth0. Вполне можно просто создать еще один конфиг ifcfg-eth0:0 со стандартным собержимым, оно подцепится и будет создаваться само. Как таким образом навесить второй адрес на интерфейс - не знаю.
Losing is fun!
Re: На компьютере несколько IP, нужно посылать пакеты с определенного IP через OpenVPN
да ну?
Код: Выделить всё
ip a sh blabla1
3: blabla1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:04:79:67:b4:93 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.1/24 brd 10.10.10.255 scope global blabla1
inet 192.168.1.11/24 scope global blabla1:2
inet 192.168.0.2/30 scope global blabla1:3
inet 172.16.22.22/24 scope global blabla1
inet 172.16.22.23/24 scope global secondary blabla1:10
нет:
Код: Выделить всё
$ sudo iptables -A INPUT -i blabla1:10 -j DROP
Warning: weird character in interface `blabla1:10' (No aliases, :, ! or *).
ну, в бытовом плане можно ip-адреса вообще как угодно называть (улыбка)
вот-вот. это ещё один из элементов того самого замкнутого круга.
можно, конечно, добавить обработку переменных IPADDRn/NETMASKn, но это потребует, в частности, внесения изменений в те же редхатовские курсы. а это огромнейшие расходы, редхату совсем не нужные. это так, к слову.
кстати, ещё к слову:
Код: Выделить всё
$ grep -r ifconfig /etc/sysconfig/network-scripts/if{up,down}-eth | wc -l
0
$ grep -r 'ip ' /etc/sysconfig/network-scripts/if{up,down}-eth | wc -l
22
$ lsb_release -a
LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
NeverM
ваш вопрос про openvpn & proxyarp я выделил в отдельную тему: openvpn proxyarp
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог