Linux Yönlendirici Nasıl

UlakNET IPv6, özgür ansiklopedi

Git ve: kullan, ara

Konu başlıkları

[değiştir] Debian

Debian işletim sistemi de diğer linux işletim sistemleri gibi kernel (ftp.kernel.org.tr) kullanmaktadır. Bu kernel işletim sistemlerine göre bazen değiştirilmekle beraber genelde aynıdır. Nitekim doğrudan bu kernel (çekirdek) ilgili siteden indirilip derlenebilir. Bu konuya çok girmemekle beraber eğer Linux işletim sistemini sadece masaüstü olarak kullanmayacağım diyorsanız, çekirdek derleme işine girmeniz yararlı olacaktır. Önceden yüklü çekirdekler genelde modüler gelir. Kısaca bazı fonksiyonlar çekirdek ilk yüklendiğinde çalıştırılabileceği gibi daha sonradan da eklenebilir.

modprobe, lsmod, rmmod ve insmode gibi uygulamalar modül kullanımında yarar sağlamaktadır. Genel olarak bu dosyalar her Linux işletim sisteminde aynıdır. Değişen ise modüllerin yada ayarların her dağıtıma göre değişmesidir.

Burada debian dağıtımı için anlatılacak ayarlar genel itibari ile kullandığınız sürüme benzer olacaktır. Özellikle komut satırından girilen ayarlar daha uyumlu olacaktır.


[değiştir] İlk Yükleme

Daha önce de belirttiğimiz gibi IPv6 desteğini çekirdek içerisine gömmedi iseniz;

       # modprobe ipv6 

Bu komut IPv6'yı yüklemenizi sağlayacaktır. Eğer modül yoksa hata mesajı dönecektir. lsmod komut ile de yüklü modüller rahatlıkla görülebilir.


       # lsmod | grep ipv6
       nf_conntrack_ipv6      21212  1 
       nf_conntrack           60040  6 nf_conntrack_netlink,nf_nat,nf_conntrack_ftp,nf_conntrack_ipv6,nf_conntrack_ipv4,xt_state
       nfnetlink               7576  5 nf_conntrack_netlink,nf_nat,nf_conntrack_ipv6,nf_conntrack_ipv4,nf_conntrack
       ipv6                  252960  33 nf_conntrack_ipv6
         # ifconfig -a
         eth0      Link encap:Ethernet  HWaddr 00:11:FE:78:30:F8  
         BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
         Interrupt:201 Memory:f8000000-f8011100 
         
         lo        Link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:11 errors:0 dropped:0 overruns:0 frame:0
         TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:793 (793.0 b)  TX bytes:793 (793.0 b)
         
         sit0      Link encap:IPv6-in-IPv4  
         NOARP  MTU:1480  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


Görüldüğü gibi IPv6 aktif hale geldi. Şimdi IPv6 tanımlamaları nasıl yapılır ona bakacağız.

Burada dikkat edilmesi gereken bir husus vardır. IPv6 esasen bir DHCP gibi çalışmaktadır. Yani otomatik olarak IP (daha doğrusu prefiks) dağıtmaktadır. Bu sayede kullanıcı sistemleri otomatik olarak IP adreslerini oluşturabilmektedirler. Fakat bu sistem bir DHCP mekanizması değildir. Halbuki kullanıcı eski IPv4'den gelen alışkanlık ile bunu DHCP gibi düşünmektedir. Bu sistem bazen dezavantaj olabilmektedir. Çünkü DNS ayarlarını kullanıcı kendisi yapmalıdır. DNS ayarları olmayan sistemler çalışmamaktadır.

         # netstat -6r
         Kernel IPv6 routing table
         Destination                                 Next Hop                                Flags Metric Ref    Use Iface
         ::1/128                                     ::                                      U     0      0        1 lo      
         2001:98:20:1:218:feff:fe78:30fa/128         ::                                      U     0      1511       1 lo      
         2001:98:20:1::/64                           ::                                      UA    256    1505       0 eth1    
         fe80::20d:29ff:fe54:9ec5/128                fe80::20d:29ff:fe54:9ec5                UC    0      3        0 eth1    
         fe80::218:feff:fe78:30fa/128                ::                                      U     0      253       1 lo      
         fe80::/64                                   ::                                      U     256    0        0 eth1    
         ff00::/8                                    ::                                      U     256    0        0 eth1    
         ::/0                                        fe80::20d:29ff:fe54:9ec5                UGDA  1024   22       0 eth1    

Görüldüğü gibi default-routing (::/0) bağlantı-yerel (link-local) adresi üzerinden yönlendirici ile görüşmektedir. Esasen sistem ayrıca bir default-routing yayınlamıyor. Ama IPv6'nın doğası gereği haberleşmeyi rahatlıkla sağlamaktadır.


         # ping6 -I eth1 fe80::20d:29ff:fe54:9ec5
         PING fe80::20d:29ff:fe54:9ec5(fe80::20d:29ff:fe54:9ec5) from fe80::218:feff:fe78:30fa eth1: 56 data bytes
         64 bytes from fe80::20d:29ff:fe54:9ec5: icmp_seq=1 ttl=64 time=0.349 ms
         64 bytes from fe80::20d:29ff:fe54:9ec5: icmp_seq=2 ttl=64 time=0.351 ms
         
         --- fe80::20d:29ff:fe54:9ec5 ping statistics ---
         2 packets transmitted, 2 received, 0% packet loss, time 1000ms


         # ifconfig eth0 inet6 add 2001:98:20::1/64		IPv6 adresi ekler.
         # ifconfig eth0 inet6 del 2001:98:20::1/64		IPv6 adresi siler.
         # route --inet6 add 2001:a::/64 gw 2001:98::1 	IPv6 yönlendirmesi ekler.
         # route --inet6 add default gw 2001:98::1 		IPv6 varsayılan yönlendirmesini ekler.
         # route --inet6 del 2001:a::/64 gw 2001:98::1 	IPv6 yönlendirmesi siler.

veya iproute paketi yüklü ise (aptitude install iproute );

         # ip -6 addr add 2001:98:20::1/64 dev eth0 		IPv6 adresi ekler.
         # ip -6 addr del 2001:98:20::1/64 dev eth0 		IPv6 adresi siler.
         # ip -6 route add default via 2001:98::1 dev eth0 	IPv6 varsayılan yönlendirmesini ekler.
         # ip -6 route del default via 2001:98::1 dev eth0 	IPv6 varsayılan yönlendirmesini siler.


Her açılışta otomatik olarak IPv6 ayarlarını yapmak istiyorsanız (elle ayarlamamak için);

         # vi /etc/network/interfaces
         ..
         ..
         # IPv6 settings
         iface eth0 inet6 static
         pre-up modprobe ipv6
         address 2001:98:20::15
         netmask 64
         gateway 2001:98:20::1
         ..
         ..


[değiştir] Sysctl

    sysctl net.ipv6.conf.default.forwarding = 1

Bu satır ile IPv6 yönlendirmeyi aktif hale getirmiş olursunuz. Evet bu iş bu kadar basit. Eğer daha kompleks sistemler (Bgpv6, Ospfv6 gibi) tasarlamak istiyorsanız zebra kısmına bakınız.

    sysctl net.ipv6.conf.eth0.forwarding = 0

Bu satır ile eth0 arayüzünün IPv6 yönlendirme yapmasını engellemiş olursunuz. Eğer tüm arayüzlerinizin yönlendirme yapmasını istemiyorsanız iyi olur. Hatta güvenlik için yönlendirme yapmayacağınız arayüzlerini engellemek iyi bir alışkanlık olabilir.


[değiştir] IPv6 İptali

IPv6 Linux sistemlerinde varsayılan olarak yüklü gelmektedir. IPv6'nin her açılışta yüklenmemesini istiyorsanız;

         # vi /etc/modprobe.d/aliases
         ..
         ..
         - alias net-pf-10 ipv6
         + alias net-pf-10 off
         + alias ipv6 off
         ..

Görüldüğü gibi ilk satırı kaldırıp, yerine diğer iki satırı ekleyip, sistemi yeniden başlatırsanız IPv6'nın yüklenmesini engellemiş olursunuz.

--Hdemir 11:10, 27 Eylül 2007 (EEST)