Linux VirtualBox Network Bridge
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...
Ve sistemimize aşağıdaki kodları kullanarak sanal bir tap0 cihazı ve br0 köprü kuruyoruz.
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.
Ve şimdi oluşturduğumuz bridge(köprü) ye network ayarı yapmaya. Eğer sistemimizde dhcp server kullanıyor isek...
Yok ben manuel ayarlıyorum diyorsanız..
Şimdi oluşturduğumuz köprüye kullanacağımız bağlantıları eklememiz lazım.
Ve son olarak sanal bağlantıyı açıp /dev/net/tun dosyasına yetki vermemiz gerekmekte.
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.
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
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...
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.
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
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
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
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
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
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).tarzında bir hata ile karşılaşırsak
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}
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.