14 Mart 2012

Ubuntu ile trunk port üzerinden çoklu vlan erişimi

Posted by: Fırat Celal Erdik 14 Mart 2012

Gündelik ve iş hayatımızda neredeyse her işimiz için başvurduğumuz linux dağıtımlarını hep sanalda çalıştırmakla onlara büyük haksızlık yaptığımızı uzun zamandır düşünüyordum.Bu hafta nihayet birincil işletim sistemi olarak Ubuntu kurdum, windows için ise virtualbox üzerinde güzel bir yer parselledim:)
Ubuntuya geçer geçmez sıcak sıcak ilk makalemi de linux sistemler üzerinden trunk port işlemlerine ayırdım.

İç networklere yönelik yapılacak sızma teslerinde birden fazla VLAN olan network yapıları ile karşılaşılabilir.Bu durumda her VLAN'a dahil olabilmek için teker teker işlem (veya izin istenmesi) yapılması yerine,ilgili network yöneticisinden switch üzerinde bir portun trunk tanımlanması ve ilgili tüm vlanların bu trunk porta ataması istenilebilir.Bundan sonra yapmanız gereken kendi local sistemimizin ethernet interface üzerinde bir kaç işlem ile aynı encapsulation(802.1q) kullanılarak ilgili vlanlara erişmek olacak.Aslında bir nevi linux tarafında da ethernet portu trunk moda alınmış olunuyor.Bu yöntem iç networkünüze tarayıcı sunucu kurmak isterseniz de ihtiyaç duyabileceğiniz bir yöntem.Linux sistem üzerinde(Ubuntu 10.04 LTS) yapılması gereken işlemlerler sırası ile şu şekilde.

Öncelikle sistemimizin üzerindeki donanımın vlan atayıp trunk işlemi yapmamıza elverişli özelliğe sahip olması gerekir.Gigabit ethernetlerde genelde bu destek vardır.Donanımızın özelliklerini görmek için:
root@pamuksekeri-pc:~# lshw -c network
*-network
       description: Ethernet interface
       product: NetLink BCM5787M Gigabit Ethernet PCI Express
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:85:00.0
       logical name: eth0
       version: 02
       serial: 18:a9:05:96:df:43
       size: 1GB/s
       capacity: 1GB/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm vpd msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.102 duplex=full firmware=sb v2.13 latency=0 link=yes multicast=yes port=twisted pair speed=1GB/s
       resources: irq:31 memory:d0600000-d060ffff

Şimdi, vconfig aracı ile vlan oluşturup ilgili vlan ID'lerini atayabilmemiz için vlan tool'unu kurmamız gerekecek veya Ip  komutu ile de aynı işlemler yapılabilir.Ben kullanımının daha basit olması sebebi ile vconfig tool'unu tercih ediyorum.Debian tabanlı sistemlerde repositoryden program kurmak için apt-get veya aptitude komutları kullanılabilir.
root@pamuksekeri-pc:~# apt-get install vlan
Reading package lists... Done
Building dependency tree    
Reading state information... Done
The following NEW packages will be installed:

Daha sonra eth0 interface'miz altında vlan ID(234) değerini verip bir VLAN tanımlıyoruz. Sistem oluşturduğumuz VLAN'a isim olarak eth0.234 verecektir.

root@pamuksekeri-pc:~# vconfig add eth0 234
Added VLAN with VID == 234 to IF -:eth0:-

Yukarıda tanımladığımız VLAN'ı silmek için add yerine rem parametresi verilebilir(vconfig rem eth0.234).

Şimdi oluşturduğumu VLAN'dan bir IP adresini interfacemize verelim:
root@pamuksekeri-pc:~# ifconfig eth0.234 10.34.12.197/24 up

10.34.12.0/24 subnetine giderken kullancağı gateway 10.34.12.1 olacak şekilde route girelim:
root@pamuksekeri-pc:~# route add -net 10.34.12.0/24 gw 10.34.12.1 eth0.234

Sistem üzerindeki route'ları görelim:
root@pamuksekeri-pc:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.34.12.0     10.34.12.1     255.255.255.0   UG        0 0          0 eth0.234

Girdiğimiz route sistemin route tablosuna eklenmiş.Switch tarafında port trunk yapılırken 802.1q encapsulation kullanılmalıdır.Çünkü linux tarafında default bu şekilde belirleniyor.Sisteminizde 802.1q encapsulation kullanıldığını şu şekilde görebilirsiniz:

root@pamuksekeri-pc:~# lshw -c network | grep 802.1Q
configuration: autonegotiation=on broadcast=yes driver=802.1Q VLAN Support driverversion=1.8 duplex=full firmware=N/A ip=10.34.12.197 link=yes multicast=yes port=twisted pair speed=1GB/s

Şimdi ilgili vlana erişip erişemediğimizi test için; nmap ile bir ping scan(-sP) yapıp ayaktaki sunucuları bulmaya çalışalım
root@pamuksekeri-pc:~# nmap -sP 10.34.12.0/24 -n | grep Host | cut -d " " -f2
10.34.12.1
10.34.12.2
10.34.12.3
10.34.12.5
10.34.12.6
10.34.12.7
10.34.12.8
10.34.12.9
10.34.12.10
10.34.12.11
10.34.12.12
10.34.12.13
10.34.12.14
10.34.12.15
10.34.12.17
10.34.12.18
10.34.12.19

Görüldüğü gibi ilgili VLAN'a erişebiliyoruz.Bu işlemi switch tarafında atanan tüm VLAN'lar için yapmak gerekecektir.Ilgili ayarların kalıcı olması için /etc/network/interfaces altına manuel olarakta giriş yapılabilir.
İşlemler için vlan aracını kurma şansımız yoksa sanal interface oluşturma ve vlan ID atama işlemleri Ip komutuyla da yapılabilir.

Ip komutu ile bir sanal interface oluşturup vlan ID atamak için:
root@pamuksekeri-pc:~# ip link add link eth0 name vlan45 type vlan id 45

Silmek için:
root@pamuksekeri-pc:~#ip link delete vlan11

Bundan sonra Ip adresi ve gateway verme işlemini yukarıda yaptığımız gibi ifconfig ile yapabilirsiniz.



4 yorum:

  1. Hi all, here every person is sharing these knowledge, thus it's pleasant to read this web site, and I used to visit this webpage daily.
    My blog professional cloud hosting

    YanıtlaSil
  2. bununla mesela ayni ag uzerinde ben wlan0 ken eth0 la baglanan pc leri gorebiliyor muyuz/ burda yapilanlar bize tm olarak ne kazandiracak tam olarak anlamadim

    YanıtlaSil
  3. vlan yapısı kullanılan networklerde switch üzerinde bir port trunk olarak tanımlanıp erişeceğiniz vlan id'ler bu porta atansa da eğer sizin tarafta portunuz trunk ayarlanmazsa erişim problemi yaşarsınız.burda anlatmak istedigim linux tarafında trunk port mantığıyla nasıl çalışılabileceği ve sağlayadığı kolaylıklar.vlan yapısı ve trunk port üzerine biraz araştırma yapmanızı tavsiye ederim.

    YanıtlaSil

Her türlü eleştiri,yorum,ekleme ve düzeltmeye yönelik fikirlerinizi paylaşabilirsiniz.Hakaret içeren yorumlar filtrelenmektedir.

Makalelerin kötüye kullanım kullanıcının sorumluluğundadır. | networkpentest.net. Blogger tarafından desteklenmektedir.