GRE tunnel

Allikas: Kuutõrvaja

Sissejuhatus

Tunnel on niisugune tehnika, mis võimaldab füüsiliselt üksteisest eemal paiknevaid kohtvõrke kokku ühendada. Tunneleid on väga erinevad, tundub, et GRE on üks standardsemaid kusjuures andmeid ei krüptita. Näiteks saab ühendada kaks privaat aadressidega võrku selliselt, et nende kasutajatele sh programmidele jääb mulje, et nad on füüsiliselt kõrvuti

      ___                                        ___      ___
     |   |                                      |   | .. |   |
     |___|                                      |___|    |___|
       |                                          |        |
       |                                          |        |
  |----|-----------|--- 192.168.1.0/24 -----------|--------|---|
                   |
   192.168.1.1 i1 _|_
                 |   |  ruuter R1
                 |___| . tun 10.0.0.1
   193.40.25.4 i2  |      . 
                   |         .
                   |            . tunnel
                 (                  .
            .. --    ..    )            .
          (                          )   .
        (    Internet                   .
         (                      )     .
                             )      .
             (            )       .
              ..               .
                   |       .
 193.40.10.130 i2 _|_  . tun  10.0.0.2
                 |   |  ruuter R2
                 |___|
   192.168.2.1 i1  | 
                   |
                   |
  |----|-----------|----- 192.168.2.0/24 ------|--------|---------|
       |                                       |        |
      _|_                                     _|_      _|_
     |   |                                   |   | .. |   |
     |___|                                   |___|    |___| 


Töötava tunneli puhul on kummaski ruuteris lisaks füüsilistele võrguseadmetele ka virtuaalne võrguseade, skeemil tähitab seda 'tun'. Tunnel on sellise omadusega, et ühest otsast sisenenud IP paketid väljuvad teises otsas. Tunnelile vasaval virtuaalsel võrguseadmel on IP aadress ning ruutingutabelis on sellega seostatud tavaliselt selline ruuting, mis nö viib paketid üle teise võrku. Kuna tunneli otste IP aadresse ei ole 'näha' väljaspool ruutereid, siis reeglina omistatakse tunneli otstele privaat aadresse.

Tunneli loomine linuxil

Kui ruuteritena on kasutada Linuxi masinad ja eeldusel, et võrk muidu töötab, siis konfigureerivad ruuteri R1 tunneli otsa järgmised käsud. Kasutame selleks programmi ip

bash# ip tunnel add tun mode gre remote 193.40.13.130 local 193.40.25.4 ttl 255
bash# ip addr add local 10.0.0.1 peer 10.0.0.2 dev tun
bash# ip link set tun up
bash# ip route add 192.168.2.0/24 dev tun

Sarnased korraldused tuleb anda teises ruuteris vahetades muidugi ära remote ja local aadressid.

Veenudmaks, et tunnel toimib peab saama ühest ruuterist pingida teist ruuterit kasutades selleks teise ruuteri tunneli seadmele vastavat IP aadressi.

Läbi tunneli liikuvatele pakettidele vastavad Internetis spetsiaalse formaadiga IP paketid. Nende päises on protokolliks märgitud, et tegu on gre kapseldatud pakettidega. Tunnel toimib, kui seesuguste pakettide liikumist lubavad kõik kahe ruuteri vahel olevad muud võrguseadmed.

FreeBSD

Kõik, ka käsud on üsnagi sarnased.

Esimesel ruuteril R1 anname käsud

ifconfig gif0 create
ifconfig gif0 tunnel 193.40.13.130 193.40.25.4
ifconfig gif0 inet 10.0.0.1 10.0.0.2 netmask 0xffffffff

ja teisel R2 masinal samad reeglid vaid ip aadresside järjekord vahetatud.

Selleks ,et saaksime pingida mitte ainult tunneli kokkupuutepunkte vaid pääseda ligi võrgule tunnelite taga tuleb anda käsk

route add 192.168.2.0/24

Ja samamoodit käsk ka teises masinas.

Tunneleid saab ka bootimisel automaatselt seadistada. Selleks tuleb seadistada /etc kaustas olevat faili rc.conf järgnevalt

gif_interfaces="gif0"
gifconfig_gif0="193.40.13.130 193.40.25.4"
ifconfig_gif0="inet 10.0.0.1 10.0.0.2 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0/24 netmask 0xffffff00"

Täiendav oluline

Lisaks tuleb tähele panna, et kui ruuterid R1 ja R2 toimivad ka tulemüüridena, siis peavad sealt gre kapseldusega IP paketid läbi saama. Käesoleva skeemi puhul maskeeri ruuterid alamvõrke ning tunneli kasutamine seisneb selles, et ühe võrgu tööjaamast saab otse ligi näiteks teise võrgu serverile, kuigi vahel on Internet ning mõlemas võrgus kasutatakse privaat aadresse.