Erdem Selam,
Ubuntu Server makinede "wlan0" ile internete cikiyorsun ve "eth0" yani
ethernet kartina da switch baglayarak diger client'lari internete cikarmak
istiyorsun. Bunun icin sadece DHCP ile IP dagitmak cozum olmaz, DNS
hizmetini saglaman, forwarding yapman ve forward edilen paketlerin source
ip adreslerini wlan0 adresi ile maskelemen gerekir.
1. DHCP ile IP dagitacaksin.
2. Forwarding'i enable edeceksin.
3. Masquerade uygulayacaksin.
Hadi yapalim.
1. DHCP isi:
$ sudo apt-get install isc-dhcp-server
komutu ile dhcp server kuracaksin ve /etc/dhcp/dhcpd.conf dosyasini
herhangi bir editor ile acarak asagidaki satirlari ekleyeceksin. (varolan
satirlarin basindaki # isaretini de kaldirarak yapabilirsin, icerisinde
default satirlar vardi sanirim.)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "erdems.local";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
}
Yukarida gordugun gibi network'unde DNS sunucun olmadigi icin client'lar
Google'a ait "8.8.8.8" ve "8.8.4.4" adreslerinden dns sorgulamalari yapiyor
olacaklar.
Daha sonra /etc/default/isc-dhcp-server dosyasini bir editor ile acip;
INTERFACES="eth0"
satirini duzelterek asagidaki komutla dhcp servisini restart edeceksin.
$ /etc/init.d/isc-dhcp-server restart
Bu sayede eth0 yani ethernet karti uzerinden 192.168.1.10 ile 192.168.1.100
arasinda automatic IP dagitilmis olacak. Bu arada IP dagitilan client'larin
yukaridaki gordugunuz uzere gateway ip adresi "192.168.1.1" olacak. Bu ip
adresini Ubuntu Server'in eth0 arayuzune vermeniz gerekiyor, bunun icin de
asagidaki komut isinizi gorur.
$ sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0
Ancak bu kadari client'larin internete cikmasina yetmez. Bunun disinda
Ubuntu Server'i router olarak ayarlamali ve ayni zamanda "iptables" ile
"FORWARD" edilen paketlerde de "MASQUERADE" uygulamaniz gerekiyor.
Oncelikle forwarding'i enable edelim. Bu sayede eth0'dan gelen paketler
wlan0'a forward edilecektir.
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Yukaridaki komut forwarding'in enable olmasini saglar. Son olarak iptables
ile cikisi (output) wlan0 olan paketlerde de masquerade uygularsaniz islem
tamamlanmis olacaktir. Bunun icin asagidaki komut yeterli olur.
$ sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Bu komut sayesinde eth0'den gelerek wlan0'a forward edilen paketlerde
source ip adresi wlan0'in ip adresi ile dynamic olarak degistirilir.
Bu islemlerden sonra artik eth0 arkasindaki client'lar internete
cikabilirler. Herhangi bir sorun oldugunda troubleshoot yapmak icin:
$ sudo tail -f /var/log/syslog
komutu ile syslog dosyasini izleyin ve DHCP isteklerinin gelip gelmedigine,
sonuclarina goz atin. Asagidaki sekilde log'lar olusmasi gerekiyor.
Mar 6 09:14:19 dhcp dhcpd: DHCPREQUEST for 192.168.1.11 from
95:fb:c9:ef:c4:96 via eth0
Mar 6 09:14:19 dhcp dhcpd: DHCPACK on 192.168.1.11
to 95:fb:c9:ef:c4:96 via eth0
Eger bu sekilde log'lar goruyorsaniz 95:fb:c9:ef:c4:96 MAC adres'ine sahip
client DHCP'den IP isteginde bulunmus ve DHCP sunucusu 192.168.1.11 ip
adresini client'a atamistir.
Eger bir DNS problemi varsa oncelikle client uzerinde ping ve nslookup
komutlari ile sorunun kaynagini tespit edebilirsiniz.
Ornegin:
ping 8.8.8.8
komutu ile PING komutuna asagidaki gibi cevap geliyorsa internet erisimi
ile ilgili bir problem yok demektir.
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=49 time=79.5 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=49 time=76.3 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=49 time=77.8 ms
nslookup ile DNS sorgulamasi yapiniz ve DNS cozumlemesi yapabildiginizi
check ediniz.
$ nslookup www.google.com.tr
Server: 8.8.8.8
Address: 8.8.8.8#53
Name: www.google.com.tr
Address: 94.20.252.88
Bu sekilde DNS isteklerine de cevap aliyorsaniz herhangi bir problem
olmamasi lazim, client'lar internete cikabilmeliler.
Son olarak dilerseniz kendi DNS sunucunuzu da kurabilirsiniz. Bunun icin de
asagidaki komut yeterli olacaktir.
$ sudo apt-get install bind9 bind9utils bind9-doc dnsutils
BIND9 paketini kurduktan sonra herhangi bir editor ile
/etc/bind/named.conf.options
dosyasini acip asagidaki sekilde forwarders tanimini degistirin (# isareti
varsa satirlarin basinda kaldirin.)
$ sudo nano /etc/bind/named.conf.options
forwarders {
8.8.8.8;
8.8.4.4;
};
Dosyayi kaydedip cikin ve DNS servisini restart edin.
$ sudo /etc/init.d/bind9 restart
Saglikli calisip calismadini ise kendi DNS sunucunuzu 127.0.0.1 olarak
ayarladiktan sonra dns sorgusu yaparak test edebilirsiniz. Bunun icin
/etc/resolv.conf dosyasinin icerisine nameserver 127.0.0.1 yazip
kaydettikten sonra nslookup komutu ile test yapin.
$ sudo nano /etc/resolv.conf
nameserver 127.0.0.1
$ nslookup www.facebook.com
Server: 127.0.0.1
Address: 127.0.0.1#53
www.facebook.com canonical name = star.c10r.facebook.com.
Name: star.c10r.facebook.com
Address: 31.13.64.1
Son olarak diger client'lar da DHCP uzerinden IP alirken Ubuntu Server
uzerinde kosan DNS hizmetinden faydalanmali, bunun icin en bastaki sekilde
/etc/dhcp/dhcpd.conf dosyasini acip option domain-name-servers tanimini
degistirmelisiniz.
$ sudo nano /etc/dhcp/dhcpd.conf
option domain-name-servers 192.168.1.1;
dosyayi kaydedip cikin ve dhcp, dns servislerini restart edin.
$ sudo /etc/init.d/isc-dhcp-server restart
$ sudo /etc/init.d/bind9 restart
Artik eth0'a bagli switch arkasindaki client'lar 192.168.1.1 yani Ubuntu
server uzerinden IP alacak, DNS sorgularini yapacak ve internete cikacaklar.
Servislerin calisip calismadini kontrol etmek icin asagidaki komutla
bakabilirsiniz.
$ sudo netstat -plutn
tcp 0 0 192.168.1.1:53 0.0.0.0:*
LISTEN 8587/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
8587/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN
8587/named
tcp6 0 0 :::53 :::* LISTEN
8587/named
udp 0 0 192.168.1.1:53 0.0.0.0:*
8587/named
udp 0 0 127.0.0.1:53 0.0.0.0:*
8587/named
udp6 0 0 :::53 :::*
8587/named
udp 0 0 0.0.0.0:67 0.0.0.0:*
7921/dhcpd
udp 0 0 0.0.0.0:49291 0.0.0.0:*
7921/dhcpd
udp6 0 0 :::59271 :::*
7921/dhcpd
Gordugunuz gibi sunucumuz uzerinde hem DHCP hem de DNS servisleri 67 udp ve
53 udp,tcp portlari uzerinden hizmet vermektedir.
Eger HTTP trafigini de kontrol etmek istersen bu defa Squid Proxy Server ve
Dansguardian Content Filtering yazilimlarini kurup konfigure etmen
gerekecek.
Oldukca aciklamali step by step kurulumlari iceren bir mail oldu. Yine de
sorun yasarsan burada paylas, arkadaslar yardimci olacaktir.
Umarim yardimci olabildik.
Saygilar, selamlar.
Ozgur
6 Mart 2014 05:15 tarihinde Erdem Uyguner <[email protected]> yazdı:
> Merhabalar
>
> Üzerinde Ubuntu Server 12.04.04 kurulu olan bir server makinem var. Server
> internete wlan0 ile erişiyor ben ethernet kartım üzerinden switchi bağlayıp
> ağdaki diğer makinalarında dhcp server üzerinden otomatik ip almalarını
> istiyorum... bunu yapabilmem için nasıl bir yol izlemeliyim?
>
> yardımcı olan ve zaman ayırıp cevap yazan arkadaşlara şimdiden teşekkür
> ediyorum.
>
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu