URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 12409
[ Назад ]

Исходное сообщение
"маршрутизация для vpn"

Отправлено major1986 , 06-Янв-07 21:34 
Значит дело вот в чем!
Имеется ком клуб, в нем два основных сервера,(системы fedora5) на одном стоит билинг (192.168.17.10)(он является главным роутером клуба), второй(192.168.17.254)(в качестве шлюза инета. у 192.168.17.254 два интерфейса один смотрит в клинтскую часть(пользователи)
, второй интерфейс адмиские компы.(инет берем у провайдера тоже по vpn)

Подскажите пож. как написать правила iptables, чтобы когда и юзеры с клуба и админы с админских компов конектились к vpn (192.168.17.254) у них был инет!
билинг настроен и vpn тоже, просто при подключение к создается интерфейс, а инета нет!
задача заставить идти инет с ppp0 на ppp1-x

Помогиите пожалуйста с данной проблеммой! За ранее огромное спасибо!


Содержание

Сообщения в этом обсуждении
"маршрутизация для vpn"
Отправлено tashiki , 07-Янв-07 20:39 

>задача заставить идти инет с ppp0 на ppp1-x
>
>Помогиите пожалуйста с данной проблеммой! За ранее огромное спасибо!


Там скорее всег дело не в iptables.
При поднятии интерфейсов pppN соответствующие динамические переменный ядра, отвечающие за L2 forwarding, должны быть учтановлены в "1".

$ sysctl -a | grep forwarding
net.ipv4.conf.eth0.forwarding = 0
....

У тебя должно быть что-то типа net.ipv4.conf.ppp0.forwarding и net.ipv4.conf.ppp1.forwarding. Устанавливаешь их в "1":

$ sysctl -w net.ipv4.conf.ppp0.forwarding=1
$ sysctl -w net.ipv4.conf.ppp1.forwarding=1


"маршрутизация для vpn"
Отправлено major1986 , 08-Янв-07 01:20 
>
>$ sysctl -w net.ipv4.conf.ppp0.forwarding=1
>$ sysctl -w net.ipv4.conf.ppp1.forwarding=1


то есть мне надо включить форвард для ppp0, только не пойму зачем для ppp1 это ж уже клиенты, да к стати NAT настроен  на второй сервер и там локальный инет!

Завтра попробую и отпишусь!


"маршрутизация для vpn"
Отправлено tashiki , 08-Янв-07 04:19 
>>
>>$ sysctl -w net.ipv4.conf.ppp0.forwarding=1
>>$ sysctl -w net.ipv4.conf.ppp1.forwarding=1
>
>
>то есть мне надо включить форвард для ppp0, только не пойму зачем
>для ppp1 это ж уже клиенты, да к стати NAT настроен
> на второй сервер и там локальный инет!
>
>Завтра попробую и отпишусь!

net.ipv4.conf.<interface>.forwarding=1 разрешает форвардинг пакетов для интерфейса (с него и на него [in/out]). Чтобы разрешить передачу между любой парой интерфейсов - нужно установить forwarding в "1" для обоих (насколько я понял из поставленной тобой задачи). Если нет - опиши по-сути  нормально. Просто forwarding=1 - распространенный недочет в таких ситуациях.


"маршрутизация для vpn"
Отправлено major1986 , 08-Янв-07 15:54 
по интерфейсу ppp0 мы берем инет у провайдера, а интерфейсы ppp1, ppp2, ppp3, pppx это интерфейсы клиентов, вот и задача направить пакеты с ppp0 на ppp1, ppp2, ppp3, pppx и т д.

"маршрутизация для vpn"
Отправлено tashiki , 08-Янв-07 18:25 
>по интерфейсу ppp0 мы берем инет у провайдера, а интерфейсы ppp1, ppp2,
>ppp3, pppx это интерфейсы клиентов, вот и задача направить пакеты с
>ppp0 на ppp1, ppp2, ppp3, pppx и т д.

Задача "направить" - это задача процесса маршрутизации. Здесь можут быть много вариантов (вплоть до PBR с несколькими таблицами маршрутизации). Если ситуация тривиальна - тоесть ppp0 это default gateway у тебя, тогда все должно работать без всяких PBR. Но, опять таки, чтобы пакеты перебрасывались с ppp0 на ppp<N> (и наоборот :) ), то fowrarding должен быть установлен в "1" для каждого из участвующих интерфейсов.


"маршрутизация для vpn"
Отправлено major1986 , 08-Янв-07 20:50 
у меня стоит net.ipv4.ip_forward = 1

"маршрутизация для vpn"
Отправлено major1986 , 10-Янв-07 20:48 
Вот еще что заметил, когда конектится клиент создается интерфейс ppp1, и сразу на сервере пропадает инет, то есть нет пинга с инетовскими айпишниками, может в static-routes прописать, чтобы все адреса кроме локальных шли через ppp0 (192.168.41.15) ?

"маршрутизация для vpn"
Отправлено major1986 , 14-Янв-07 11:20 
Я так и не понял, почему новое подключение ppp1 валит ppp0

хотя в настройка ppp0 поставил defaultroute

кто сталкивался с данной проблеммой?


"маршрутизация для vpn"
Отправлено tashiki , 14-Янв-07 21:43 
>Я так и не понял, почему новое подключение ppp1 валит ppp0
>
>хотя в настройка ppp0 поставил defaultroute
>
>кто сталкивался с данной проблеммой?


#ip addr ls
и
#ip r ls
до и после поднятия ppp1 на сервере


"маршрутизация для vpn"
Отправлено major1986 , 15-Янв-07 12:26 
>>Я так и не понял, почему новое подключение ppp1 валит ppp0
>>
>>хотя в настройка ppp0 поставил defaultroute
>>
>>кто сталкивался с данной проблеммой?
>
>
>#ip addr ls

>#ip r ls
>до и после поднятия ppp1 на сервере

до поднятия

ip addr ls

...................

6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3
    link/ppp
    inet 192.168.11.14 peer 203.130.21.94/32 scope global ppp0

ip r ls
203.130.21.94 dev ppp0  proto kernel  scope link  src 192.168.11.14

...................

default via 203.130.21.94 dev ppp0


после подгятия ppp1

ip addr ls

........................

6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3
    link/ppp
    inet 192.168.11.14 peer 203.130.21.94/32 scope global ppp0
12: ppp1: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
    link/ppp
    inet 192.168.11.14 peer 172.16.18.1/32 scope global ppp1

ip r ls
172.16.18.1 dev ppp1  proto kernel  scope link  src 192.168.11.14
203.130.21.94 dev ppp0  proto kernel  scope link  src 192.168.11.14

............................

default via 203.130.21.94 dev ppp0


слегка поменялись айпи из начально были другие

ppp0(192.168.11.14) я его поставил в pptpd.conf "localip 192.168.11.14"
pppN 172.16.18.x

такой вопрос в конфиге pptpd.conf  в localip что указывать надо тот айпи что мне назначается в ppp0 или нет? или просто на писать любой из подсети 172.16.18.x , ну например 172.16.18.100


"маршрутизация для vpn"
Отправлено tashiki , 15-Янв-07 17:46 
>такой вопрос в конфиге pptpd.conf  в localip что указывать надо тот
>айпи что мне назначается в ppp0 или нет? или просто на
>писать любой из подсети 172.16.18.x , ну например 172.16.18.100

Типичная схема подключения клиентов: провайдер реализовывает VPN-концентратор (pptp сервер) - Вы к нему подключаетесь (тоесть ppp0 - это результат работы Вашего VPN-клиента - pptpclient). Далее, как я понимаю, Вы подымаете свой VPN-сервер (pptpd), куда терминируете своих "локальных" клиентов - в результате ppp<N> (N>0).

Для ppp0 (в настройках pptpclient) у Вас доджно быть:
ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
inet 203.130.21.93/32 peer 203.130.21.94/32
Где  203.130.21.93/32 - ip выданный Вам провайдером, 203.130.21.94/32 - ip интерфейса VPN-концентратора провайдера.

Далее..

Подымаете pptpd.
Допустим у Вас 9 клиентов:
localip 192.168.0.1
remoteip 192.168.0.2-10
Тогда inet адреса ppp<N> у Вас все будут 192.168.0.1, адреса пиров - 192.168.0.2...192.168.0.10.

В результате получится картина типа:
#ip addr ls
1: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
    link/ppp
    inet 203.130.21.94/32 peer 203.130.21.94/32 scope global ppp0
2: ppp1: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
    link/ppp
    inet 192.168.0.1 peer 192.168.0.2 scope global ppp1
3: ppp2: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
    link/ppp
    inet 192.168.0.1 peer 192.168.0.3 scope global ppp2

!!!MTU 1400!!!!

Теперь пакеты с  ppp<N> будут уходить на ppp0, но с srcIP = 192.168.0.2-10 - ответа естественно не будит.
Ну и конечно же NAT (точнее маcкарадинг) - "для пакетов, уходящих с ppp0 менять srcIP на IP ppp0".

Для виндовых клиентов там еще proxyarp...вобщем можно по букварю.

Сомневаюсь, что провайдер у вас pptp-client на ppp0 интерфейсе, isn't it?


"маршрутизация для vpn"
Отправлено major1986 , 15-Янв-07 22:03 

>Сомневаюсь, что провайдер у вас pptp-client на ppp0 интерфейсе, isn't it?

А провайдер у меня действительно ppp0


"маршрутизация для vpn"
Отправлено major1986 , 15-Янв-07 22:23 
>
>>Сомневаюсь, что провайдер у вас pptp-client на ppp0 интерфейсе, isn't it?
>
>А провайдер у меня действительно ppp0


вот после того как mtu 1400, вот такая картина


21: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
    link/ppp
    inet 62.221.44.93 peer 213.130.22.97/32 scope global ppp0

27: ppp1: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1400 qdisc pfifo_fast qlen 3
    link/ppp
    inet 172.16.18.254 peer 172.16.18.1/32 scope global ppp1

значит пишу в консоли например ping ya.ru идет пинг, как только конектится клиент(появляется ppp1) пинг пропадает, как только отключается пинг возобновляется, у клиента нет инета все равно!


"маршрутизация для vpn"
Отправлено major1986 , 23-Янв-07 10:21 
У меня есть вопрос !

Если я в static-routes пропишу

any net 0.0.0.0/0 gw x.x.x.x

будет ли весь инет идти через gw который мне выдает VPN ?
у VPN маска 255,255,255,255