4 April 2009

IPSec през БТК ADSL

"Вдигане" на site-to-site IPSec VPN през БТК ADSL услуга е общо казано - приключение. Това не означава, че е невъзможно, но е свързано с множество проби, тестове и загуба на време. Но тъй като всички случаи са частни е грешно да се слагат под общ знаменател. Разликите са от вида на модема, версията на фърмуера, рутера зад него, който ще прави VPN-а, адекватни настройки на MTU, NAT Traversal и не на последно място - задклавиатурното устройство, което ги конфигурира.
Ако VPN ви е нужен за корпоративни цели – означава, че бихте могли да си позволите по-качествен и по-евтин интернет от местния кабелар. Разбира се, БТК може да ви предложи гарантирана услуга, но тя не се казва ADSL и не струва толкова пари. Има и случаи, в които ADSL е единствената и/или най-бърза алтернатива по места и затова понякога е нужно да се съобразяваме с наличното.
Всички знаем, че трябва да избягваме double side NAT, т.е. по възможност една от страните да не е зад NAT. Ако не може да се спази това условие, особено при IPSec тунел през ADSL пренос, би ви коствало време и нерви, като резултата никога не е гарантиран!

Да играем ли по правилата?
БТК си „връзва” гащите с едноличния контрол върху ADSL модемите и това е по разбираеми причини - за добро или лошо. Но защо да не избегнем NAT „услугите” на ZXDSL 831. Този „advanced device” работи чудесно в bridge mode – не забива и не чупи сесии. Ефекта е, че модема вече не се интересува от сесиите - той само качва MAC фрейма върху AAL5 и става напълно прозрачен за L3 ( TCP/IP ).
При няколко VPN имплементации с ADSL пренос, проблемите с NAT и със забивите на устройствата съм решавал с bridge mode на наличния модем или с друг ADSL модем/рутер. На нашия пазар съм виждал налични 3Com и D-Link, като приблизителната цена за D-Link беше 90 лв. Друг тестван и работещ вариант е с PCI карта Sangoma S518 и Open Source решение – в случая – Vyatta върху x86 PC.

ZXDSL 831IIV4.0.0f_B09_BG1
Смятам, че не е редно да описвам паролата за достъп до модема. Всеки би се почувствал „некомфортно” ако открие в Интернет парола с упътване за „менажиране” на собствената ви страница или блог. Доста верни и неверни неща са изписани по форумите, но в крайна сметка информацията е налична и процедурата за бриджване е изпълнима. Работи надеждно в няколко мои имплементации, където VPN-а се посреща от Juniper SSG или Linux машина зад ADSL модема.
Тънкия момент е получаване на PPPoE username / password. Приемаме, че разполагаме с име и парола и сме достъпили web-a.

- отворете http://192.168.1.1/constatus.html
- разкачате PPPoE връзката – изписва се username и скрита парола
- разглеждаме сорса на страницата (чрез Ctrl+U за Firefox), където се съдържа търсеното.
Изглежда по следния начин:

pppUserName.value = '4jjhtsE7ENB2jUSD';
pppPassword.value = base64Decode('SsetGlF6R3RGRnRqenPuDO==');

Виждаме, че паролата е кодирана (не е задължително при различните модели и версии на фърмуери) и за да я получим в чист вид (както username) – използвам http://www.motobit.com/util/base64-decoder-encoder.asp
или всеки един онлайн base64-decoder-encoder.

Bridging

Protocol: Bridging
Encapsulation Type: LLC/SNAP
В този режим всички пакети получени от един интерфейс (като АТМ PVC) се предават към другия интерфейс (LAN в случая). Тук можем да укажем IP адрес на LAN интерфейса. По принцип не е нужно да бъде модифицирано.


NEXT >


APPLY > REBOOT
След като рестартирането е приключило – DIAG LED изгасва. Модемът е в бридж режим и конфигурираме PPPoE на устройството зад модема.

3Com WL-542 – ADSL Wireless G Router

Тук използвам 3Com WL542 не по-различно от бтк-модем – единствено с надеждата за по-качествен хардуер. Дали е ценово ефективно? – само ще спомена, че този модем беше изровен от кашон на мой приятел с ИТ „скъпоценности”. Имплементацията е направена от спортна тръпка за пускане на друг ADSL модем, различен от този на БТК.

По-долу виждате видове връзки предлагани от 3Com-a, а използвания от мен режим е PPPoE.



Имам си PPPoE username / password
VPI / VCI = 0 / 35
Encapsulation - LLC



Пускане в bridge mode (For a single PC) е елементарно и следва описаната по-горе идеология. Тогава зад въпросния 3Com-WL542, Juniper SSG5 прави PPPoE и съответно IPSec site-to-site тунел по стандартна конфигурация.

Ето и сета за PPPoE на SSG5:
set pppoe name “adsl”
set pppoe name “adsl” username “4jjhtsE7ENB2jUSD” password “XXXXXXXXX”
set pppoe name “adsl” idle 0
set pppoe name “adsl” interface ethernet0/0
set pppoe name “adsl” auto-connect 60

GUI изглед:


Резултата е налице, връзката е стабилна и зависи предимно от надеждността на PSTN свързаността.

Vyatta 5.0.2 + Sangoma S518 ADSL Data Only Card (Annex A)



Решение с PC x86, Vyatta 5.0.2 Community Edition и Sangoma ADSL card.
Интересна постановка, но след непрекъсваемите забиви дори на сменения от страна на БТК ADSL модем, клиента се принуди да търси друг вариант. Използваната до момента Vyatta 4 беше обновена до 5.0.2, а DSL картата беше закупена през eBay за 45 $ без шипинг (цена за нова карта е около 120-130$). Скъпо удоволствие на фона на "безплатен" БТК модем, но ако се търси надеждност на хардуер при единствена алтернатива - ADSL свързаност - това е едно от решенията.
Sangoma е един от основните спонсори на Vyatta и обещават, че вече има 100% подръжка на техния хардуер. Във версия 4.1.3 – bug tracker-a казва, че PVC AUTO – не винаги детектва правилно VPI/VCI, но с актуалната версия при мен – нещата тръгнаха от първия път. Картата се оказа, че не е „истинска” Sangoma, a е Globespan Semiconductor Inc. Pulsar, но това не беше проблем.

Първо проверяваме мнението на линукса за PCI шините:
lspci
00:08.0 Network controller: Globespan Semiconductor Inc. Pulsar [PCI ADSL Card] (rev 01)

Проверяваме кои kernel модули се зареждат. Wanpipe е важен, за да може Vyatta да открие ADSL картата:
wanec 326456
wanpipe_lip 103300
af_wanpipe 34496
wanpipe 435356
wanpipe_syncppp 27864
wanpipewanrouter 39528
wanec,wanpipe_lip,af_wanpipe,wanpipe,wanpipe_syncpppsdladrv 65152 2 wanpipe,wanrouter

Vyatta CLI – ADSL PPPoE set
set interfaces adsl adsl0 pvc auto pppoe 0 default-route auto
set interfaces adsl adsl0 pvc auto pppoe 0 user-id
set interfaces adsl adsl0 pvc auto pppoe 0 password
set interfaces adsl adsl0 pvc auto pppoe 0 firewall in name FROM-EXTERNAL
set interfaces adsl adsl0 pvc auto pppoe 0 firewall local name TO-ROUTER

1 comment:

  1. Когато превключа на сорс изглед на интернет експлорера ми не се вижда стойността на PPPoE паролата. Излиза само pppPassword='+encodeUrl(checkpassword). Бъркам ли някъде???

    ReplyDelete

Note: only a member of this blog may post a comment.