[SOLVED] Раздача интернета, для клиентов впн соединений...

Здравствуйте..

Немного запутался.

на данный момент на объекте установлен компьютер с gentoo, компьютер для предоставление доступа в интернет, назовем его условно срв1. У компьютера две сетевые карты, к одной подключен адсл модем, к другой подключена локальная сеть - 192.168.150.0/24. На компьютере поднято 2 pppoe соединения для "гостевых ресурсов" и "все остальное". На компьютере с помощью iptables делаю форвардинг и маскарад таким образом:

# Enable nat for no guest pppoe connection
$iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Enable nat for guest pppoe connection
$iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE

# Enable forward for access to modem adsl
$iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
$iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# Enable forward for access to internet by no guest connection
$iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
$iptables -A FORWARD -i ppp0 -o eth1 -j ACCEPT
# Enable forward for access to internet by guest connection
$iptables -A FORWARD -i eth1 -o ppp1 -j ACCEPT
$iptables -A FORWARD -i ppp1 -o eth1 -j ACCEPT

(полная версия теперешнего набора правил - http://pastebin.org/336589)

И все работало... Дальше появилась новая задача.
Появился компьютер в датацентре, и еще один объект. На втором объекте сделал все, как и на первом.. И затем соединил два объекта при помощи openpn с сервером впн в датацентре (по гостевым ресурсам).

Вроде тоже все хорошо.. Вот только теперь еще одна задача..
Хотелось бы раздавать интернет на объекты используя сервер датацентра..

Для этого зашел в датацентре на компьютер и в иптаблес прописал след. правила:

INET_DEV="eth0"
INET_DEV2="eth1"
VPN_DEV="tap0"

$iptables -t nat -F

$iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE

$iptables -A FORWARD -i $INET_DEV -o $VPN_DEV -j ACCEPT
$iptables -A FORWARD -i $VPN_DEV -o $INET_DEV -j ACCEPT
#
$iptables -A FORWARD -i $INET_DEV2 -o $VPN_DEV -j ACCEPT
$iptables -A FORWARD -i $VPN_DEV -o $INET_DEV2 -j ACCEPT
#
$iptables -A FORWARD -i $INET_DEV2 -o $INET_DEV -j ACCEPT
$iptables -A FORWARD -i $INET_DEV -o $INET_DEV2 -j ACCEPT

полный файл - http://pastebin.org/336586

и на срв1 (то что упоминал выше) ставлю ип шлюза 10.10.0.1 (впн ип компьютера датацентра), не работает.

Подскажите пож-та, что может быть не так.. куда можно посмотреть.. такого маштаба сложные вопросы не решал :(

Спасибо.

.

customers3 написал(а):
и на срв1 (то что упоминал выше) ставлю ип шлюза 10.10.0.1 (впн ип компьютера датацентра), не работает.

А маршрут до компьютера датацентра статикой есть?
Покажите netstat -rn

спасибо за ответ,..

да, маршрут появляется после того, как я делаю
route add default gw 10.10.0.1

вот маршруты (не отобразил здесь маршруты, которые разруливают ресурсы по гостевому доступу):

192.168.150.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.151.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     10.10.0.2       255.255.255.0   UG    0      0        0 tap0
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tap0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.10.0.1       0.0.0.0         UG    0      0        0 tap0

,

у сервера в датацентре какой IP (с которым устанавливаешь vpn)?
Где до него маршрут?

...

У сервера в датацентре ип - 10.10.0.1
для впн маршрут получается:

10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tap0

ну и получается default gw ставлю тоже впн ип адрес сервера датацентра.
и вот маршрут:

0.0.0.0         10.10.0.1       0.0.0.0         UG    0      0        0 tap0

если я правильно Вас понимаю :(, за что прошу прощения

.

У сервера в датацентре должно быть 2 IP:
1. Тот куда конектиться openVPN
2. Тот который на концах vpn тоннеля.

Дак вот меня интересует первый.

теперь понял,..

опенвпн коннектиться к 86.57.246.6
до этого ип нету статических мартрутов.. :(
прописать на него маршрут, через впн?
типа
route add -host 86.57.246.6 gw 10.10.0.1
?

.

Забавно у вас получается:
для сети 10.10.0.0/24 маршрут через default
а потом default gateway есть 10.10.0.1.
Замкнутый круг :)
Потому и не работает. Надо, во-первых, присваивать концам тоннеля IP, во-вторых, маршрут до сервера в датацентре прописать статикой до поднятия vpn

у меня получается концы

у меня получается концы тунеля:
10.10.0.1 - ип конца впн тунеля со стороны датацентра
10.10.0.4 - ип конца впн тунеля со стороны удаленного объекта

> для сети 10.10.0.0/24 маршрут через default
> а потом default gateway есть 10.10.0.1.
> Замкнутый круг :)
да уж, видимо запутался.. т.к. большого опыта нет в решении такого рода вопросов.. стараюсь, а вот не выходит немног %*( поэтому извиняюсь, если где то туплю :(

хотелось бы уточнить.. гетвеем для компьютера срв1 (тот который на удаленном обьекте) должен быть vpn ип датацентра (10.10.0.1) или же статический ип серверва датацентра - 86.57.246.6) ?
как я понял, должен быть 86.57.246.6 .. ведь так?.. и если к нему обращаюсь, чтобы шло через впн, т.к. прописвается статический маршрут.. так?

Еще раз спасибо за терпеливость.

.

На удаленном объекте есть свой шлюз, условно 11.11.11.1.
Его и надо прописать в качестве гейта до 86.57.246.6:
route add 86.57.246.6 gw 11.11.11.1

И потом сможешь поменять дефолт на дальний конец впн тоннеля (10.10.0.1)

извините.

Извиняюсь что пропал, малой приболел немного, то не было на работе..
покопался немного дальше в теме..

пока не получилось достичь нужного результата..

попробовал счас упрастить немного ситуацию, и решить чуть меньшую задачу..
Итак:

допустим есть сервер в датацентре(дальше будем называть его СервДЦ).
eth0 86.57.246.6
tap0 10.10.0.1

есть комп в офисе1 ( дальше буду называть срв1)
eth0 192.168.151.2 <-> связь с адсл модемом
ppp1 1.2.112.248 <-> адсл соединение
tap0 10.10.0.4

на срв1 в офисе1 делаю.
в настройках ppp0 сервера
route add 86.57.246.68 dev ppp0
в ком. строке прописываю
route add default gw 10.10.0.1

на СервДЦ в iptables прописываю:
$iptables -t nat -A POSTROUTING -s 10.10.0.4 -j SNAT --to-source 86.57.246.6
$iptables -A FORWARD -i eth0 -o tap0 -j ACCEPT
$iptables -A FORWARD -i tap0 -o eth0 -j ACCEPT

Вроде все должно работать?? а не работает :(

на срв1 начинаю пинговать ип внешний, на СервДЦ делаю tcpdump -i tap0,пакеты от 10.10.0.4 приходят.. а если делать tcpdump -i eth0 там пакетов нет (хотя может в этом случае и не должно быть)..

спасибо

получилось, всем

получилось, всем спасибо..
пока анализирую в чем было дело..
остался неб. вопрос, как задать чтобы при подключении к впну менялся getway на по умолчанию..

и это сделал, на сервере для

и это сделал, на сервере для клиента прописал правило:
push "route 0.0.0.0 0.0.0.0 10.10.0.1"

всем спасибо, тему закрываю.

p.s. не работало, т.к. была строчка в iptables на сервере маскарад для впн интерфейса.. я ее ставил сначала, когда делал попыкти.. а потом забыл закомментарить..

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".