MiniHOWTO? : Jak vytvorit VPN mezi Czfree cloudy

Predpoklady

  • IP rozsah registrovany v Czfree RIPE
    • zajisti unikatni prideleni v ramci Czfree
  • Autonomni system registrovany v Czfree RIPE
  • Domenove jmeno neco.czf
  • Funkcni autoritativni nameservery
    • nejmene 1 primarni
    • sekundarni idealne v jinem Cloudu

Vyse uvedene si muzete zaregistrovat jak je popsano v RegistraceCzFreeCloudu.

Netechnicke, ale velmi dulezite pozadavky:

  • Cloud musi umoznit pristup na stanice uzivatelu pomoci Czfree adres
    • Cloud by nemel byt jeden velky NAT
    • Hlavni prinos Czfree je vzajemna komunikace uzivatelu, NAT ji zabranuje
  • Cloud by mel umoznit tranzit pres svou infrastrukturu do dalsich Czfree siti (pokud "za nim" nejake jsou)
    • Vyuziti fyzickych spoju mezi cloudy
    • Tranzitni kapacita je na dohode cloudu

Software

  • openvpn
  • quagga / BGP daemon

Co si musite domluvit s peeringovym partnerem

  • Jake IP adresy koncu VPN, na kterem portu bezi VPN
  • IP adresy p-t-p subnetu tunelovaneho spoje, vetsinou z IP rozsahu jednoho z cloudu
  • adresu vasich eBGP routeru, vetsinou to budou primo konce tunelu
  • symetricky klic pro autorizaci VPN spojeni

Konfigurace OpenVPN?

Pro jednoduchost uvadim konfiguraci s autorizaci symetrickym klicem (bez certifikatu), peer-to-peer. Dalsi moznost muze byt klient-server, zejmena pro pripad nejakeho VPN peeringoveho centra, autorizace certifikaty... [kdo ma zajem, prosim doplnte]

1. Vytvorit klic

openvpn --genkey --secret vpn.key
Klic bezpecnou cestou doructe protistrane. Obe strany VPN museji mit stejny klic

2. Vytvorit konfiguracni soubor pro openvpn

Ukazkovy soubor (udaje, ktere potrebujete menit jsou tucne):


# IP jsou v poradi: lokalni IP, vzdalene IP
# Jedna se o IP adresy "uvnitr" tunelu, IP adresy koncu tunelovaneho propojeni
ifconfig 10.102.223.11 10.102.223.12

# IP adresa vzdaleneho pocitace, kde konci tunel. S timto pocitacem
# se navaze spojeni, a na nem vznikne tunel
remote 82.150.165.1

# Mistni adresa, kde konci tunel; dulezite u pocitacu s vice IP
local 10.102.222.19

# Jmeno zarizeni tunelu
dev tun106

# Port, na kterem se komunikuje, pokud mozno ruzny od ostatnich tunelu :)
port 5016

float

# Jmeno souboru s autorizacnim klicem
secret data/slfreenet.key

# A keep-alive interval
ping 240


  • Cesta k souboru s klicem muze byt relativni (vzhledem ke konfiguracnimu souboru)
  • Nezapomente si domluvit s protistranou unikatni port smile

Debian:

  • Soubor pojmenujte /etc/openvpn/nazev-vpn.conf
  • VPNku muzete pak ovladat pomoci /etc/init.d/openvpn {start|stop|restart} nazev-vpn
  • bude se automagicky zapinat pri startu pocitace

QUESTION? pripise nekdo i dalsi distribuce ?

3. Nastartovat openvpn

  • overte, (ping) ze se da dostat na druhou stranu tunelovaneho spoje
  • podivejte se do syslogu, dost casto tam je neco zajimaveho

Konfigurace BGP

1. vytvotrit konfiguraci BGP daemona

  • na Debianu /etc/quagga/bgpd.conf

bgpd.conf, nutne zmeny jsou vyznacene tucne


! BACHA, komentare zacinaji '!', ne '#'
! Jmeno BGP routeru, nesouvisi s hostname smile ale doporucuji stejne jako hostname
hostname test

! Heslo pro pristup k terminalu
password nereknu

! Heslo pro runtime zmenu konfigurace
enable password nereknu

! Kam se ma logovat a jak dulezite zpravy. Pozor na prava k adresari/souboru,
! quagga bezi pod uid:gid quagga:quagga
log file /var/log/quagga/bgpd.log informational
log trap errors
log record-priority

! Pusti se terminal
service advanced-vty

service password-encryption
service terminal-length 23

!----------------------------------------------------------- ! Konfigurace BGP pro AS65102
router bgp 65102

! router-ID je 32bit cislo, zapisuje se jako IP
! Doporucuje se dat ID = nejake IP prirazene pocitaci, aby se
! zajistila unikatnost
bgp router-id 10.102.222.9

! obrana proti castym vypadkum v routovani; viz manual
bgp dampening

! nase sit, kterou budeme oznamovat do sveta
! prikazu 'network' muze byt i vice
network 10.102.0.0/16

! distance bgp 20 200 110

!-----------------------------------------------------------
! Definice peeringovych skupin; usnadni to pak spojeni
! s dalsimi BGP
!-----------------------------------------------------------

! EXTERNAL = peering s dalsimi cloudy Czfree.net
neighbor EXTERNAL peer-group
neighbor EXTERNAL description Exterier BGP

! dulezite: routerum uvnitr naseho AS bude tvrdit,
! ze do Cloudu se kterymi si BGP router vymenuje informace
! maji jit prave pres tento BGP router (prepise hodnotu next-hop
! ve smerovacim pravidle)
neighbor EXTERNAL next-hop-self

! filtr na rozsahy prijimane (in) a vysilane (out) z/do ostatnich cloudu
neighbor EXTERNAL prefix-list cloudtransin in
neighbor EXTERNAL prefix-list cloudtransout out

! INTERNAL = vymena iBGP s dalsimi BGP hranicnimi routeru
! naseho vlastniho AS
neighbor INTERNAL peer-group

! pro celou skupinu je remote-as stejne, stejna hodnota jako v router bgp
neighbor INTERNAL remote-as 65102
neighbor INTERNAL description Interier BGP

! filtr na interni vymenu
neighbor INTERNAL prefix-list internal in
neighbor INTERNAL prefix-list internal out

!-----------------------------------------------------------
! Vlastni peeringy, spadaji do skupiny EXTERNAL
!-----------------------------------------------------------
! MH2NET? , http://www.mh2net.org, BGP router 10.102.223.12
!-----------------------------------------------------------
neighbor 10.102.223.12 remote-as 65068
neighbor 10.102.223.12 peer-group EXTERNAL
neighbor 10.102.223.12 description mh2net

!-----------------------------------------------------------
! LABYRINT, Praha - Brevnov
!-----------------------------------------------------------
neighbor 10.254.11.21 remote-as 64801
neighbor 10.254.11.21 peer-group EXTERNAL
neighbor 10.254.11.21 description labyrint.ncx.czf

!-----------------------------------------------------------
! Filtr na pristup k VTY
! povoleny jen z localhosta, kvuli bezpecnosti
!-----------------------------------------------------------
access-list login remark Administrator access to zebra
access-list login permit 127.0.0.0/8
access-list login deny any

!-----------------------------------------------------------
! Filtrace CZfree prefixu (prijem)
!-----------------------------------------------------------
ip prefix-list cloudtransin description CZFree.NET inter-cloud filter IN
! povolit jakoukoliv sit 10.0.0.0/8, se sitovym prefixem

! nejmene 12 a *nejvice 17 (doporuceni, muzete odstranit)
ip prefix-list cloudtransin seq 10 permit 10.0.0.0/8 ge 12 le 17

! ostatni site zahazujeme
ip prefix-list cloudtransin seq 20 deny any

!-----------------------------------------------------------
! Filtrace CZfree prefixu uvnitr AS
!-----------------------------------------------------------
! Povolime vsechny czfree prefixy (rozumne delky)
ip prefix-list internal seq 10 permit 10.0.0.0/8 ge 12 le 17
! Jine (ne-CZF) zahodime
ip prefix-list internal seq 20 deny any

!-----------------------------------------------------------
! Filtrace CZfree prefixu (odesilani)
!-----------------------------------------------------------
ip prefix-list cloudtransout description CZFree.NET inter-cloud filter OUT
! Povolime vsechny czfree prefixy (rozumne delky)
ip prefix-list cloudtransout seq 10 permit 10.0.0.0/8 ge 12 le 17
! Jine (ne-CZF) zahodime
ip prefix-list cloudtransout seq 20 deny any

!-----------------------------------------------------------
! Zabezpeceni terminalu pomoci filtru
!-----------------------------------------------------------
line vty
access-class login
exec-timeout 60 0
!


2. Povolit BGPD, redistribuci do OSPF Na Debianu musite BGPD povolit v souboru /etc/quagga/daemons. Na radku bgpd napiste yes

Smerovani, ktera BGP daemon zjisti musi nejak dat na vedomi do zbytku vaseho cloudu. V /etc/quagga/ospfd.conf pripiste do sekce router ospf:


redistribute bgp metric 1000 metric-type 1 route-map czfree
a na konec pak definujte route mapu (kvuli filtraci prefixu):
access-list czfree permit 10.0.0.0/8
access-list czfree deny any

route-map czfree permit 10
match ip address czfree

3. restart cele quaggy /etc/init.d/quagga restart

-- SvataDedic - 07 Dec 2006

Topic revision: r6 - 2006-12-08 - 16:27:28 - SvataDedic
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback