[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 (впн ип компьютера датацентра), не работает.
Подскажите пож-та, что может быть не так.. куда можно посмотреть.. такого маштаба сложные вопросы не решал :(
Спасибо.
- Для комментирования войдите или зарегистрируйтесь
.
А маршрут до компьютера датацентра статикой есть?
Покажите
netstat -rn
спасибо за ответ,..
да, маршрут появляется после того, как я делаю
route add default gw 10.10.0.1
вот маршруты (не отобразил здесь маршруты, которые разруливают ресурсы по гостевому доступу):
,
у сервера в датацентре какой IP (с которым устанавливаешь vpn)?
Где до него маршрут?
...
У сервера в датацентре ип - 10.10.0.1
для впн маршрут получается:
ну и получается default gw ставлю тоже впн ип адрес сервера датацентра.
и вот маршрут:
если я правильно Вас понимаю :(, за что прошу прощения
.
У сервера в датацентре должно быть 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 на сервере маскарад для впн интерфейса.. я ее ставил сначала, когда делал попыкти.. а потом забыл закомментарить..