PPPD
Önceki Kiralık Hat-Mini NASIL Sonraki
PPPD
Bir pppd'ye (Point to Point Protocol Deamon) ve nasıl çalıştığına dair makul bir bilgiye sahip olmalısınız. Eğer gerekliyse ilgili RFC'lere ya da Linux PPP NASIL belgesine göz atabilirsiniz. Eğer bir login prosedürü kullanmayacaksanız, (m)getty kullanmanıza ya da bağlantınızı kontrol eden pppd ile ilişkilendirilmiş (sahte) bir kullanıcıya ihtiyacınız olmayacak. Eğer telefon etmeyecekseniz, herhangi bir konuşma betiğine de gerek kalmaz. Aslında kurduğunuz modem devreleri ve yapılandırması biraz da tamamen telli boş modem kablolarına benzer. Bu da pppd'nizi boş bir modem kablosunu nasıl yapacaksanız aynı yolla yapılandırmanız gerektiği anlamına gelir.
Güvenilir bir bağlantı için, kurulumunuz aşağıdaki kriterleri izlemelidir;
  • Sisteminizin ön yüklemesinden kısa bir süre sonra pppd, RS232 portunuzda DTR sinyalini vermeli, DCD'nin çıkmasını beklemeli ve bağlantıyı müzakere etmelidir.
  • Eğer uzak sisteme erişilemiyorsa, pppd tekrar erişilene kadar beklemede kalmalıdır.
  • Eğer bağlantı geldiyse ve devam ediyorsa, pppd modemi yeniden ayarlamalı (bu işlem DTR'yi düşürüp sonra da yükseltilerek yapılır) ve daha sonra yeniden bağlantı kurmaya çalışmalıdır.
  • Eğer bağlantının kalitesi çok düşükse, pppd modemi yeniden ayarlamalı ve bağlantıyı yeniden kurmalıdır.
  • Eğer bağlantıyı kontrol eden süreç, yani pppd ölürse bir gözcü (watchdog) pppd'yi yeniden başlatmalıdır.
Yapılandırma
Örneğin modemin COM2'ye bağlı olduğunu, yerel IP adresinin loc_ip olduğunu ve uzak IP adresinin rem_ip olduğunu düşünelim. MTU için 576'yı kullanmak istiyoruz. /etc/ppp/options.ttyS1 dosyamız aşağıdaki gibi olmalıdır:
crtscts
mru 576
mtu 576
passive
loc_ip:rem_ip
-chap
modem
#noauth
-pap
persist
#maxfail 0
#holdoff 10
asyncmap 0, lock, modem ve -detach gibi şeyler muhtemelen /etc/ppp/options dosyasında bulunuyordur. Eğer öyle değilse, bunları /etc/ppp/options.ttyS1 dosyanıza eklemelisiniz. Eğer yerel sisteminiz 192.168.1.1 ve uzak sisteminiz 10.1.1.1 ise, yerel sisteminizdeki /etc/ppp/options.ttyS1 dosyanız aşağıdaki gibi olmalıdır:
crtscts
mru 576
mtu 576
passive
192.168.1.1:10.1.1.1
-chap
modem
#noauth
-pap
persist
#maxfail 0
#holdoff 10
Uzak sistemdeki ttyS1 seçenekleri şöyle olmalıdır:
crtscts
mru 576
mtu 576
passive
10.1.1.1:192.168.1.1
-chap
modem
#noauth
-pap
persist
#maxfail 0
#holdoff 10
passive seçeneği bağlantı (ya da yeniden bağlantı) girişimlerinin sayısını sınırlar. persist seçeneği pppd'nin ilk seferde bağlantı kuramadığı takdirde ya da bağlantı koptuğunda ayakta olmasını sağlar.
Eğer dosya transferleri sırasında (FTP ya da internette gezinirken) çok fazla telnet kullanırsanız 296 gibi daha küçük bir MTU ve MRU kullanmanız daha iyi olacaktır. Böylece uzak sisteminizi daha uyumlu hale getirmiş olacaksınız. Eğer FTP kullanırken telnet'i fazla umursamazsanız o zaman MTU ve MRU'yu 1500 gibi büyük bir değer yapabilirsiniz. Aynı zamanda UDP'nin parçalanamayacağını da aklınızda bulundurun. Örneğin UDP paketlerinin 512 bayt olduğunu kabul edelim. O halde asgari MTU'nun 552 bayt olması gerekecektir.
noauth seçeneği bazı yeni dağıtımlar için gerekli olabilir. maxfail 0 da daha yeni PPPD'ler için gerekli olabilir.
Bağlantı kaybolduktan sonra PPPD yeniden bağlanmak için bir süre bekleyecektir. Bekleme süresi holdoff seçeneği ile ayarlanabilir. holdoff için öntanımlı değer 30 saniye idi ancak artık sıfır kullanılıyor. holdoff seçeneği genelde 10 olarak kullanılır.
Betikler
pppd'yi başlatma ve ayakta tutma
pppd formunu bir önyükleme betiğinden (rc) çalıştırabilirsiniz. Buna rağmen eğer bu yolu kullanırsanız ve pppd ölürse, o zaman bir bağlantınız da olmayacaktır. Daha kararlı bir çözüm, pppd'yi /etc/inittab'dan başlatmak olacaktır;
s1:23:respawn:/usr/sbin/pppd /dev/ttyS1 115200
Bu yöntem sayesinde pppd ölürse, yeniden başlatılacaktır. Ancak -detach seçeneğiniz olduğundan (yeni sistemlerde nodetach) emin olun, aksi takdirde inittab pppd'nin bir çok örneğini başlatacaktır.
Not
Bazı eski sistemler `115200' hızını kabul etmeyecektir. Bu durumda hızı 38400 yapmanız ve setserial ile spd_vhi bayrağını ayarlamanız gerekecektir. Bazı sistemler ttyS aygıtı yerine cua kullandığınızı varsayarlar.
Rotaların Kurulumu
Varsayılan rota defaultroute seçeneği ile ya da /etc/ppp/ip-up betiğiyle ayarlanabilir;
#!/bin/bash
case $2 in
     /dev/ttyS1)
          /sbin/route add -net 0.0.0.0 gw rem_ip netmask 0.0.0.0
          ;;
esac
ip-up aynı zamanda sistem saatinizi netdate kullanarak eşzamanlamak için kullanılabilir.
Rotanın ip-up içinde varsayılan rota olarak ayarlanması zorunlu değildir. Sizin ip-up'ınız uzak ağdaki rotayı ayarlarlarken, uzak sistemdeki ip-up betiği de sizin ağınıza erişmek için gereken rotayı ayarlar. Eğer ağınız 192.168.1.0 ve ppp arayüzünüz 192.168.1.1 ise, uzak sistemdeki ip-up betiği aşağıdaki gibi olmalıdır;
#!/bin/bash
case $2 in
   /dev/ttyS1)
      /sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0
      ;;
esac
case $2 ve /dev/ttyS1) birden fazla ppp bağlantınız olduğu durumlarda işinize yarar. ip-up bağlantı kurulduğu her sefer çalışacaktır, ama sadece /dev/ttySx) ve ;; arasındakiler işletilecektir ve doğru ttyS için rota belirlenecektir. Yönlendirme hakkında daha fazla bilgiyi Linux Ağ Oluşturma NASIL belgesinde bulabilirsiniz.
Bazı sistemler temel bir tty üzerinden yönlendiremedikleri zaman dinamik ttys kullanmayı tercih ederler. Bu durumda ip adresini bir ppp arayüzüne çevirmek ve sonra da belli bir ppp arayüzünden yönlendirme (ve güvenlik duvarı) yapmak daha elverişli olabilir. Bu yüzden /etc/ppp/ip-up dosyasını aşağıdaki gibi düzenledim;
# Bu değişkenler çalışan-kısımlar tarafından betiklerin çalıştırılması içindir
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

# ip'yi  ppp'ye çevirme
echo $PPP_IFACE > "/var/run/ppp/if-$PPP_LOCAL"
sleep 1
# Güvenlik duvarını tekrar çalıştırma .
/usr/local/sbin/rc.block

# (Varsayılan) rotaya (ya da rotalara ) dikkat edilmesi
case $PPP_LOCAL in
        "ip_adresim")
                /sbin/route add -net 0.0.0.0 gw $PPP_REMOTE netmask 0.0.0.0
                ;;

esac

# Önyüklemede sabit şeyler atlandı
if ! ( netstat -an | grep 'ip_adresim:53' > /dev/null 2>&1 )
then
        # Just booted
        # Sync clock
        /usr/local/sbin/ntpdate.sh &
        # Set the null routes
        /usr/local/sbin/null-route.sh &
        # Bind 9 needs this;
        sleep 1
        /etc/init.d/bind9 restart
fi

# Bir sesli uyarı
/bin/echo -ne "\007" >> /dev/tty1
ip_adresim kısmını kendi IP adresinizle değiştirin. /usr/local/sbin/ntpdate.sh dosyası saati eşzamanlamak için kullanılır. Bu dosya NTPD'yi durdurur, ntpdate kullanarak eşzamanlamayı yapar ve NTPD'yi yeniden başlatır. /usr/local/sbin/null-route.sh boş rotaları ayarlayan bir dosyadır;
#!/bin/bash
route add -net 10.0.0.0    netmask 255.0.0.0   reject
route add -net 172.16.0.0  netmask 255.240.0.0 reject
route add -net 192.168.0.0 netmask 255.255.0.0 reject
Eğer kullanımda RFC 1918 adreslerine sahipseniz, boş rotalar daha küçük bir ağ maskesi kullanmanıza izin vermeyeceklerdir. 192.168.1.0/24 ağı boş rota 192.168.0.0/16 tarafından rahatsız edilmeyecektir;
Kernel IP rota tespit etme tablosu
Hedef           Ağ Geçidi       Bilgi Maskesi Bayrak Metrik Ref     Use Iface
255.255.255.255 0.0.0.0         255.255.255.255 UH    0      0        0 eth1
195.190.249.4   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     -               255.255.0.0     !     0      -        0 -
172.16.0.0      -               255.240.0.0     !     0      -        0 -
10.0.0.0        -               255.0.0.0       !     0      -        0 -
0.0.0.0         195.190.249.4   0.0.0.0         UG    0      0        0 ppp0
Test
Her şeyi test etmek modemi test etmek gibidir. Eğer çalışırsa, bisikletinize atlayın ve uzak modemi bağlantınızın uzak tarafına taşıyın. Eğer çalışmazsa, o zaman yapmanız gereken ilk işlerden biri COM portunun hızını kontrol etmek olacaktır; genelde sıkça yapılan hatalardan biri Minicom'lu modemleri tek bir hız kullanarak yapılandırmak ve daha sonra da başka bir hız kullanarak pppd'yi ayarlamaktır. Bu hiç bir zaman çalışmayacaktır! Her zaman aynı hızı kullanmak zorundasınız!
Önceki Üst Ana Başlık Sonraki
Modem Başlangıç Linux Gezici IPv6 NASIL
Bir Linux Kitaplığı Sayfası