7. iproute2 ile linux’da Gre Tunnel

26 March, 2009 (01:58) | iproute2 | By: alper

Gre Nedir ? :

Generic Routing Encapsulation (GRE) Cisco tarafından geliştirilen bir tunneling protokoldür, multiple protcols ve multiplexing destekler. GRE tunnel tamamen statless olarak dizayn edilmiştir. yani site lar karşı tarafın ulaşılabilir olup olmadığı hakkında hiç bir bilgi tutmaz.

Tunneling protokolleri ne için kullanırız ?

örnek bir network çizelim :

Şekil1

Yukarıdaki örnekdeki gibi bir yapıya sahipsek, ve 2 site ( bölge ) içerisinde bulunan istemci veya server’ların birbirlerine ulaşması gerekiyorsa, söz konusu erişimin diğer internet kullanıcıları tarafından ulaşılamaması gerekiyorsa;  Tunneling protokollerini kullanırız.

Linux altında Gre tunneling yapmak için şu şekilde bir sıralama yapmalıyız :

1. Kernel Desteğini sağlamak,

2. Tunnel device ini oluşturmak ( /dev/eth0 gibi )

3. Tunnel device a ip adresi atamak

4. routing tanımlamalarını yapmak.

Şİmdi site2 için örnek bir gre yapılandırması yapalım :

1. Kernel de ip_gre module olarak derlendiyse modulümüzü yükleyelim.

modprobe ip_gre

2. Tunnel device oluşturalım.

ip tunnel add netb mode gre remote 195.174.6.140 local 85.8.5.43 ttl 255

iproute2 ye yeni tunnel ekle çalışma modu gre olsun device ismi netb olsun, bağlanacak olduğun karşı tarafın internet ip adresi 195.174.6.140 dır. bizim internet  ip adresimiz ise 85.8.5.43 dir ulaşmak için  ttl ( time to live ) ise 255 dir diye tanımladık.

3. tunnel device imiza ip adresimizi verelim

ip address add dev netb 192.168.2.12 peer 10.70.20.80

4. netb device ini up yapalım;

ip link set netb up

5. routing imizi tanımlayalım

ip addr add 192.168.2.12/24 dev netb

ip route add 10.70.20.0/24 dev netb

Burada dikkatinizi çekmek istediğim nokta, netb device i için routing bilgilerini girdik ama localden ulaşacak istemciler için ayrıca nat yapılandırması yapmanız gerekiyor. bu ayarlar sadece router’in kendisinin ulaşması içindir. netb device inin ip ve routing yapılandırmaları için diğer dökümanlarıma başvurabilirsiniz.

Aynı ayarları ip adreslerini düzenleyerek karşı tarafada yapınız. Karşı tarafda linux olmaması ihtmaline karşı ( ve elimde karşı tarafa koyacak linux olmamasından dolayı ) örneklemeyi linux ile yapmayacağım.

1. FreeBSD GRE ile Sİte1 i yapılandırmak :

[root@gariban ~]# kldload ip_gre

[root@gariban ~]# ifconfig gre0 create

[root@gariban ~]#  ifconfig gre0 tunnel  195.174.6.140  85.8.5.43

[root@gariban ~]# ifconfig gre0 inet 10.70.20.80 192.168.2.12

[root@gariban ~]#  ifconfig gre0 up

[root@gariban ~]# ping -c 1 192.168.2.12
PING 192.168.2.12 (192.168.2.12): 56 data bytes
64 bytes from 192.168.2.12: icmp_seq=0 ttl=64 time=116.005 ms

— 192.168.2.12 ping statistics —
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 116.005/116.005/116.005/0.000 ms
[root@gariban ~]#

Comments

Comment from Ali Korkmaz
Time 04/19/2009 at 3:20 am

Selam,
Herhangibir sifreleme metodu uygulanmayan bu tunel de ne gibi guvenlik aciklari olabilir acaba.

Comment from alper
Time 04/19/2009 at 4:45 am

Daha çok tunnel içerisinden giden bilgiye ve routing path’ine bağlıdır. şifresiz olarak gönderilen bilgiler herzaman sniflenerek okunabilir veya işlenebilir.

Write a comment