Linux VirtualBox Network Bridge

Linux Yazıları07/07/2009


Virtualbox aracılığıyla bir sistem kurdunuz. Birşey yapmanıza gerek kalmadan kurulan sistemin ana makinedeki networku(aynı ip üzerinden) görebilmesi gerekmekte. Ama siz de benim gibi farklı bir makine gibi gözüksün ve onun üzerinden ihtiyacım olan servisleri çalıştırıyım(ftp,dns,webserver vb.) istiyorsanız yapmanız gereken sahip olduğunuz network adaptorüne sanal bir tane daha ekleyip bu iki adaptörü(sanal ve gerçek) kendisi arasında bridge(köprüleme) yapmanız gerekmekte.

Eğer Windows üzerinde çalışıyorsanız işiniz kolay. VirtualBox>Ağ>  dediğiniz vakit program otomatik olarak sisteminize sanal bir network bağdaştırıcısı yükleyecektir. Siz sadece yeni oluşturulan ve asıl ağ bağlantısını seçip(sağ tık) açılan menüden Köprüle demeniz yetecektir.

Ama Linuxtaysanız işlemler bu kadar basit olmayacak bunu bilin. Konsole üzerinden bazı işlemler yapmamız gerekmekte.

öncelikle kernelin tun ve bridge özelliğinin aktif olması gerekmekte. Bunun için konsole de root yetkisiyle...

 ESinTi#modprobe tun
 ESinTi#modprobe bridge

Ve sistemimize aşağıdaki kodları kullanarak sanal bir tap0 cihazı ve br0 köprü kuruyoruz.

 ESinTi#tunctl -t tap0 -u root
 ESinTi#brctl addbr br0

Kullandığımız eth0 bağlantısını promisc modda ayarlarınız sıfırlamalıyız. Promisc mode kartın sniff yani sadece kendine değil bütün gördüğü trafiği bir üst katmana aktarmasını sağlayan moddur. Makinemizde 2 farklı ip kullanacağımız için gerekli.

 ESinTi#ifconfig eth0 0.0.0.0 promisc

Ve şimdi oluşturduğumuz bridge(köprü) ye network ayarı yapmaya. Eğer sistemimizde dhcp server kullanıyor isek...

 ESinTi#dhclient br0

Yok ben manuel ayarlıyorum diyorsanız..

 ESinTi#ifconfig br0 192.168.1.5 netmask 255.255.255.0
 ESinTi#route add default gw 192.168.1.1 br0

Şimdi oluşturduğumuz köprüye kullanacağımız bağlantıları eklememiz lazım.

 ESinTi#brctl addif br0 eth0
 ESinTi#brctl addif br0 tap0

Ve son olarak sanal bağlantıyı açıp /dev/net/tun dosyasına yetki vermemiz gerekmekte.

 ESinTi#ifconfig tap0 up
 ESinTi#chmod 0666 /dev/net/tun

Buraya kadar herşey sorunsuz gitmişse artık sistemimizde bir sanal ve bir gerçek olmak üzere iki bağlantı ve bunları birbirine bağlayan bir köprü bulunuyor. Detayları görmek için.

 ESinTi#ifconfig

komutu işimizi görecektir. Şimdi sıra Virtualbox`da yapacağımız ayarlara geldi.  Ağ`dan Şuraya eklendiyi "Bridged Adapter" İsim`i ise sanal oluşturduğumuz "tap0" olarak seçip makinemizi çalıştırıyoruz. Eğer açılışta

Failed to open/create the internal network `HostInterfaceNetworking-tap0` (VERR_SUPDRV_COMPONENT_NOT_FOUND).
Failed to attach the network LUN (VERR_SUPDRV_COMPONENT_NOT_FOUND).

Unknown error creating VM (VERR_SUPDRV_COMPONENT_NOT_FOUND).


Sonuç Kodu: NS_ERROR_FAILURE (0x80004005)

Bileşen:

Console

Arayüz:

IConsole {e3c6d4a1-a935-47ca-b16d-f9e9c496e53e}

tarzında bir hata ile karşılaşırsak

 ESinTi#modprobe vboxnetflt

komutunu çalıştırıp tekrar deneyiniz. Eğer çalışırsa, /etc/modules.autoload.d/kernel-xxx dosyasını root yetkileriyle açıp bu komutu buraya eklerseniz artık makine her açılışta aynı sorunla uğraşmak zorunda kalmazsınız. çalışmazsa...

 ESinTi#/etc/init.d/vboxdrv setup

komutuyla kurulum yapmamız gerekecek.

Verdiğim bu komutların tamamını(mod açmalar hariç) /etc/conf.d/local.start dosyasını root olarak açıp eklerseniz makineniz her açıldığında ayarlarınız aktif olacaktır.

Ben şuan bu ayarları kullanarak bir tane  test için 2003server kurdum. İnanın remote desktop olayı bile sorunsuz çalışıyor.
Etiketler: