20 Şubat 2023 Pazartesi

FreeBSD Gelişmiş Ağ Yapılandırma

 

Bölüm 33. Gelişmiş Ağ İletişimi

33.1. Özet

Bu bölüm bir dizi gelişmiş ağ konusunu kapsamaktadır.

Bu bölümü okuduktan sonra şunları bileceksiniz:

  • Ağ geçitlerinin ve rotaların temelleri.

  • USB tethering nasıl kurulur?

  • IEEE® 802.11 ve Bluetooth® aygıtları nasıl kurulur.

  • FreeBSD'nin bir köprü görevi görmesi nasıl sağlanır?

  • Ağ PXE önyüklemesi nasıl kurulur?

  • FreeBSD makinesinde IPv6 nasıl kurulur.

  • FreeBSD'de Ortak Adres Yedeklilik Protokolü'nün (CARP) özellikleri nasıl etkinleştirilir ve kullanılır.

  • FreeBSD'de birden fazla VLAN nasıl yapılandırılır.

  • Bluetooth kulaklığı yapılandırın.

Bu bölümü okumadan önce şunları yapmalısınız:

33.2. Ağ Geçitleri ve Rotalar

Yönlendirme, bir sistemin başka bir sisteme giden ağ yolunu bulmasını sağlayan mekanizmadır. Yol, "hedef" ve "ağ geçidini" temsil eden tanımlanmış bir adres çiftidir. Yol, belirtilen hedefe ulaşmaya çalışırken, paketleri belirtilen ağ geçidi üzerinden gönderdiğinizi gösterir. Üç tür hedef vardır: tek tek ana bilgisayarlar, alt ağlar ve "varsayılan". "Varsayılan yol", başka bir yol yoksa kullanılır. Ayrıca üç tür ağ geçidi vardır: tek tek ana bilgisayarlar, bağlantılar olarak da adlandırılan arabirimler ve Ethernet donanım (MAC) adresleri. Bilinen yollar bir yönlendirme tablosunda depolanır.

Bu bölümde, yönlendirmeyle ilgili temel bilgilere genel bir bakış sunulmaktadır. Daha sonra bir FreeBSD sisteminin yönlendirici olarak nasıl yapılandırılacağını gösterir ve bazı sorun giderme ipuçları sunar.

33.2.1. Yönlendirmeyle İlgili Temel Bilgiler

FreeBSD sisteminin yönlendirme tablosunu görüntülemek için netstat(1) kullanın:

% netstat -r
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGS 37 418 em0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0

Bu örnekteki girdiler aşağıdaki gibidir:

temerrüt

Bu tablodaki ilk yol, yolu belirtir. Yerel sistemin uzak bir ana bilgisayarla bağlantı kurması gerektiğinde, bilinen bir yolun var olup olmadığını belirlemek için yönlendirme tablosunu denetler. Uzak ana bilgisayar tablodaki bir girdiyle eşleşiyorsa, sistem bu girdide belirtilen arabirimi kullanarak bağlanıp bağlanamayacağını denetler.default

Hedef bir girdiyle eşleşmiyorsa veya bilinen tüm yollar başarısız olursa, sistem varsayılan yol için girdiyi kullanır. Yerel ağdaki ana bilgisayarlar için, varsayılan yoldaki alan, Internet'e doğrudan bağlantısı olan sisteme ayarlanır. Bu girdiyi okurken, sütunun ağ geçidinin kullanılabilir () olduğunu gösterdiğini doğrulayın.GatewayFlagsUG

Kendisi dış dünyaya açılan ağ geçidi olarak işlev gören bir makinenin varsayılan yolu, Internet Servis Sağlayıcısı'ndaki (ISS) ağ geçidi makinesi olacaktır.

localhost

İkinci rota rotadır. Sütununda belirtilen arabirim, geri döngü aygıtı olarak da bilinen lo0'dur. Bu, bu hedefe yönelik tüm trafiğin ağ üzerinden göndermek yerine dahili olması gerektiğini gösterir.localhostNetiflocalhost

MAC adresi

İle başlayan adresler MAC adresleridir. FreeBSD, örnekte, yerel Ethernet üzerindeki herhangi bir ana bilgisayarı otomatik olarak tanımlayacak ve Ethernet arayüzü re0 üzerinden bu ana bilgisayar için bir rota ekleyecektir. Bu tür bir rotanın, ana bilgisayar belirli bir süre içinde yanıt vermemesi durumunda kullanılan sütunda görülen bir zaman aşımı vardır. Bu durumda, bu ana bilgisayara giden yol otomatik olarak silinir. Bu ana bilgisayarlar, en kısa yol belirlemeye dayalı olarak yerel ana bilgisayarlara giden yolları hesaplayan Yönlendirme Bilgileri Protokolü (RIP) kullanılarak tanımlanır.0:e0:test0Expire

alt ağ

FreeBSD, yerel alt ağ için otomatik olarak alt ağ yolları ekleyecektir. Bu örnekte, alt ağın yayın adresi ve bu alt ağla ilişkili etki alanı adıdır. Bu atama, makinedeki ilk Ethernet kartını ifade eder.10.20.30.25510.20.30example.comlink#1

Yerel ağ konakları ve yerel alt ağlar, yollarının routed(8) adlı bir arka plan programı tarafından otomatik olarak yapılandırılmasını sağlar. Çalışmıyorsa, yalnızca yönetici tarafından statik olarak tanımlanan yollar bulunur.

ev sahibi

Satır, ana bilgisayara Ethernet adresiyle başvurur. Gönderen ana bilgisayar olduğundan, FreeBSD Ethernet arayüzü yerine geri döngü arayüzünü (lo0) kullanmayı bilir.host1

İki satır, ifconfig(8) kullanılarak oluşturulan diğer adları temsil eder. Lo0 arabiriminden sonraki sembol, geri döngü adresine ek olarak bir takma adın ayarlandığını söyler. Bu tür yollar yalnızca diğer adı destekleyen ana bilgisayarda görünür ve yerel ağdaki diğer tüm ana bilgisayarların bu tür yollar için bir hattı olur.host2link#1

224

Son satır (hedef alt ağ) çok noktaya yayın ile ilgilenir.224

Her rotanın çeşitli öznitelikleri sütunda görülebilir. Yaygın Olarak Görülen Yönlendirme Tablosu Bayrakları, bu bayraklardan bazılarını ve anlamlarını özetler:Flags

Tablo 1. Sık Görülen Yönlendirme Tablosu Bayrakları
KomutAmaç

U

Rota etkin (yukarı).

H

Yol hedefi tek bir ana bilgisayardır.

G

Bu hedef için herhangi bir şeyi bu ağ geçidine gönderin, bu da oradan nereye gönderileceğini bulacaktır.

S

Bu yol statik olarak yapılandırılmıştır.

C

Makinelerin bağlanması için bu rotayı temel alan yeni bir rotayı klonlar. Bu tür bir yol normalde yerel ağlar için kullanılır.

W

Yol, bir yerel ağ (klon) yolu temel alınarak otomatik olarak yapılandırılmıştır.

L

Rota, Ethernet (bağlantı) donanımına başvuruları içerir.

Bir FreeBSD sisteminde, varsayılan yol, varsayılan ağ geçidinin IP adresini belirterek /etc/rc.conf dosyasında tanımlanabilir:

defaultrouter="10.20.30.1"

Rotayı aşağıdakileri kullanarak manuel olarak eklemek de mümkündür:route

# route add default 10.20.30.1

El ile eklenen rotaların yeniden başlatmadan sonra da devam edemeyeceğini unutmayın. Ağ yönlendirme tablolarının el ile işlenmesi hakkında daha fazla bilgi için, route(8) konusuna bakın.

33.2.2. Yönlendiriciyi Statik Yollarla Yapılandırma

Bir FreeBSD sistemi, çift ana bilgisayara bağlı bir sistemse, bir ağ için varsayılan ağ geçidi veya yönlendirici olarak yapılandırılabilir. Çift ana bilgisayarlı sistem, en az iki farklı ağda bulunan bir ana bilgisayardır. Genellikle, her ağ ayrı bir ağ arabirimine bağlıdır, ancak IP diğer adları her biri farklı bir alt ağda bulunan birden çok adresi tek bir fiziksel arabirime bağlamak için kullanılabilir.

Sistemin arayüzler arasında paketleri iletmesi için, FreeBSD'nin bir yönlendirici olarak yapılandırılması gerekir. İnternet standartları ve iyi mühendislik uygulamaları, FreeBSD Projesi'nin varsayılan olarak bu özelliği etkinleştirmesini engeller, ancak bu satırı /etc/rc.conf dosyasına ekleyerek önyüklemede başlayacak şekilde yapılandırılabilir:

gateway_enable="YES"          # Set to YES if this host will be a gateway

Yönlendirmeyi şimdi etkinleştirmek için, sysctl(8) değişkenini . Yönlendirmeyi durdurmak için, bu değişkeni .net.inet.ip.forwarding10

Bir yönlendiricinin yönlendirme tablosu, diğer ağlara nasıl ulaşacağını bilmesi için ek yollara ihtiyaç duyar. Rotalar statik yollar kullanılarak el ile eklenebilir veya rotalar bir yönlendirme protokolü kullanılarak otomatik olarak öğrenilebilir. Statik yollar küçük ağlar için uygundur ve bu bölümde küçük ağlar için statik yönlendirme girdisinin nasıl ekleneceği açıklanmaktadır.

Büyük ağlar için, statik yollar hızla ölçeklendirilemez hale gelir. FreeBSD, RIP, sürüm 8 ve 1 ve IRDP yönlendirme protokollerini sağlayan standart BSD yönlendirme cininin yönlendirilmesiyle(2) birlikte gelir. BGP ve OSPF yönlendirme protokolleri için destek, net/quagga paketi veya bağlantı noktası kullanılarak yüklenebilir.

Aşağıdaki ağı göz önünde bulundurun:

statik yollar

Bu senaryoda, Internet'in geri kalanına yönlendirici görevi gören bir FreeBSD makinesidir. Dış dünyayla bağlantı kurmasını sağlayan varsayılan bir rotaya sahiptir. varsayılan ağ geçidi olarak kullanmak üzere zaten yapılandırılmıştır.RouterA10.0.0.1RouterB192.168.1.1

Herhangi bir statik yol eklemeden önce, yönlendirme tablosu şöyle görünür:RouterA

% netstat -nr
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0.0/24 link#1 UC 0 0 xl0
192.168.1.0/24 link#2 UC 0 0 xl1

Geçerli yönlendirme tablosuyla, ağa giden bir yolu yok. Aşağıdaki komut, bir sonraki atlama olarak kullanarak ağı 'yönlendirme tablosuna ekler:RouterA192.168.2.0/24Internal Net 2RouterA192.168.1.2

# route add -net 192.168.2.0/24 192.168.1.2

Artık ağdaki herhangi bir ana bilgisayara ulaşabilir. Ancak, FreeBSD sistemi yeniden başlatılırsa yönlendirme bilgileri kalıcı olmayacaktır. Statik bir yolun kalıcı olması gerekiyorsa, /etc/rc.conf dosyasına ekleyin:RouterA192.168.2.0/24

# Add Internal Net 2 as a persistent static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"

Yapılandırma değişkeni, her dizenin bir yol adına başvurduğu boşlukla ayrılmış dizelerin bir listesidir. Değişken, bu yol adı için statik yolu içerir.static_routesroute_internalnet2

Birden fazla dize kullanmak, birden çok statik yol oluşturur. Aşağıda, ağlar ve ağlar için statik yollar ekleme örneği gösterilmektedir:static_routes192.168.0.0/24192.168.1.0/24

static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"

33.2.3. Sorun Giderme

Bir ağa adres alanı atandığında, servis sağlayıcı yönlendirme tablolarını ağ için tüm trafiğin sitenin bağlantısına gönderilecek şekilde yapılandırır. Ancak harici siteler paketlerini ağın ISS'sine göndermeyi nasıl bilir?

Atanan tüm adres alanlarını takip eden ve İnternet omurgasına bağlantı noktalarını veya ülke genelinde ve dünyada İnternet trafiğini taşıyan ana ana ana hatlara bağlantı noktalarını tanımlayan bir sistem vardır. Her omurga makinesi, belirli bir ağ için trafiği belirli bir omurga taşıyıcısına yönlendiren ve oradan da belirli bir ağa ulaşana kadar servis sağlayıcılar zincirine yönlendiren bir ana tablo kümesinin bir kopyasına sahiptir.

Servis sağlayıcının görevi, omurga sitelerine, bir site için bağlantı noktası ve dolayısıyla içe doğru yol olduklarını ilan etmektir. Bu, rota yayılımı olarak bilinir.

Bazen, rota yayılımı ile ilgili bir sorun vardır ve bazı siteler bağlanamaz. Belki de yönlendirmenin nerede bozulduğunu anlamaya çalışmak için en kullanışlı komut . Başarısız olduğunda kullanışlıdır.tracerouteping

Kullanırken, bağlanılacak uzak ana bilgisayarın adresini ekleyin. Çıktı, ağ geçidi ana bilgisayarlarını girişimin yolu boyunca gösterir, sonunda hedef ana bilgisayara ulaşır veya bağlantı eksikliği nedeniyle sonlandırılır. Daha fazla bilgi için traceroute(8) sayfasına bakın.traceroute

33.2.4. Çok Noktaya Yayın Hususları

FreeBSD hem çok noktaya yayın uygulamalarını hem de çok noktaya yayın yönlendirmesini yerel olarak destekler. Çok noktaya yayın uygulamaları FreeBSD üzerinde çalışmak için herhangi bir özel yapılandırma gerektirmez. Çok noktaya yayın yönlendirme desteği, aşağıdaki seçeneğin özel bir çekirdekte derlenmesini gerektirir:

options MROUTING

Yönlendirilmiş çok noktaya yayın yönlendirme daemonu, net/yönlendirilmiş paket veya bağlantı noktası kullanılarak yüklenebilir. Bu daemon, DVMRP çok noktaya yayın yönlendirme protokolünü uygular ve tünelleri ve DVMRP'yi ayarlamak için /usr/local/etc/mrouted.conf dosyası düzenlenerek yapılandırılır. Mrouted'un kurulumu ayrıca map-mbone ve mrinfo'nun yanı sıra ilişkili man sayfalarını da yükler. Yapılandırma örnekleri için bunlara bakın.

DVMRP, birçok çok noktaya yayın kurulumunda büyük ölçüde PIM protokolü ile değiştirilmiştir. Daha fazla bilgi için pim(4) sayfasına bakın.

33.3. Kablosuz Ağ

33.3.1. Kablosuz Ağ Temelleri

Çoğu kablosuz ağ IEEE® 802.11 standartlarını temel alır. Temel bir kablosuz ağ, 2.4GHz veya 5GHz bandında yayın yapan radyolarla iletişim kuran birden fazla istasyondan oluşur, ancak bu yerel ayara göre değişir ve ayrıca 2.3GHz ve 4.9GHz aralıklarında iletişimi etkinleştirmek için değişmektedir.

802.11 ağları iki şekilde düzenlenir. Altyapı modunda, bir istasyon kendisiyle ilişkilendirilen diğer tüm istasyonlarla birlikte bir ana istasyon görevi görür, ağ BSS olarak bilinir ve ana istasyon bir erişim noktası (AP) olarak adlandırılır. BSS'de tüm iletişim AP'den geçer; bir istasyon başka bir kablosuz istasyonla iletişim kurmak istediğinde bile, mesajların AP'den geçmesi gerekir. İkinci ağ biçiminde, ana yoktur ve istasyonlar doğrudan iletişim kurar. Bu ağ biçimine IBSS denir ve genellikle geçici bir ağ olarak bilinir.

802.11 ağları ilk olarak IEEE® 2.4 ve 802.11b standardı tarafından tanımlanan protokoller kullanılarak 802,11 GHz bandında dağıtılmıştır. Bu özellikler, iletişim çeşitli hızlarda gerçekleşebileceğinden, çerçeveleme ve iletim hızları dahil olmak üzere çalışma frekanslarını ve MAC katmanı özelliklerini içerir. Daha sonra, 802.11a standardı, farklı sinyal mekanizmaları ve daha yüksek iletim hızları dahil olmak üzere 5GHz bandında çalışmayı tanımladı. Daha sonra, 802.11g standardı, 802.11b ağlarıyla geriye dönük olarak uyumlu olacak şekilde 2.4GHz bandında 802.11a sinyal ve iletim mekanizmalarının kullanımını tanımladı.

Temel iletim tekniklerinden ayrı olarak, 802.11 ağları çeşitli güvenlik mekanizmalarına sahiptir. Orijinal 802.11 belirtimleri, WEP adı verilen basit bir güvenlik protokolünü tanımladı. Bu protokol, bir ağda iletilen verileri kodlamak için sabit bir önceden paylaşılan anahtar ve RC4 şifreleme şifresi kullanır. İstasyonların iletişim kurabilmesi için sabit anahtar üzerinde hemfikir olmaları gerekir. Bu şemanın kolayca kırıldığı gösterildi ve şimdi geçici kullanıcıları ağlara katılmaktan caydırmak dışında nadiren kullanılıyor. Geçerli güvenlik uygulaması, yeni şifreleme şifrelerini ve istasyonların kimliğini bir erişim noktasında doğrulamak ve veri iletişimi için anahtar alışverişinde bulunmak üzere ek bir protokol tanımlayan IEEE® 802.11i belirtimi tarafından verilmiştir. Şifreleme anahtarları düzenli aralıklarla yenilenir ve izinsiz giriş girişimlerini algılamak ve bunlara karşı koymak için mekanizmalar vardır. Kablosuz ağlarda yaygın olarak kullanılan bir başka güvenlik protokolü belirtimi, 802.11i'nin öncüsü olan WPA olarak adlandırılır. WPA, 802.11i'de bulunan gereksinimlerin bir alt kümesini belirtir ve eski donanımda uygulanmak üzere tasarlanmıştır. Özellikle, WPA yalnızca özgün WEP şifresinden türetilen TKIP şifresini gerektirir. 802.11i, TKIP kullanımına izin verir, ancak verileri şifrelemek için daha güçlü bir şifre olan AES-CCM için destek gerektirir. AES şifresi WPA'da gerekli değildi, çünkü eski donanıma uygulanamayacak kadar hesaplama açısından maliyetli olduğu düşünülüyordu.

Dikkat edilmesi gereken diğer standart ise 802.11e'dir. Bir 802.11 ağında IP üzerinden video ve ses akışı (VoIP) gibi multimedya uygulamalarını dağıtmak için protokolleri tanımlar. 802.11i gibi, 802.11e de bir endüstri grubu tarafından 802.11e'nin bir alt kümesi olarak tanımlanan WME (daha sonra WMM olarak yeniden adlandırıldı) olarak adlandırılan ve 802.11e'nin son onayını beklerken multimedya uygulamalarını etkinleştirmek için şimdi dağıtılabilen bir öncü belirtime sahiptir. 802.11e ve WME/WMM hakkında bilinmesi gereken en önemli şey, Hizmet Kalitesi (QoS) protokolleri ve gelişmiş medya erişim protokolleri aracılığıyla kablosuz ağ üzerinden öncelikli trafik sağlamasıdır. Bu protokollerin doğru uygulanması, yüksek hızda veri patlaması ve öncelikli trafik akışı sağlar.

FreeBSD, 802.11a, 802.11b ve 802.11g kullanarak çalışan ağları destekler. WPA ve 802.11i güvenlik protokolleri de benzer şekilde desteklenir (11a, 11b ve 11g'den herhangi biriyle birlikte) ve WME/WMM protokollerinin gerektirdiği QoS ve trafik önceliği sınırlı sayıda kablosuz aygıt için desteklenir.

33.3.2. Hızlı Başlangıç

Bir bilgisayarı varolan bir kablosuz ağa bağlamak çok yaygın bir durumdur. Bu yordam gerekli adımları gösterir.

  1. Kablosuz ağ için SSID (Hizmet Kümesi Tanımlayıcısı) ve PSK (Önceden Paylaşılan Anahtar) değerlerini ağ yöneticisinden edinin.

  2. Kablosuz bağdaştırıcıyı tanımlayın. FreeBSD JENERIK çekirdeği, birçok yaygın kablosuz bağdaştırıcı için sürücüler içerir. Kablosuz bağdaştırıcı bu modellerden biriyse, sysctl(8) değişkeninde listelenir:net.wlan.devices

    % sysctl net.wlan.devices

    Bir kablosuz bağdaştırıcı listede yoksa, ek bir çekirdek modülü gerekebilir veya FreeBSD tarafından desteklenmeyen bir model olabilir.

    Bu örnekte Atheros kablosuz adaptörü gösterilmektedir.ath0

  3. Bu ağ için /etc/wpa_supplicant.conf dosyasına bir girdi ekleyin. Dosya yoksa, oluşturun. myssid ve mypsk değerlerini ağ yöneticisi tarafından sağlanan SSID ve PSK ile değiştirin.

    network={
    ssid="myssid"
    psk="mypsk"
    }
  4. Başlangıçta ağı yapılandırmak için /etc/rc.conf dosyasına girdiler ekleyin:

    wlans_ath0="wlan0"
    ifconfig_wlan0="WPA SYNCDHCP"
  5. Ağa bağlanmak için bilgisayarı yeniden başlatın veya ağ hizmetini yeniden başlatın:

    # service netif restart

33.3.3. Temel Kurulum

33.3.3.1. Çekirdek Yapılandırması

Kablosuz ağı kullanmak için, bir kablosuz ağ kartına ihtiyaç vardır ve çekirdeğin uygun kablosuz ağ desteğiyle yapılandırılması gerekir. Çekirdek birden fazla modüle ayrılmıştır, böylece yalnızca gerekli desteğin yapılandırılması gerekir.

En yaygın kullanılan kablosuz cihazlar, Atheros tarafından üretilen parçaları kullananlardır. Bu aygıtlar ath(4) tarafından desteklenir ve /boot/loader.conf dosyasına aşağıdaki satırın eklenmesini gerektirir:

if_ath_load="YES"

Atheros sürücüsü üç ayrı parçaya ayrılmıştır: sürücü (ath(4)), çipe özgü işlevleri işleyen donanım destek katmanı (ath_hal(4)) ve kareleri iletme hızını seçmek için bir algoritma. Bu destek çekirdek modülleri olarak yüklendiğinde, tüm bağımlılıklar otomatik olarak işlenir. Farklı türde bir kablosuz aygıta yönelik desteği yüklemek için, bu aygıtın modülünü belirtin. Bu örnek, Intersil Prizma parçaları (wi(4)) sürücüsünü temel alan aygıtlar içindir:

if_wi_load="YES"

Bu bölümdeki örneklerde ath(4) aygıtı kullanılır ve örneklerdeki aygıt adı yapılandırmaya göre değiştirilmelidir. Mevcut kablosuz sürücülerin ve desteklenen bağdaştırıcıların bir listesi, FreeBSD web sitesinin Sürüm Bilgileri sayfasında bulunan FreeBSD Donanım Notları'nda bulunabilir. Kablosuz aygıt için yerel bir FreeBSD sürücüsü yoksa, Windows® sürücüsünü NDIS sürücü sarmalayıcısının yardımıyla kullanmak mümkün olabilir.

Ayrıca, kullanılacak güvenlik protokolleri için şifreleme desteği uygulayan modüllerin yüklenmesi gerekir. Bunların, wlan(4) modülü tarafından isteğe bağlı olarak dinamik olarak yüklenmesi amaçlanmıştır, ancak şimdilik manuel olarak yapılandırılmaları gerekir. Aşağıdaki modüller kullanılabilir: wlan_wep(4), wlan_ccmp(4) ve wlan_tkip(4)wlan_ccmp(4) ve wlan_tkip(4) sürücüleri yalnızca WPA veya 802.11i güvenlik protokollerini kullanırken gereklidir. Ağ şifreleme kullanmıyorsa, wlan_wep(4) desteği gerekmez. Bu modülleri önyükleme zamanında yüklemek için /boot/loader.conf dosyasına aşağıdaki satırları ekleyin:

wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"

Bu bilgiler /boot/loader.conf dosyasına eklendikten sonra, FreeBSD kutusunu yeniden başlatın. Alternatif olarak, kldload(8) kullanarak modülleri elle yükleyin.

Modülleri kullanmak istemeyen kullanıcılar için, özel bir çekirdek yapılandırma dosyasına aşağıdaki satırları ekleyerek bu sürücüleri çekirdeğe derlemek mümkündür:

device wlan                 # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device ath # Atheros pci/cardbus NIC's
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath

Çekirdek yapılandırma dosyasındaki bu bilgilerle çekirdeği yeniden derleyin ve FreeBSD makinesini yeniden başlatın.

Kablosuz aygıtla ilgili bilgiler önyükleme iletilerinde aşağıdaki gibi görünmelidir:

ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1
ath0: [ITHREAD]
ath0: AR2413 mac 7.9 RF2413 phy 4.5

33.3.3.2. Doğru Bölgeyi Ayarlama

Düzenleyici durum dünyanın çeşitli yerlerinde farklı olduğundan, hangi kanalların kullanılabileceği konusunda doğru bilgiye sahip olmak için bulunduğunuz yere uygulanan alan adlarını doğru bir şekilde ayarlamak gerekir.

Kullanılabilir bölge tanımları /etc/regdomain.xml içinde bulunabilir. Verileri çalışma zamanında ayarlamak için şunu kullanın:ifconfig

# ifconfig wlan0 regdomain ETSI country AT

Ayarları kalıcı hale getirmek için /etc/rc.conf dosyasına ekleyin:

# sysrc create_args_wlan0="country AT regdomain ETSI"

33.3.4. Altyapı Modu

Altyapı (BSS) modu, genellikle kullanılan moddur. Bu modda, bir dizi kablosuz erişim noktası kablolu bir ağa bağlanır. Her kablosuz ağın SSID adı verilen kendi adı vardır. Kablosuz istemciler kablosuz erişim noktalarına bağlanır.

33.3.4.1. FreeBSD İstemcileri

33.3.4.1.1. Erişim Noktaları Nasıl Bulunur

Kullanılabilir ağları taramak için ifconfig(8) komutunu kullanın. Bu isteğin tamamlanması birkaç dakika sürebilir, çünkü sistemin kullanılabilir her kablosuz frekansa geçmesini ve kullanılabilir erişim noktalarını araştırmasını gerektirir. Yalnızca süper kullanıcı tarama başlatabilir:

# ifconfig wlan0 create wlandev ath0
# ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 11 54M -90:96 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPA

Arabirim taranmadan önce olmalıdır. Sonraki tarama istekleri, arabirimin yeniden yukarı olarak işaretlenmesini gerektirmez.up

Bir tarama isteğinin çıktısı, bulunan her BSS/IBSS ağını listeler. Ağın adını listelemenin yanı sıra, çıktı ayrıca erişim noktasının MAC adresi olan , 'yi de gösterir. Alan, her ağın türünü ve orada çalışan istasyonların yeteneklerini tanımlar (daha fazla ayrıntı için in ifconfig(8) tanımına bakın).SSIDBSSIDCAPSlist scan

Bilinen ağların geçerli listesini aşağıdakilerle de görüntüleyebilirsiniz:

# ifconfig wlan0 list scan

Bu bilgiler bağdaştırıcı tarafından otomatik olarak veya bir istekle el ile güncelleştirilebilir. Eski veriler önbellekten otomatik olarak kaldırılır, bu nedenle daha fazla tarama yapılmadığı sürece zamanla bu liste küçülebilir.scan

33.3.4.1.2. Temel Ayarlar

Bu bölüm, kablosuz ağ bağdaştırıcısının FreeBSD'de şifreleme olmadan nasıl çalışacağına dair basit bir örnek sağlar. Bu kavramlara aşina olduktan sonra, kablosuz ağı kurmak için WPA'yı kullanmanız şiddetle tavsiye edilir.

Kablosuz ağ yapılandırmak için üç temel adım vardır: bir erişim noktası seçin, istasyonun kimliğini doğrulayın ve bir IP adresi yapılandırın. Aşağıdaki bölümlerde her adım ele alınmaktadır.

33.3.4.1.2.1. Erişim Noktası Seçme

Çoğu zaman, sistemin yerleşik buluşsal yöntemleri kullanarak bir erişim noktası seçmesine izin vermek yeterlidir. Bu, bir arabirim yukarı olarak işaretlendiğinde veya /etc/rc.conf dosyasında listelendiğinde varsayılan davranıştır:

wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"

Birden çok erişim noktası varsa, SSID'si tarafından belirli bir erişim noktası seçilebilir:

wlans_ath0="wlan0"
ifconfig_wlan0="ssid your_ssid_here DHCP"

Genellikle dolaşımı basitleştirmek için yapılan aynı SSID'ye sahip birden çok erişim noktasının bulunduğu bir ortamda, belirli bir aygıtla ilişkilendirmek gerekebilir. Bu durumda, erişim noktasının BSSID'si SSID ile veya SSID olmadan belirtilebilir:

wlans_ath0="wlan0"
ifconfig_wlan0="ssid your_ssid_here bssid xx:xx:xx:xx:xx:xx DHCP"

Erişim noktası seçimini sınırlamanın, sistemin tarayacağı frekans kümesini sınırlamak gibi başka yolları da vardır. Bu, çok bantlı bir kablosuz kart için yararlı olabilir, çünkü tüm olası kanalları taramak zaman alabilir. İşlemi belirli bir bantla sınırlamak için parametreyi kullanın:mode

wlans_ath0="wlan0"
ifconfig_wlan0="mode 11g ssid your_ssid_here DHCP"

Bu örnek, kartı yalnızca 802,11 GHz frekansları için tanımlanan 2,4 g'de çalışmaya zorlar, böylece herhangi bir 5 GHz kanalı dikkate alınmaz. Bu, işlemi belirli bir frekansa kilitleyen parametre ve tarama için kanalların bir listesini belirtmek üzere parametre ile de elde edilebilir. Bu parametreler hakkında daha fazla bilgi ifconfig(8) bölümünde bulunabilir.channelchanlist

33.3.4.1.2.2. Kimlik Doğrulama

Bir erişim noktası seçildikten sonra, istasyonun veri aktarabilmesi için önce kimliğini doğrulaması gerekir. Kimlik doğrulama birkaç şekilde gerçekleşebilir. En yaygın şema olan açık kimlik doğrulama, herhangi bir istasyonun ağa katılmasına ve iletişim kurmasına izin verir. Bu, bir kablosuz ağ ilk kez kurulduğunda sınama amacıyla kullanılacak kimlik doğrulamasıdır. Diğer düzenler, veri trafiğinin önceden paylaşılan anahtarlar veya gizli diziler ya da RADIUS gibi arka uç hizmetlerini içeren daha karmaşık düzenler kullanılarak akabilmesi için önce şifreleme el sıkışmalarının tamamlanmasını gerektirir. Açık kimlik doğrulaması varsayılan ayardır. Bir sonraki en yaygın kurulum, WPA-PSK'da açıklanan WPA Kişisel olarak da bilinen WPA-PSK'dır.

Erişim noktası için Apple® AirPort® Extreme baz istasyonu kullanılıyorsa, WEP anahtarıyla birlikte paylaşılan anahtar kimlik doğrulamasının yapılandırılması gerekir. Bu, /etc/rc.conf dosyasında veya wpa_supplicant(8) kullanılarak yapılandırılabilir. Tek bir AirPort® baz istasyonu için erişim, aşağıdakilerle yapılandırılabilir:

wlans_ath0="wlan0"
ifconfig_wlan0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"

Genel olarak, paylaşılan anahtar kimlik doğrulamasından kaçınılmalıdır, çünkü WEP anahtarı malzemesini son derece kısıtlı bir şekilde kullanır ve bu da anahtarın kırılmasını daha da kolaylaştırır. Eski aygıtlarla uyumluluk için WEP'in kullanılması gerekiyorsa, WEP'i kimlik doğrulamayla birlikte kullanmak daha iyidir. WEP hakkında daha fazla bilgiyi WEP'de bulabilirsiniz.open

33.3.4.1.2.3. DHCP ile IP Adresi Alma

Bir erişim noktası seçildikten ve kimlik doğrulama parametreleri ayarlandıktan sonra, iletişim kurmak için bir IP adresi alınmalıdır. Çoğu zaman, IP adresi DHCP üzerinden elde edilir. Bunu başarmak için /etc/rc.conf dosyasını düzenleyin ve aygıtın yapılandırmasına ekleyin:DHCP

wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"

Kablosuz arabirim artık şunları getirmeye hazırdır:

# service netif start

Arabirim çalışmaya başladıktan sonra, ath8 arabiriminin durumunu görmek için ifconfig(0) komutunu kullanın:

# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burst

Hat, kablosuz ağa bağlı olduğu anlamına gelir. Erişim noktasının MAC adresidir ve iletişimin şifrelenmediğini gösterir.status: associatedbssid 00:13:46:49:41:76authmode OPEN

33.3.4.1.2.4. Statik IP Adresi

DHCP sunucusundan bir IP adresi alınamıyorsa, sabit bir IP adresi ayarlayın. Yukarıda gösterilen anahtar kelimeyi adres bilgileriyle değiştirin. Erişim noktasını seçmek için diğer parametreleri koruduğunuzdan emin olun:DHCP

wlans_ath0="wlan0"
ifconfig_wlan0="inet 192.168.1.100 netmask 255.255.255.0 ssid your_ssid_here"
33.3.4.1.3. WPA

Wi-Fi Korumalı Erişim (WPA), uygun kimlik doğrulama eksikliğini ve WEP'in zayıflığını gidermek için 802.11 ağlarıyla birlikte kullanılan bir güvenlik protokolüdür. WPA, 802.1X kimlik doğrulama protokolünden yararlanır ve veri bütünlüğü için WEP yerine birkaç şifreden birini kullanır. WPA'nın gerektirdiği tek şifre, Geçici Anahtar Bütünlüğü Protokolü'dür (TKIP). TKIP, WEP tarafından kullanılan temel RC4 şifresini, bütünlük denetimi, kurcalama algılama ve algılanan izinsiz girişlere yanıt vermeye yönelik önlemler ekleyerek genişleten bir şifredir. TKIP, yalnızca yazılım değişikliği ile eski donanımlar üzerinde çalışacak şekilde tasarlanmıştır. Güvenliği artıran, ancak yine de saldırılara karşı tamamen bağışık olmayan bir uzlaşmayı temsil eder. WPA ayrıca TKIP'ye alternatif olarak AES-CCMP şifresini belirtir ve mümkün olduğunda tercih edilir. Bu belirtim için, WPA2 veya RSN terimi yaygın olarak kullanılır.

WPA, kimlik doğrulama ve şifreleme protokollerini tanımlar. Kimlik doğrulama en yaygın olarak iki teknikten biri kullanılarak yapılır: 802.1X ve RADIUS gibi bir arka uç kimlik doğrulama hizmeti veya önceden paylaşılan bir gizli kod dizesi kullanarak istasyon ile erişim noktası arasında en az el sıkışması. İlki genellikle WPA Enterprise olarak adlandırılır ve ikincisi WPA Kişisel olarak bilinir. Çoğu kişi kablosuz ağları için bir RADIUS arka uç sunucusu kurmayacağından, WPA-PSK, WPA için en sık karşılaşılan yapılandırmadır.

Kablosuz bağlantının kontrolü ve bir sunucuyla anahtar anlaşması veya kimlik doğrulaması wpa_supplicant(8) kullanılarak yapılır. Bu programın çalışması için /etc/wpa_supplicant.conf adlı bir yapılandırma dosyası gerekir. Bu dosyayla ilgili daha fazla bilgi wpa_supplicant.conf(5) adresinde bulunabilir.

33.3.4.1.3.1. WPA-PSK

WPA Kişisel olarak da bilinen WPA-PSK, belirli bir paroladan oluşturulan ve kablosuz ağda ana anahtar olarak kullanılan önceden paylaşılan bir anahtarı (PSK) temel alır. Bu, her kablosuz kullanıcının aynı anahtarı paylaşacağı anlamına gelir. WPA-PSK, kimlik doğrulama sunucusunun kullanılmasının mümkün olmadığı veya istenmediği küçük ağlar için tasarlanmıştır.

Her zaman yeterince uzun ve zengin bir alfabeden yapılmış güçlü şifreler kullanın, böylece kolayca tahmin edilmeyecek veya saldırıya uğramayacaktır.

İlk adım, /etc/wpa_supplicant.conf dosyasının SSID ve ağın önceden paylaşılan anahtarıyla yapılandırılmasıdır:

network={
ssid="freebsdap"
psk="freebsdmall"
}

Ardından, /etc/rc.conf dosyasında, kablosuz aygıt yapılandırmasının WPA ile yapılacağını ve IP adresinin DHCP ile alınacağını belirtin:

wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"

Ardından, arayüzü açın:

# service netif start
Starting wpa_supplicant.
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL

Veya, /etc/wpa_supplicant.conf dosyasındaki bilgileri kullanarak arabirimi el ile yapılandırmayı deneyin:

# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]

Bir sonraki işlem, DHCP sunucusundan IP adresini almak için dhclient(8) öğesini başlatmaktır:

# dhclient wlan0
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL

Eğer /etc/rc.conf dosyasının bir girişi varsa, dhclient(8) wpa_supplicant(8) erişim noktasıyla ilişkilendirildikten sonra otomatik olarak başlatılır.ifconfig_wlan0="DHCP"

DHCP mümkün değilse veya istenmiyorsa, wpa_supplicant(8) istasyonun kimliğini doğruladıktan sonra statik bir IP adresi ayarlayın:

# ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL

When DHCP is not used, the default gateway and the nameserver also have to be manually set:

# route add default your_default_router
# echo "nameserver your_DNS_server" >> /etc/resolv.conf
33.3.4.1.3.2. WPA with EAP-TLS

The second way to use WPA is with an 802.1X backend authentication server. In this case, WPA is called WPA Enterprise to differentiate it from the less secure WPA Personal. Authentication in WPA Enterprise is based on the Extensible Authentication Protocol (EAP).

EAP does not come with an encryption method. Instead, EAP is embedded inside an encrypted tunnel. There are many EAP authentication methods, but EAP-TLS, EAP-TTLS, and EAP-PEAP are the most common.

EAP with Transport Layer Security (EAP-TLS) is a well-supported wireless authentication protocol since it was the first EAP method to be certified by the Wi-Fi Alliance. EAP-TLS requires three certificates to run: the certificate of the Certificate Authority (CA) installed on all machines, the server certificate for the authentication server, and one client certificate for each wireless client. In this EAP method, both the authentication server and wireless client authenticate each other by presenting their respective certificates, and then verify that these certificates were signed by the organization’s CA.

As previously, the configuration is done via /etc/wpa_supplicant.conf:

network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}
This field indicates the network name (SSID).
This example uses the RSN IEEE® 802.11i protocol, also known as WPA2.
The line refers to the key management protocol to use. In this example, it is WPA using EAP authentication.key_mgmt
This field indicates the EAP method for the connection.
The field contains the identity string for EAP.identity
The field indicates the pathname of the CA certificate file. This file is needed to verify the server certificate.ca_cert
The line gives the pathname to the client certificate file. This certificate is unique to each wireless client of the network.client_cert
The field is the pathname to the client certificate private key file.private_key
The field contains the passphrase for the private key.private_key_passwd

Then, add the following lines to /etc/rc.conf:

wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"

The next step is to bring up the interface:

# service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL

It is also possible to bring up the interface manually using wpa_supplicant(8) and ifconfig(8).

33.3.4.1.3.3. WPA with EAP-TTLS

With EAP-TLS, both the authentication server and the client need a certificate. With EAP-TTLS, a client certificate is optional. This method is similar to a web server which creates a secure SSL tunnel even if visitors do not have client-side certificates. EAP-TTLS uses an encrypted TLS tunnel for safe transport of the authentication data.

The required configuration can be added to /etc/wpa_supplicant.conf:

network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}
This field specifies the EAP method for the connection.
The field contains the identity string for EAP authentication inside the encrypted TLS tunnel.identity
The field contains the passphrase for the EAP authentication.password
The field indicates the pathname of the CA certificate file. This file is needed to verify the server certificate.ca_cert
This field specifies the authentication method used in the encrypted TLS tunnel. In this example, EAP with MD5-Challenge is used. The "inner authentication" phase is often called "phase2".

Next, add the following lines to /etc/rc.conf:

wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"

The next step is to bring up the interface:

# service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL
33.3.4.1.3.4. WPA with EAP-PEAP

PEAPv0/EAP-MSCHAPv2 en yaygın PEAP yöntemidir. Bu bölümde, PEAP terimi bu yönteme atıfta bulunmak için kullanılmıştır.

Korumalı EAP (PEAP), EAP-TTL'ye alternatif olarak tasarlanmıştır ve EAP-TLS'den sonra en çok kullanılan EAP standardıdır. Karma işletim sistemlerine sahip bir ağda, PEAP, EAP-TLS'den sonra en çok desteklenen standart olmalıdır.

PEAP, istemci ile kimlik doğrulama sunucusu arasında şifrelenmiş bir TLS tüneli oluşturarak istemcilerin kimliğini doğrulamak için sunucu tarafı sertifikası kullandığından, EAP-TTLS'ye benzer, bu da sonraki kimlik doğrulama bilgilerinin değişimini korur. PEAP kimlik doğrulaması, kullanıcı adını açık olarak yayınladığı ve şifreli TLS tünelinde yalnızca parola gönderildiği için EAP-TTLS'den farklıdır. EAP-TTLS, hem kullanıcı adı hem de parola için TLS tünelini kullanır.

EAP-PEAP ile ilgili ayarları yapılandırmak için /etc/wpa_supplicant.conf dosyasına aşağıdaki satırları ekleyin:

network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
Bu alan, bağlantı için EAP yöntemini belirtir.
Alan, şifreli TLS tüneli içinde EAP kimlik doğrulaması için kimlik dizesini içerir.identity
Alan, EAP kimlik doğrulamasının parolasını içerir.password
Alan, CA sertifika dosyasının yol adını gösterir. Bu dosya, sunucu sertifikasını doğrulamak için gereklidir.ca_cert
Bu alan, kimlik doğrulamanın ilk aşaması olan TLS tünelinin parametrelerini içerir. Kullanılan kimlik doğrulama sunucusuna göre, kimlik doğrulaması için belirli bir etiket belirtin. Çoğu zaman, etiket kullanılarak ayarlanan "istemci EAP şifrelemesi" olacaktır. Daha fazla bilgiyi wpa_supplicant.conf(5) adresinde bulabilirsiniz.peaplabel=0
Bu alan, şifrelenmiş TLS tünelinde kullanılan kimlik doğrulama protokolünü belirtir. PEAP durumunda, bu .auth=MSCHAPV2

/etc/rc.conf dosyasına aşağıdakileri ekleyin:

wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"

Ardından, arayüzü açın:

# service netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL
33.3.4.1.4. WEP

Kabloluya Eşdeğer Gizlilik (WEP), orijinal 802.11 standardının bir parçasıdır. Kimlik doğrulama mekanizması yoktur, sadece kolayca kırılabilen zayıf bir erişim kontrolü şekli vardır.

WEP, ifconfig(8) kullanılarak ayarlanabilir:

# ifconfig wlan0 create wlandev ath0
# ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \
ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012
  • İletimde hangi WEP anahtarının kullanılacağını belirtir. Bu örnekte üçüncü anahtar kullanılmıştır. Bu, erişim noktasındaki ayarla eşleşmelidir. Erişim noktası tarafından hangi anahtarın kullanıldığından emin değilseniz, bu değer için (ilk anahtar) deneyin.weptxkey1

  • WEP anahtarlarından birini seçer. index:key biçiminde olmalıdır. Anahtar varsayılan olarak kullanılır; dizinin yalnızca ilk anahtar dışında bir anahtar kullanılırken ayarlanması gerekir.wepkey1

    Erişim noktasında kullanılmak üzere yapılandırılmış anahtarla değiştirin.0x3456789012

Daha fazla bilgi için ifconfig(8) bölümüne bakın.

wpa_supplicant(8) özelliği, WEP ile kablosuz arabirim yapılandırmak için kullanılabilir. Yukarıdaki örnek, /etc/wpa_supplicant.conf dosyasına aşağıdaki satırlar eklenerek ayarlanabilir:

network={
ssid="my_net"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}

Sonra:

# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76

33.3.5. Geçici Mod

Geçici mod olarak da adlandırılan IBSS modu, noktadan noktaya bağlantılar için tasarlanmıştır. Örneğin, makineler arasında geçici bir ağ kurmak için ve , iki IP adresi ve bir SSID seçin.AB

Üzerinde:A

# ifconfig wlan0 create wlandev ath0 wlanmode adhoc
# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burst

Parametre, arabirimin IBSS modunda çalıştığını gösterir.adhoc

B şimdi tespit edebilmelidir:A

# ifconfig wlan0 create wlandev ath0 wlanmode adhoc
# ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME

Çıktıdaki giriş, geçici modda olduğunu onaylar. Şimdi, farklı bir IP adresiyle yapılandırın:IAB

# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burst

Her ikisi de artık bilgi alışverişinde bulunmaya hazır.AB

33.3.6. FreeBSD Ana Bilgisayar Erişim Noktaları

FreeBSD, bir donanım AP'si satın alma veya geçici bir ağ çalıştırma ihtiyacını ortadan kaldıran bir Erişim Noktası (AP) görevi görebilir. Bu, bir FreeBSD makinesi İnternet gibi başka bir ağa ağ geçidi görevi gördüğünde özellikle yararlı olabilir.

33.3.6.1. Temel Ayarlar

Bir FreeBSD makinesini AP olarak yapılandırmadan önce, çekirdeğin kablosuz kart ve kullanılan güvenlik protokolleri için uygun ağ desteği ile yapılandırılması gerekir. Daha fazla ayrıntı için Temel Kurulum bölümüne bakın.

Windows® sürücüleri için NDIS sürücü sarmalayıcısı şu anda AP işlemini desteklememektedir. Yalnızca yerel FreeBSD kablosuz sürücüleri AP modunu destekler.

Kablosuz ağ desteği yüklendikten sonra, kablosuz aygıtın hostap modu olarak da bilinen ana bilgisayar tabanlı erişim noktası modunu destekleyip desteklemediğini kontrol edin:

# ifconfig wlan0 create wlandev ath0
# ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>

Bu çıktı kartın özelliklerini gösterir. Kelime, bu kablosuz kartın bir AP gibi davranabileceğini doğrulamaktadır. Desteklenen çeşitli şifreler de listelenir: WEP, TKIP ve AES. Bu bilgiler, AP'de hangi güvenlik protokollerinin kullanılabileceğini gösterir.HOSTAP

Kablosuz aygıt yalnızca ağ sahte aygıtının oluşturulması sırasında hostap moduna geçirilebilir, bu nedenle önce önceden oluşturulmuş bir aygıtın yok edilmesi gerekir:

# ifconfig wlan0 destroy

daha sonra diğer parametreleri ayarlamadan önce doğru seçenekle yeniden oluşturulur:

# ifconfig wlan0 create wlandev ath0 wlanmode hostap
# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1

wlan8 arabiriminin durumunu görmek için ifconfig(0) komutunu yeniden kullanın:

# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burst dtimperiod 1 -dfs

Parametre, arabirimin ana bilgisayar tabanlı erişim noktası modunda çalıştığını gösterir.hostap

Arayüz yapılandırması, /etc/rc.conf dosyasına aşağıdaki satırlar eklenerek önyükleme sırasında otomatik olarak yapılabilir:

wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1"

33.3.6.2. Kimlik Doğrulama veya Şifreleme Olmadan Ana Bilgisayar Tabanlı Erişim Noktası

Herhangi bir kimlik doğrulama veya şifreleme olmadan bir AP çalıştırmanız önerilmese de, AP'nin çalışıp çalışmadığını kontrol etmenin basit bir yoludur. Bu yapılandırma, istemci sorunlarında hata ayıklamak için de önemlidir.

AP yapılandırıldıktan sonra, AP'yi bulmak için başka bir kablosuz makineden tarama başlatın:

# ifconfig wlan0 create wlandev ath0
# ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME

İstemci makine AP'yi buldu ve onunla ilişkilendirilebilir:

# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burst

33.3.6.3. WPA2 Ana Bilgisayar Tabanlı Erişim Noktası

Bu bölüm, WPA2 güvenlik protokolünü kullanarak bir FreeBSD erişim noktası kurmaya odaklanmaktadır. WPA ve WPA tabanlı kablosuz istemcilerin yapılandırmasıyla ilgili daha fazla ayrıntı WPA'de bulunabilir.

Hostapd(8) arka plan programı, WPA2 etkin AP'de istemci kimlik doğrulaması ve anahtar yönetimi ile ilgilenmek için kullanılır.

Aşağıdaki yapılandırma işlemleri, AP görevi gören FreeBSD makinesinde gerçekleştirilir. AP düzgün çalıştıktan sonra, hostapd(8) önyüklemede /etc/rc.conf dosyasındaki şu satırla otomatik olarak başlatılabilir:

hostapd_enable="YES"

Hostapd'yi(8) yapılandırmayı denemeden önce, Temel Ayarlar'da sunulan temel ayarları yapılandırın.

33.3.6.3.1. WPA2-PSK

WPA2-PSK, bir arka uç kimlik doğrulama sunucusunun kullanılmasının mümkün olmadığı veya istenmediği küçük ağlar için tasarlanmıştır.

Yapılandırma /etc/hostapd.conf dosyasında yapılır:

interface=wlan0                  
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=2
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
Wireless interface used for the access point.
Level of verbosity used during the execution of hostapd(8). A value of represents the minimal level.1
Pathname of the directory used by hostapd(8) to store domain socket files for communication with external programs such as hostapd_cli(8). The default value is used in this example.
The group allowed to access the control interface files.
The wireless network name, or SSID, that will appear in wireless scans.
Enable WPA and specify which WPA authentication protocol will be required. A value of configures the AP for WPA2 and is recommended. Set to only if the obsolete WPA is required.21
ASCII passphrase for WPA authentication.
The key management protocol to use. This example sets WPA-PSK.
Encryption algorithms accepted by the access point. In this example, only the CCMP (AES) cipher is accepted. CCMP is an alternative to TKIP and is strongly preferred when possible. TKIP should be allowed only when there are stations incapable of using CCMP.

The next step is to start hostapd(8):

# service hostapd forcestart
# ifconfig wlan0
wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 04:f0:21:16:8e:10
inet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap>
status: running
ssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10
country US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2
AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6
scanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst
dtimperiod 1 -dfs
groups: wlan

Once the AP is running, the clients can associate with it. See WPA for more details. It is possible to see the stations associated with the AP using .ifconfig wlan0 list sta

33.3.6.4. WEP Host-based Access Point

It is not recommended to use WEP for setting up an AP since there is no authentication mechanism and the encryption is easily cracked. Some legacy wireless cards only support WEP and these cards will only support an AP without authentication or encryption.

The wireless device can now be put into hostap mode and configured with the correct SSID and IP address:

# ifconfig wlan0 create wlandev ath0 wlanmode hostap
# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \
ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g
  • The indicates which WEP key will be used in the transmission. This example uses the third key as key numbering starts with . This parameter must be specified in order to encrypt the data.weptxkey1

  • The sets the selected WEP key. It should be in the format index:key. If the index is not given, key is set. The index needs to be set when using keys other than the first key.wepkey1

Use ifconfig(8) to see the status of the wlan0 interface:

# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 4 (2427 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit
txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs

From another wireless machine, it is now possible to initiate a scan to find the AP:

# ifconfig wlan0 create wlandev ath0
# ifconfig wlan0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS

In this example, the client machine found the AP and can associate with it using the correct parameters. See WEP for more details.

33.3.7. Using Both Wired and Wireless Connections

A wired connection provides better performance and reliability, while a wireless connection provides flexibility and mobility. Laptop users typically want to roam seamlessly between the two types of connections.

On FreeBSD, it is possible to combine two or even more network interfaces together in a "failover" fashion. This type of configuration uses the most preferred and available connection from a group of network interfaces, and the operating system switches automatically when the link state changes.

Link aggregation and failover is covered in Link Aggregation and Failover and an example for using both wired and wireless connections is provided at Failover Mode Between Ethernet and Wireless Interfaces.

33.3.8. Troubleshooting

This section describes a number of steps to help troubleshoot common wireless networking problems.

  • If the access point is not listed when scanning, check that the configuration has not limited the wireless device to a limited set of channels.

  • If the device cannot associate with an access point, verify that the configuration matches the settings on the access point. This includes the authentication scheme and any security protocols. Simplify the configuration as much as possible. If using a security protocol such as WPA or WEP, configure the access point for open authentication and no security to see if traffic will pass.

    Debugging support is provided by wpa_supplicant(8). Try running this utility manually with and look at the system logs.-dd

  • Once the system can associate with the access point, diagnose the network configuration using tools like ping(8).

  • There are many lower-level debugging tools. Debugging messages can be enabled in the 802.11 protocol support layer using wlandebug(8). For example, to enable console messages related to scanning for access points and the 802.11 protocol handshakes required to arrange communication:

    # wlandebug -i wlan0 +scan+auth+debug+assoc
    net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>

    Many useful statistics are maintained by the 802.11 layer and , found in /usr/src/tools/tools/net80211, will dump this information. These statistics should display all errors identified by the 802.11 layer. However, some errors are identified in the device drivers that lie below the 802.11 layer so they may not show up. To diagnose device-specific problems, refer to the driver documentation.wlanstats

Yukarıdaki bilgiler sorunu açıklığa kavuşturmaya yardımcı olmazsa, bir sorun raporu gönderin ve yukarıdaki araçlardan çıktılar ekleyin.

33.4. USB Tethering

Birçok cep telefonu, veri bağlantılarını USB üzerinden paylaşma seçeneği sunar (genellikle "tethering" olarak adlandırılır). Bu özellik RNDIS, CDC veya özel bir Apple® iPhone®/iPad® protokolünden birini kullanır.

  • Android™ cihazlar genellikle urndis(4) sürücüsünü kullanır.

  • Apple® aygıtları ipheth(4) sürücüsünü kullanır.

  • Eski aygıtlar genellikle cdce(4) sürücüsünü kullanır.

Bir aygıtı takmadan önce, çekirdeğe uygun sürücüyü yükleyin:

# kldload if_urndis
# kldload if_cdce
# kldload if_ipheth

Cihaz takıldıktan sonra 0, normal bir ağ cihazı gibi kullanılabilir. Cihazda "USB tethering" seçeneğinin etkinleştirildiğinden emin olun.ue

Bu değişikliği kalıcı hale getirmek ve sürücüyü önyükleme zamanında modül olarak yüklemek için, /boot/loader.conf dosyasına aşağıdakilerin uygun satırını yerleştirin:

if_urndis_load="YES"
if_cdce_load="YES"
if_ipheth_load="YES"

33.5. Bluetooth

Bluetooth, 2 metre menzilli 4,10 GHz lisanssız bantta çalışan kişisel ağlar oluşturmak için kullanılan kablosuz bir teknolojidir. Ağlar genellikle cep telefonları, el bilgisayarları ve dizüstü bilgisayarlar gibi taşınabilir cihazlardan geçici olarak oluşturulur. Wi-Fi kablosuz teknolojisinin aksine Bluetooth, FTP benzeri dosya sunucuları, dosya itme, ses aktarımı, seri hat öykünmesi ve daha fazlası gibi daha üst düzey hizmet profilleri sunar.

Bu bölümde, FreeBSD sisteminde USB Bluetooth dongle kullanımı açıklanmaktadır. Daha sonra çeşitli Bluetooth protokollerini ve yardımcı programlarını açıklar.

33.5.1. Bluetooth Desteği Yükleme

FreeBSD'deki Bluetooth yığını, netgraph(4) çerçevesi kullanılarak uygulanır. Çok çeşitli Bluetooth USB donanım kilitleri ng_ubt(4) tarafından desteklenir. Broadcom BCM2033 tabanlı Bluetooth aygıtları ubtbcmfw(4) ve ng_ubt(4) sürücüleri tarafından desteklenir. 3Com Bluetooth PC Kartı 3CRWB60-A, ng_bt3c(4) sürücüsü tarafından desteklenir. Seri ve UART tabanlı Bluetooth cihazları sio(4), ng_h4(4) ve hcseriald(8) tarafından desteklenir.

Bir aygıtı takmadan önce, yukarıdaki sürücülerden hangisini kullandığını belirleyin ve ardından sürücüyü yükleyin. Örneğin, aygıt ng_ubt(4) sürücüsünü kullanıyorsa:

# kldload ng_ubt

Bluetooth aygıtı sistem başlangıcı sırasında sisteme bağlanacaksa, sistem sürücüyü /boot/loader.conf dosyasına ekleyerek modülü önyükleme sırasında yükleyecek şekilde yapılandırılabilir:

ng_ubt_load="YES"

Sürücü yüklendikten sonra, USB donanım kilidi takın. Sürücü yüklemesi başarılı olduysa, konsolda ve /var/log/messages içinde aşağıdakine benzer bir çıktı görünmelidir:

ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294

Bluetooth yığınını başlatmak ve durdurmak için, başlangıç komut dosyasını kullanın. Aygıtın fişini çekmeden önce yığını durdurmak iyi bir fikirdir. Bluetooth yığınının başlatılması hcsecd(8) öğesinin başlatılmasını gerektirebilir. Yığını başlatırken, çıktı aşağıdakine benzer olmalıdır:

# service bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8

33.5.2. Finding Other Bluetooth Devices

The Host Controller Interface (HCI) provides a uniform method for accessing Bluetooth baseband capabilities. In FreeBSD, a netgraph HCI node is created for each Bluetooth device. For more details, refer to ng_hci(4).

One of the most common tasks is discovery of Bluetooth devices within RF proximity. This operation is called inquiry. Inquiry and other HCI related operations are done using hccontrol(8). The example below shows how to find out which Bluetooth devices are in range. The list of devices should be displayed in a few seconds. Note that a remote device will only answer the inquiry if it is set to discoverable mode.

% hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]

The is the unique address of a Bluetooth device, similar to the MAC address of a network card. This address is needed for further communication with a device and it is possible to assign a human readable name to a . Information regarding the known Bluetooth hosts is contained in /etc/bluetooth/hosts. The following example shows how to obtain the human readable name that was assigned to the remote device:BD_ADDRBD_ADDR

% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39

If an inquiry is performed on a remote Bluetooth device, it will find the computer as "your.host.name (ubt0)". The name assigned to the local device can be changed at any time.

Remote devices can be assigned aliases in /etc/bluetooth/hosts. More information about /etc/bluetooth/hosts file might be found in bluetooth.hosts(5).

The Bluetooth system provides a point-to-point connection between two Bluetooth units, or a point-to-multipoint connection which is shared among several Bluetooth devices. The following example shows how to create a connection to a remote device:

% hccontrol -n ubt0hci create_connection BT_ADDR

create_connection accepts as well as host aliases in /etc/bluetooth/hosts.BT_ADDR

The following example shows how to obtain the list of active baseband connections for the local device:

% hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN

connection handle is useful when termination of the baseband connection is required, though it is normally not required to do this by hand. The stack will automatically terminate inactive baseband connections.

# hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]

Type for a complete listing of available HCI commands. Most of the HCI commands do not require superuser privileges.hccontrol help

33.5.3. Device Pairing

By default, Bluetooth communication is not authenticated, and any device can talk to any other device. A Bluetooth device, such as a cellular phone, may choose to require authentication to provide a particular service. Bluetooth authentication is normally done with a PIN code, an ASCII string up to 16 characters in length. The user is required to enter the same PIN code on both devices. Once the user has entered the PIN code, both devices will generate a link key. After that, the link key can be stored either in the devices or in a persistent storage. Next time, both devices will use the previously generated link key. This procedure is called pairing. Note that if the link key is lost by either device, the pairing must be repeated.

The hcsecd(8) daemon is responsible for handling Bluetooth authentication requests. The default configuration file is /etc/bluetooth/hcsecd.conf. An example section for a cellular phone with the PIN code set to is shown below:1234

device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}

PIN kodlarındaki tek sınırlama uzunluktur. Bluetooth kulaklıklar gibi bazı cihazlarda yerleşik olarak sabit bir PIN kodu olabilir. Anahtar, hcsecd(8)'i ön planda kalmaya zorlar, böylece neler olduğunu görmek kolaydır. Uzak cihazı eşleştirmeyi alacak şekilde ayarlayın ve uzak cihaza Bluetooth bağlantısını başlatın. Uzak cihaz, eşleştirmenin kabul edildiğini belirtmeli ve PIN kodunu istemelidir. hcsecd.conf dosyasında listelenen PIN kodunu girin. Şimdi bilgisayar ve uzak cihaz eşleştirildi. Alternatif olarak, eşleştirme uzak cihazda başlatılabilir.-d

hcsecd(8)'i sistem başlatıldığında otomatik olarak başlayacak şekilde yapılandırmak için /etc/rc.conf dosyasına aşağıdaki satır eklenebilir:

hcsecd_enable="YES"

Aşağıda, hcsecd(8) daemon çıktısının bir örneği verilmiştir:

hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4

33.5.4. PPP Profilleri ile Ağ Erişimi

Çevirmeli Ağ (DUN) profili, cep telefonunu çevirmeli Internet erişim sunucusuna bağlanmak üzere kablosuz modem olarak yapılandırmak için kullanılabilir. Bir bilgisayarı cep telefonundan veri aramaları alacak şekilde yapılandırmak için de kullanılabilir.

PPP profilli ağ erişimi, tek bir Bluetooth aygıtına veya birden çok Bluetooth aygıtına LAN erişimi sağlamak için kullanılabilir. Ayrıca, seri kablo öykünmesi üzerinden PPP ağını kullanarak PC'den PC'ye bağlantı sağlayabilir.

FreeBSD'de, bu profiller ppp (8) ve bir Bluetooth bağlantısını PPP'nin kullanabileceği bir şeye dönüştüren rfcomm_pppd (8) sarmalayıcı ile uygulanır. Bir profilin kullanılabilmesi için /etc/ppp/ppp.conf dosyasında yeni bir PPP etiketi oluşturulmalıdır. Örnekler için rfcomm_pppd(8)'e danışın.

Bu örnekte, rfcomm_pppd(8), DUNRFCOMM kanalında bir of ile uzak bir aygıta bağlantı açmak için kullanılır:BD_ADDR00:80:37:29:19:a4

# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup

Gerçek kanal numarası, SDP protokolü kullanılarak uzak cihazdan alınacaktır. RFCOMM kanalını elle belirtmek mümkündür ve bu durumda rfcomm_pppd(8) SDP sorgusunu gerçekleştirmez. Uzak cihazdaki RFCOMM kanalını bulmak için sdpcontrol(8) kullanın.

PPPLAN hizmetiyle ağ erişimi sağlamak için sdpd(8) çalışıyor olmalı ve /etc/ppp/ppp.conf dosyasında LAN istemcileri için yeni bir giriş oluşturulmalıdır. Örnekler için rfcomm_pppd(8)'e danışın. Son olarak, RFCOMMPPP sunucusunu geçerli bir RFCOMM kanal numarasında başlatın. RFCOMMPPP sunucusu, Bluetooth LAN hizmetini otomatik olarak yerel SDP daemonuna kaydeder. Aşağıdaki örnekte RFCOMMPPP sunucusunun nasıl başlatılacağı gösterilmektedir.

# rfcomm_pppd -s -C 7 -l rfcomm-server

33.5.5. Bluetooth Protokolleri

Bu bölümde, çeşitli Bluetooth protokollerine, işlevlerine ve ilişkili yardımcı programlara genel bir bakış sunulmaktadır.

Mantıksal Bağlantı Denetim ve Uyarlama Protokolü (L2CAP), üst katman protokollerine bağlantı odaklı ve bağlantısız veri hizmetleri sağlar. L2CAP, daha üst düzey protokollerin ve uygulamaların 2 kilobayta kadar uzunluktaki L64CAP veri paketlerini iletmesine ve almasına izin verir.

L2CAP, kanallar kavramına dayanmaktadır. Kanal, her kanalın çoka bir şekilde tek bir protokole bağlandığı bir ana bant bağlantısının üstündeki mantıksal bir bağlantıdır. Birden çok kanal aynı protokole bağlanabilir, ancak bir kanal birden çok protokole bağlanamaz. Bir kanaldan alınan her L2CAP paketi, uygun üst düzey protokole yönlendirilir. Birden çok kanal aynı ana bant bağlantısını paylaşabilir.

FreeBSD'de, her Bluetooth aygıtı için bir netgraph L2CAP düğümü oluşturulur. Bu düğüm normalde aşağı akış Bluetooth HCI düğümüne ve yukarı akış Bluetooth soket düğümlerine bağlanır. L2CAP düğümünün varsayılan adı "devicel2cap"tir. Daha fazla ayrıntı için ng_l2cap(4) bölümüne bakın.

Yararlı bir komut, diğer cihazlara ping yapmak için kullanılabilen l2ping(8) komutudur. Bazı Bluetooth uygulamaları kendilerine gönderilen tüm verileri döndürmeyebilir, bu nedenle aşağıdaki örnekte normaldir.0 bytes

# l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0

L2control(8) yardımcı programı, L2CAP düğümlerinde çeşitli işlemleri gerçekleştirmek için kullanılır. Bu örnek, mantıksal bağlantıların (kanalların) listesinin ve yerel aygıt için ana bant bağlantılarının listesinin nasıl elde edileceğini gösterir:

% l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
% l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN

Another diagnostic tool is btsockstat(1). It is similar to netstat(1), but for Bluetooth network-related data structures. The example below shows the same logical connection as l2control(8) above.

% btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN

33.5.5.2. Radio Frequency Communication (RFCOMM)

The RFCOMM protocol provides emulation of serial ports over the L2CAP protocol. RFCOMM is a simple transport protocol, with additional provisions for emulating the 9 circuits of RS-232 (EIATIA-232-E) serial ports. It supports up to 60 simultaneous connections (RFCOMM channels) between two Bluetooth devices.

For the purposes of RFCOMM, a complete communication path involves two applications running on the communication endpoints with a communication segment between them. RFCOMM is intended to cover applications that make use of the serial ports of the devices in which they reside. The communication segment is a direct connect Bluetooth link from one device to another.

RFCOMM is only concerned with the connection between the devices in the direct connect case, or between the device and a modem in the network case. RFCOMM can support other configurations, such as modules that communicate via Bluetooth wireless technology on one side and provide a wired interface on the other side.

In FreeBSD, RFCOMM is implemented at the Bluetooth sockets layer.

33.5.5.3. Service Discovery Protocol (SDP)

The Service Discovery Protocol (SDP) provides the means for client applications to discover the existence of services provided by server applications as well as the attributes of those services. The attributes of a service include the type or class of service offered and the mechanism or protocol information needed to utilize the service.

SDP involves communication between a SDP server and a SDP client. The server maintains a list of service records that describe the characteristics of services associated with the server. Each service record contains information about a single service. A client may retrieve information from a service record maintained by the SDP server by issuing a SDP request. If the client, or an application associated with the client, decides to use a service, it must open a separate connection to the service provider in order to utilize the service. SDP provides a mechanism for discovering services and their attributes, but it does not provide a mechanism for utilizing those services.

Normally, a SDP client searches for services based on some desired characteristics of the services. However, there are times when it is desirable to discover which types of services are described by an SDP server’s service records without any prior information about the services. This process of looking for any offered services is called browsing.

The Bluetooth SDP server, sdpd(8), and command line client, sdpcontrol(8), are included in the standard FreeBSD installation. The following example shows how to perform a SDP browse query.

% sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1

Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)

Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0

Her hizmetin RFCOMM kanalı gibi özniteliklerin bir listesi olduğunu unutmayın. Hizmete bağlı olarak, kullanıcının bazı öznitelikleri not etmesi gerekebilir. Bazı Bluetooth uygulamaları hizmete göz atmayı desteklemez ve boş bir liste döndürebilir. Bu durumda, belirli bir hizmeti aramak mümkündür. Aşağıdaki örnekte, OBEX Object Push (OPUSH) hizmetinin nasıl aranacağı gösterilmektedir:

% sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH

FreeBSD'de Bluetooth istemcilerine hizmet sunmak sdpd(8) sunucusu ile yapılır. Aşağıdaki satır /etc/rc.conf dosyasına eklenebilir:

sdpd_enable="YES"

Daha sonra sdpd(8) daemon ile başlatılabilir:

# service sdpd start

Uzak istemcilere Bluetooth hizmeti sağlamak isteyen yerel sunucu uygulaması, hizmeti yerel SDP arka plan programına kaydeder. Böyle bir uygulamaya örnek olarak rfcomm_pppd(8) verilebilir. Başlatıldığında, Bluetooth LAN hizmetini yerel SDP daemonuna kaydeder.

Yerel SDP sunucusuna kayıtlı hizmetlerin listesi, yerel kontrol kanalı üzerinden bir SDP gözatma sorgusu yayınlanarak elde edilebilir:

# sdpcontrol -l browse

33.5.5.4. OBEX Nesne İtme (OPUSH)

Nesne Değişimi (OBEX), mobil cihazlar arasında basit dosya aktarımları için yaygın olarak kullanılan bir protokoldür. Ana kullanımı, dizüstü bilgisayarlar veya PDA'lar arasında genel dosya aktarımları için ve Kişisel Bilgi Yöneticisi (PIM) uygulamaları ile cep telefonları ve diğer cihazlar arasında kartvizit veya takvim girişleri göndermek için kullanıldığı kızılötesi iletişimdedir.

OBEX sunucusu ve istemcisi, comms/obexapp paketi veya bağlantı noktası kullanılarak yüklenebilen obexapp tarafından uygulanır.

OBEX istemcisi, nesneleri OBEX sunucusundan itmek ve/veya çekmek için kullanılır. Örnek nesne kartvizit veya randevudur. OBEX istemcisi, RFCOMM kanal numarasını SDP aracılığıyla uzak cihazdan alabilir. Bu, RFCOMM kanal numarası yerine hizmet adı belirtilerek yapılabilir. Desteklenen hizmet adları şunlardır: , ve . RFCOMM kanalını sayı olarak belirtmek de mümkündür. Aşağıda, cihaz bilgi nesnesinin cep telefonundan çekildiği ve yeni bir nesne olan kartvizitin telefonun dizinine itildiği bir OBEX oturumu örneği verilmiştir.IrMCFTRNOPUSH

% obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)

OPUSH hizmetini sağlamak için sdpd(8) çalışıyor olmalı ve tüm gelen nesnelerin depolanacağı bir kök klasör oluşturulmalıdır. Kök klasörün varsayılan yolu /var/spool/obex şeklindedir. Son olarak, OBEX sunucusunu geçerli bir RFCOMM kanal numarasında başlatın. OBEX sunucusu, OPUSH hizmetini otomatik olarak yerel SDP daemonuna kaydeder. Aşağıdaki örnekte OBEX sunucusunun nasıl başlatılacağı gösterilmektedir.

# obexapp -s -C 10

33.5.5.5. Serial Port Profile (SPP)

The Serial Port Profile (SPP) allows Bluetooth devices to perform serial cable emulation. This profile allows legacy applications to use Bluetooth as a cable replacement, through a virtual serial port abstraction.

In FreeBSD, rfcomm_sppd(1) implements SPP and a pseudo tty is used as a virtual serial port abstraction. The example below shows how to connect to a remote device’s serial port service. A RFCOMM channel does not have to be specified as rfcomm_sppd(1) can obtain it from the remote device via SDP. To override this, specify a RFCOMM channel on the command line.

# rfcomm_sppd -a 00:07:E0:00:0B:CA -t
rfcomm_sppd[94692]: Starting on /dev/pts/6...
/dev/pts/6

Once connected, the pseudo tty can be used as serial port:

# cu -l /dev/pts/6

The pseudo tty is printed on stdout and can be read by wrapper scripts:

PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t`
cu -l $PTS

33.5.6. Troubleshooting

By default, when FreeBSD is accepting a new connection, it tries to perform a role switch and become master. Some older Bluetooth devices which do not support role switching will not be able to connect. Since role switching is performed when a new connection is being established, it is not possible to ask the remote device if it supports role switching. However, there is a HCI option to disable role switching on the local side:

# hccontrol -n ubt0hci write_node_role_switch 0

To display Bluetooth packets, use the third-party package hcidump, which can be installed using the comms/hcidump package or port. This utility is similar to tcpdump(1) and can be used to display the contents of Bluetooth packets on the terminal and to dump the Bluetooth packets to a file.

33.6. Bridging

It is sometimes useful to divide a network, such as an Ethernet segment, into network segments without having to create IP subnets and use a router to connect the segments together. A device that connects two networks together in this fashion is called a "bridge".

A bridge works by learning the MAC addresses of the devices on each of its network interfaces. It forwards traffic between networks only when the source and destination MAC addresses are on different networks. In many respects, a bridge is like an Ethernet switch with very few ports. A FreeBSD system with multiple network interfaces can be configured to act as a bridge.

Bridging can be useful in the following situations:

Connecting Networks

The basic operation of a bridge is to join two or more network segments. There are many reasons to use a host-based bridge instead of networking equipment, such as cabling constraints or firewalling. A bridge can also connect a wireless interface running in hostap mode to a wired network and act as an access point.

Filtering/Traffic Shaping Firewall

A bridge can be used when firewall functionality is needed without routing or Network Address Translation (NAT).

An example is a small company that is connected via DSL or ISDN to an ISP. There are thirteen public IP addresses from the ISP and ten computers on the network. In this situation, using a router-based firewall is difficult because of subnetting issues. A bridge-based firewall can be configured without any IP addressing issues.

Network Tap

A bridge can join two network segments in order to inspect all Ethernet frames that pass between them using bpf(4) and tcpdump(1) on the bridge interface, or by sending a copy of all frames out on an additional interface known as a span port.

Layer 2 VPN

Two Ethernet networks can be joined across an IP link by bridging the networks to an EtherIP tunnel or a tap(4) based solution such as OpenVPN.

Layer 2 Redundancy

A network can be connected together with multiple links and use the Spanning Tree Protocol (STP) to block redundant paths.

This section describes how to configure a FreeBSD system as a bridge using if_bridge(4). A netgraph bridging driver is also available, and is described in ng_bridge(4).

Paket filtreleme, pfil(9) çerçevesine bağlanan herhangi bir güvenlik duvarı paketiyle kullanılabilir. Köprü, altq(4) veya dummynet(4) ile trafik şekillendirici olarak kullanılabilir.

33.6.1. Köprünün Etkinleştirilmesi

FreeBSD'de if_bridge(4), bir köprü arabirimi oluşturulurken ifconfig(8) tarafından otomatik olarak yüklenen bir çekirdek modülüdür. Özel çekirdek yapılandırma dosyasına ekleyerek köprü desteğini özel bir çekirdeğe derlemek de mümkündür.device if_bridge

Köprü, arayüz klonlaması kullanılarak oluşturulur. Köprü arabirimini oluşturmak için:

# ifconfig bridge create
bridge0
# ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0

Bir köprü arabirimi oluşturulduğunda, otomatik olarak rastgele oluşturulmuş bir Ethernet adresi atanır. Ve parametreleri, köprünün yönlendirme tablosunda kaç MAC adresi tutacağını ve her girişin en son görüldükten sonra kaldırılmasından kaç saniye önce kaldırılacağını kontrol eder. Diğer parametreler STP'nin nasıl çalıştığını kontrol eder.maxaddrtimeout

Ardından, köprünün üyeleri olarak hangi ağ arabirimlerinin ekleneceğini belirtin. Köprünün paketleri iletmesi için, tüm üye arabirimlerinin ve köprünün açık olması gerekir:

# ifconfig bridge0 addm fxp0 addm fxp1 up
# ifconfig fxp0 up
# ifconfig fxp1 up

Köprü artık Ethernet çerçevelerini fxp0 ve fxp1 arasında iletebilir. Köprünün başlangıçta oluşturulması için /etc/rc.conf dosyasına aşağıdaki satırları ekleyin:

cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"

Köprü ana bilgisayarının bir IP adresine ihtiyacı varsa, bunu üye arabirimlerinde değil, köprü arabiriminde ayarlayın. Adres statik olarak veya DHCP üzerinden ayarlanabilir. Bu örnek statik IP adresi ayarlar:

# ifconfig bridge0 inet 192.168.0.1/24

Bir köprü arabirimine IPv6 adresi atamak da mümkündür. Değişiklikleri kalıcı hale getirmek için, adresleme bilgilerini /etc/rc.conf dosyasına ekleyin.

Paket filtreleme etkinleştirildiğinde, köprülü paketler köprü arabirimindeki kaynak arabirimde gelen ve uygun arabirimlerde giden filtreden geçer. Her iki aşama da devre dışı bırakılabilir. Paket akışının yönü önemli olduğunda, köprünün kendisinden ziyade üye arabirimlerinde güvenlik duvarı oluşturmak en iyisidir.

Köprü, IP olmayan ve IP paketlerini geçirmek için çeşitli yapılandırılabilir ayarlara ve ipfw(2) ile katman8 güvenlik duvarına sahiptir. Daha fazla bilgi için if_bridge(4) bölümüne bakın.

33.6.2. Yayılan Ağacı Etkinleştirme

Ethernet ağının düzgün çalışması için, iki aygıt arasında yalnızca bir etkin yol bulunabilir. STP protokolü döngüleri algılar ve gereksiz bağlantıları engellenmiş bir duruma sokar. Etkin bağlantılardan biri başarısız olursa, STP farklı bir ağaç hesaplar ve engellenen yollardan birinin ağdaki tüm noktalara bağlantıyı geri yüklemesini sağlar.

Hızlı Yayılan Ağaç Protokolü (RSTP veya 802.1w), eski STP ile geriye dönük uyumluluk sağlar. RSTP daha hızlı yakınsama sağlar ve döngüler oluşturmadan hızlı bir şekilde iletme moduna geçmek için komşu anahtarlarla bilgi alışverişinde bulunur. FreeBSD, RSTP ve STP'yi çalışma modları olarak destekler, RSTP varsayılan moddur.

STP, ifconfig(8) kullanılarak üye arabirimlerde etkinleştirilebilir. Geçerli arabirimler olarak fxp0 ve fxp1 içeren bir köprü için STP'yi aşağıdakilerle etkinleştirin:

# ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwarding

Bu köprünün yayılan bir ağaç kimliği ve önceliği vardır. Aynı olduğu için, bunun ağacın kök köprüsü olduğunu gösterir.00:01:02:4b:d4:5032768root id

Ağdaki başka bir köprüde de STP etkindir:

bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 5 priority 128 path cost 200000 proto rstp
role designated state forwarding

Çizgi, kök köprünün bu köprüden bir yol maliyeti olduğunu ve olduğunu gösterir. Kök köprüsüne giden yol fxp0'dır.root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 400:01:02:4b:d4:50400000port 4

33.6.3. Köprü Arayüzü Parametreleri

Birkaç parametre köprü arayüzleri için benzersizdir. Bu bölümde, bu parametrelerin bazı yaygın kullanımları özetlenmektedir. Kullanılabilir parametrelerin tam listesi ifconfig(8) bölümünde açıklanmıştır.ifconfig

özel

Özel arabirim, trafiği özel arabirim olarak da adlandırılan başka bir bağlantı noktasına iletmez. Trafik koşulsuz olarak engellenir, böylece ARP paketleri de dahil olmak üzere hiçbir Ethernet çerçevesi iletilmez. Trafiğin seçici olarak engellenmesi gerekiyorsa, bunun yerine bir güvenlik duvarı kullanılmalıdır.

Span

Bir açıklık bağlantı noktası, köprü tarafından alınan her Ethernet çerçevesinin bir kopyasını iletir. Bir köprüde yapılandırılan yayılma bağlantı noktalarının sayısı sınırsızdır, ancak bir arabirim yayılma bağlantı noktası olarak atanmışsa, normal köprü bağlantı noktası olarak da kullanılamaz. Bu, köprünün açıklık bağlantı noktalarından birine bağlı başka bir ana bilgisayarda köprülenmiş bir ağı pasif olarak gözetlemek için çok kullanışlıdır. Örneğin, tüm çerçevelerin bir kopyasını fxp4 adlı arabirimden göndermek için:

# ifconfig bridge0 span fxp4
yapışkan

Bir köprü üyesi arabirimi yapışkan olarak işaretlenmişse, dinamik olarak öğrenilen adres girişleri iletme önbelleğinde statik girdiler olarak değerlendirilir. Yapışkan girişler, adres farklı bir arayüzde görülse bile asla önbellekten eskitilmez veya değiştirilmez. Bu, iletme tablosunu önceden doldurmaya gerek kalmadan statik adres girişlerinin avantajını sağlar. Köprünün belirli bir bölümünde öğrenilen müşteriler başka bir segmente dolaşamazlar.

Yapışkan adreslerin kullanılmasına bir örnek, IP adresi alanını boşa harcamadan müşteri ağlarını izole etmek için köprüyü VLAN'larla birleştirmektir. Açık olduğunu, açık olduğunu ve köprünün adresi olduğunu düşünün:CustomerAvlan100CustomerBvlan101192.168.0.1

# ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
# ifconfig bridge0 inet 192.168.0.1/24

Bu örnekte, her iki istemci de varsayılan ağ geçidi olarak görür. Köprü önbelleği yapışkan olduğundan, bir ana bilgisayar trafiğini engellemek için diğer müşterinin MAC adresini taklit edemez.192.168.0.1

VLAN'lar arasındaki herhangi bir iletişim, bir güvenlik duvarı veya bu örnekte görüldüğü gibi özel arabirimler kullanılarak engellenebilir:

# ifconfig bridge0 private vlan100 private vlan101

Müşteriler birbirlerinden tamamen yalıtılmıştır ve tam adres aralığı alt ağ oluşturmadan tahsis edilebilir./24

Bir arabirimin arkasındaki benzersiz kaynak MAC adreslerinin sayısı sınırlı olabilir. Sınıra ulaşıldıktan sonra, bilinmeyen kaynak adreslerine sahip paketler, varolan bir konak önbelleği girdisinin süresi dolana veya kaldırılana kadar bırakılır.

Aşağıdaki örnek, açık için maksimum Ethernet cihazı sayısını 10 olarak ayarlar:CustomerAvlan100

# ifconfig bridge0 ifmaxaddr vlan100 10

Köprü arabirimleri, paketlerin bpf(4) işleminden sonra atıldığı ve daha fazla işlenmediği veya iletilmediği monitör modunu da destekler. Bu, iki veya daha fazla arabirimin girişini tek bir bpf(4) akışına çoğaltmak için kullanılabilir. Bu, RX/TX sinyallerini iki ayrı arabirim üzerinden ileten ağ dokunmalarının trafiğini yeniden oluşturmak için kullanışlıdır. Örneğin, dört ağ arabiriminden gelen girişi tek bir akış olarak okumak için:

# ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
# tcpdump -i bridge0

33.6.4. SNMP İzleme

Köprü arayüzü ve STP parametreleri, FreeBSD temel sistemine dahil olan bsnmpd(1) üzerinden izlenebilir. Dışa aktarılan köprü MIB'leri IETF standartlarına uygundur, böylece verileri almak için herhangi bir SNMP istemcisi veya izleme paketi kullanılabilir.

Köprüde izlemeyi etkinleştirmek için, başlangıç sembolünü kaldırarak /etc/snmpd.config dosyasındaki bu satırın açıklamasını kaldırın:#

begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"

Topluluk adları ve erişim listeleri gibi diğer yapılandırma ayarlarının bu dosyada değiştirilmesi gerekebilir. Daha fazla bilgi için bsnmpd(1) ve snmp_bridge(3) bölümlerine bakın. Bu düzenlemeler kaydedildikten sonra, bu satırı /etc/rc.conf dosyasına ekleyin:

bsnmpd_enable="YES"
# service bsnmpd start

Aşağıdaki örnekler, istemci sistemden bir köprüyü sorgulamak için Net-SNMP yazılımını (net-mgmt/net-snmp) kullanır. Net-mgmt/bsnmptools bağlantı noktası da kullanılabilir. Net-SNMP çalıştıran SNMP istemcisinden, köprü MIB tanımlarını almak için $HOME/.snmp/snmp.conf dosyasına aşağıdaki satırları ekleyin:

mibdirs +/usr/share/snmp/mibs
mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB

IETF BRIDGE-MIB (RFC4188) kullanarak tek bir köprüyü izlemek için:

% snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
...
BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)

Değer ikidir ve STP köprü topolojisinin iki kez değiştiğini gösterir. Topoloji değişikliği, ağdaki bir veya daha fazla bağlantının değiştiği veya başarısız olduğu ve yeni bir ağacın hesaplandığı anlamına gelir. Değer, bunun ne zaman gerçekleştiğini gösterir.dot1dStpTopChanges.0dot1dStpTimeSinceTopologyChange.0

Birden fazla köprü arayüzünü izlemek için özel BEGEMOT-BRIDGE-MIB kullanılabilir:

% snmpwalk -v 2c -c public bridge1.example.com
enterprises.fokus.begemot.begemotBridge
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
...
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9

Alt ağaç aracılığıyla izlenen köprü arayüzünü değiştirmek için:mib-2.dot1dBridge

% snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2

33.7. Bağlantı Toplama ve Yük Devretme

FreeBSD, yük devretme ve bağlantı toplama sağlamak amacıyla birden fazla ağ arabirimini tek bir sanal arabirimde toplamak için kullanılabilecek lagg(4) arabirimini sağlar. Yük devretme, en az bir toplu ağ arabiriminde yerleşik bir bağlantı olduğu sürece trafiğin akmaya devam etmesine izin verir. Bağlantı toplama, LACP'yi destekleyen anahtarlarda en iyi şekilde çalışır, çünkü bu protokol trafiği tek tek bağlantıların başarısızlığına yanıt verirken çift yönlü olarak dağıtır.

lagg arabirimi tarafından desteklenen toplama protokolleri, giden trafik için hangi bağlantı noktalarının kullanılacağını ve belirli bir bağlantı noktasının gelen trafiği kabul edip etmediğini belirler. Aşağıdaki protokoller lagg(4) tarafından desteklenir:

yük devretme

Bu mod, trafiği yalnızca ana bağlantı noktası üzerinden gönderir ve alır. Ana bağlantı noktası kullanılamaz hale gelirse, bir sonraki etkin bağlantı noktası kullanılır. Sanal arabirime eklenen ilk arabirim ana bağlantı noktasıdır ve daha sonra eklenen tüm arabirimler yük devretme aygıtları olarak kullanılır. Ana olmayan bir bağlantı noktasına yük devretme gerçekleşirse, özgün bağlantı noktası yeniden kullanılabilir hale geldiğinde ana bağlantı noktası olur.

loadbalance

This provides a static setup and does not negotiate aggregation with the peer or exchange frames to monitor the link. If the switch supports LACP, that should be used instead.

lacp

The IEEE® 802.3ad Link Aggregation Control Protocol (LACP) negotiates a set of aggregable links with the peer into one or more Link Aggregated Groups (LAGs). Each LAG is composed of ports of the same speed, set to full-duplex operation, and traffic is balanced across the ports in the LAG with the greatest total speed. Typically, there is only one LAG which contains all the ports. In the event of changes in physical connectivity, LACP will quickly converge to a new configuration.

LACP balances outgoing traffic across the active ports based on hashed protocol header information and accepts incoming traffic from any active port. The hash includes the Ethernet source and destination address and, if available, the VLAN tag, and the IPv4 or IPv6 source and destination address.

roundrobin

This mode distributes outgoing traffic using a round-robin scheduler through all active ports and accepts incoming traffic from any active port. Since this mode violates Ethernet frame ordering, it should be used with caution.

broadcast

This mode sends outgoing traffic to all ports configured on the lagg interface, and receives frames on any port.

33.7.1. Configuration Examples

This section demonstrates how to configure a Cisco® switch and a FreeBSD system for LACP load balancing. It then shows how to configure two Ethernet interfaces in failover mode as well as how to configure failover mode between an Ethernet and a wireless interface.

Example 1. LACP Aggregation with a Cisco® Switch

This example connects two fxp(4) Ethernet interfaces on a FreeBSD machine to the first two Ethernet ports on a Cisco® switch as a single load balanced and fault tolerant link. More interfaces can be added to increase throughput and fault tolerance. Replace the names of the Cisco® ports, Ethernet devices, channel group number, and IP address shown in the example to match the local configuration.

Frame ordering is mandatory on Ethernet links and any traffic between two stations always flows over the same physical link, limiting the maximum speed to that of one interface. The transmit algorithm attempts to use as much information as it can to distinguish different traffic flows and balance the flows across the available interfaces.

On the Cisco® switch, add the FastEthernet0/1 and FastEthernet0/2 interfaces to channel group 1:

interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacp

On the FreeBSD system, create the lagg(4) interface using the physical interfaces fxp0 and fxp1 and bring the interfaces up with an IP address of 10.0.0.3/24:

# ifconfig fxp0 up
# ifconfig fxp1 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24

Next, verify the status of the virtual interface:

# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Ports marked as are part of the LAG that has been negotiated with the remote switch. Traffic will be transmitted and received through these active ports. Add to the above command to view the LAG identifiers.ACTIVE-v

To see the port status on the Cisco® switch:

switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode

Channel group 1 neighbors

Partner's information:

LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D

For more detail, type .show lacp neighbor detail

To retain this configuration across reboots, add the following entries to /etc/rc.conf on the FreeBSD system:

ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24"
Example 2. Failover Mode

Failover mode can be used to switch over to a secondary interface if the link is lost on the master interface. To configure failover, make sure that the underlying physical interfaces are up, then create the lagg(4) interface. In this example, fxp0 is the master interface, fxp1 is the secondary interface, and the virtual interface is assigned an IP address of 10.0.0.15/24:

# ifconfig fxp0 up
# ifconfig fxp1 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24

The virtual interface should look something like this:

# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>

Trafik fxp0'da iletilecek ve alınacaktır. Bağlantı fxp0'da kaybolursa, fxp1 etkin bağlantı olur. Bağlantı ana arabirime geri yüklenirse, bir kez daha etkin bağlantı olur.

Yeniden başlatmalarda bu yapılandırmayı korumak için, /etc/rc.conf dosyasına aşağıdaki girdileri ekleyin:

ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24"
Örnek 3. Ethernet ve Kablosuz Arabirimler Arasında Yük Devretme Modu

Dizüstü bilgisayar kullanıcıları için, kablosuz cihazın yalnızca Ethernet bağlantısı olmadığında kullanılan ikincil olarak yapılandırılması genellikle istenir. lagg(4) ile, kablosuz bağlantı üzerinden veri aktarma yeteneğini korurken, hem performans hem de güvenlik nedenleriyle Ethernet bağlantısını tercih eden bir yük devretme yapılandırmak mümkündür.

Bu, Ethernet arabiriminin MAC adresini kablosuz arabiriminkiyle geçersiz kılarak elde edilir.

Teorik olarak, Ethernet veya kablosuz MAC adresi diğeriyle eşleşecek şekilde değiştirilebilir. Ancak, bazı popüler kablosuz arayüzler MAC adresini geçersiz kılma desteğinden yoksundur. Bu nedenle, bu amaçla Ethernet MAC adresini geçersiz kılmanızı öneririz.

Kablosuz arabirimin sürücüsü veya özel çekirdeğe yüklenmemişse ve bilgisayar FreeBSD 12.1 çalıştırıyorsa, bu dosyaya ekleyerek ve yeniden başlatarak /boot/loader.conf dosyasına karşılık gelen .ko dosyasını yükleyin. Başka bir ve daha iyi yol, sürücüyü /etc/rc.conf dosyasına ekleyerek (ayrıntılar için bkz. rc.conf(5) dosyasına) yüklemek ve yeniden başlatmaktır. Bu gereklidir, çünkü aksi takdirde lagg(4) arabirimi kurulduğunda sürücü henüz yüklenmemiştir.GENERICdriver_load="YES"kld_list

Bu örnekte, Ethernet arabirimi re0 ana arabirim ve kablosuz arabirim wlan0 yük devretmedir. wlan0 arabirimi ath0 fiziksel kablosuz arabiriminden oluşturulmuştur ve Ethernet arabirimi, kablosuz arabirimin MAC adresiyle yapılandırılır. İlk olarak, kablosuz arayüzü açın (FR'yi kendi 2 harfli ülke kodunuzla değiştirin), ancak bir IP adresi ayarlamayın. wlan0'ı sistemin kablosuz arabirim adıyla eşleşecek şekilde değiştirin:

# ifconfig wlan0 create wlandev ath0 country FR ssid my_router up

Artık kablosuz arayüzün MAC adresini belirleyebilirsiniz:

# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether b8:ee:65:5b:32:59
groups: wlan
ssid Bbox-A3BD2403 channel 6 (2437 MHz 11g ht/20) bssid 00:37:b7:56:4b:60
regdomain ETSI country FR indoor ecm authmode WPA2/802.11i privacy ON
deftxkey UNDEF AES-CCM 2:128-bit txpower 30 bmiss 7 scanvalid 60
protmode CTS ampdulimit 64k ampdudensity 8 shortgi -stbctx stbcrx
-ldpc wme burst roaming MANUAL
media: IEEE 802.11 Wireless Ethernet MCS mode 11ng
status: associated
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Satır, belirtilen arayüzün MAC adresini içerecektir. Şimdi, Ethernet arabiriminin MAC adresini eşleşecek şekilde değiştirin:ether

# ifconfig re0 ether b8:ee:65:5b:32:59

Re0 arabiriminin çalışır durumda olduğundan emin olun, ardından lagg(4) arabirimini re0 ile wlan0'a yük devretme ile master olarak oluşturun:

# ifconfig re0 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto failover laggport re0 laggport wlan0

Sanal arayüz şöyle görünmelidir:

# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether b8:ee:65:5b:32:59
laggproto failover lagghash l2,l3,l4
laggport: re0 flags=5<MASTER,ACTIVE>
laggport: wlan0 flags=0<>
groups: lagg
media: Ethernet autoselect
status: active

Ardından, bir IP adresi almak için DHCP istemcisini başlatın:

# dhclient lagg0

Yeniden başlatmalarda bu yapılandırmayı korumak için, /etc/rc.conf dosyasına aşağıdaki girdileri ekleyin:

ifconfig_re0="ether b8:ee:65:5b:32:59"
wlans_ath0="wlan0"
ifconfig_wlan0="WPA"
create_args_wlan0="country FR"
cloned_interfaces="lagg0"
ifconfig_lagg0="up laggproto failover laggport re0 laggport wlan0 DHCP"

33.8. PXE ile Disksiz Çalışma

Intel® önyükleme öncesi Yürütme ortamı (PXE), bir işletim sisteminin ağ üzerinden önyüklenmesine olanak tanır. Örneğin, bir FreeBSD sistemi ağ üzerinden önyükleme yapabilir ve bir NFS sunucusundan monte edilmiş dosya sistemlerini kullanarak yerel bir disk olmadan çalışabilir. PXE desteği genellikle BIOS'ta bulunur. Makine başlatıldığında PXE kullanmak için, BIOS kurulumunda seçeneği belirleyin veya sistem başlatma sırasında bir işlev tuşu yazın.Boot from network

Bir işletim sisteminin ağ üzerinden önyüklenmesi için gereken dosyaları sağlamak amacıyla, PXE kurulumu düzgün yapılandırılmış DHCP, TFTP ve NFS sunucuları da gerektirir:

  • IP adresi, yürütülebilir önyükleme dosyası adı ve konumu, sunucu adı ve kök yolu gibi başlangıç parametreleri DHCP sunucusundan alınır.

  • İşletim sistemi yükleyici dosyası TFTP kullanılarak önyüklenir.

  • Dosya sistemleri NFS kullanılarak yüklenir.

Bir bilgisayar PXE önyüklendiğinde, DHCP üzerinden ilk önyükleme yükleyicisi dosyasının nereden alınacağı hakkında bilgi alır. Ana bilgisayar bu bilgileri aldıktan sonra, önyükleme yükleyicisini TFTP aracılığıyla indirir ve ardından önyükleme yükleyicisini yürütür. FreeBSD'de, önyükleme yükleyici dosyası /boot/pxeboot şeklindedir. /boot/pxeboot yürütüldükten sonra, FreeBSD çekirdeği yüklenir ve FreeBSD önyükleme sırasının geri kalanı, FreeBSD Önyükleme İşlemi'nde açıklandığı gibi devam eder.

Bu bölümde, diğer sistemlerin PXE'nin FreeBSD'ye önyükleme yapabilmesi için bu hizmetlerin bir FreeBSD sisteminde nasıl yapılandırılacağı açıklanmaktadır. Daha fazla bilgi için disksiz(8) konusuna bakın.

Açıklandığı gibi, bu hizmetleri sağlayan sistem güvensizdir. Bir ağın korunan bir bölgesinde yaşamalı ve diğer ana bilgisayarlar tarafından güvenilmemelidir.

33.8.1. PXE Ortamını Ayarlama

Bu bölümde gösterilen adımlar, yerleşik NFS ve TFTP sunucularını yapılandırır. Sonraki bölümde, DHCP sunucusunun nasıl yükleneceği ve yapılandırılacağı gösterilmektedir. Bu örnekte, PXE kullanıcıları tarafından kullanılan dosyaları içerecek dizin /b/tftpboot/FreeBSD/install dizinidir. Bu dizinin var olması ve aynı dizin adının hem /etc/inetd.conf hem de /usr/local/etc/dhcpd.conf dizinlerinde ayarlanmış olması önemlidir.

Aşağıdaki komut örneklerinde sh(1) kabuğunun kullanıldığı varsayılmaktadır. csh(1) ve tcsh(1) kullanıcılarının bir sh(1) kabuğu başlatması veya komutları csh(1) sözdizimine uyarlaması gerekir.

  1. NFS bağlanacak bir FreeBSD yüklemesi içerecek kök dizini oluşturun:

    # export NFSROOTDIR=/b/tftpboot/FreeBSD/install
    # mkdir -p ${NFSROOTDIR}
  2. Bu satırı /etc/rc.conf dosyasına ekleyerek NFS sunucusunu etkinleştirin:

    nfs_server_enable="YES"
  3. Disksiz kök dizini NFS aracılığıyla /etc/exports dizinine aşağıdakileri ekleyerek dışa aktarın:

    /b -ro -alldirs -maproot=root
  4. NFS sunucusunu başlatın:

    # service nfsd start
  5. /etc/rc.conf dosyasına aşağıdaki satırı ekleyerek inetd(8) öğesini etkinleştirin:

    inetd_enable="YES"
  6. /etc/inetd.conf dosyasındaki aşağıdaki satırın bir sembolle başlamadığından emin olarak açıklamasını kaldırın:#

    tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /b/tftpboot

    Bazı PXE sürümleri TFTP'nin TCP sürümünü gerektirir. Bu durumda, içeren ikinci satırın açıklamasını kaldırın.tftpstream tcp

  7. Inetd(8) uygulamasını başlatın:

    # service inetd start
  8. Install the base system into ${NFSROOTDIR}, either by decompressing the official archives or by rebuilding the FreeBSD kernel and userland (refer to “Updating FreeBSD from Source” for more detailed instructions, but do not forget to add when running the and commands.DESTDIR=${NFSROOTDIR}make installkernelmake installworld

  9. Test that the TFTP server works and can download the boot loader which will be obtained via PXE:

    # tftp localhost
    tftp> get FreeBSD/install/boot/pxeboot
    Received 264951 bytes in 0.1 seconds
  10. Edit ${NFSROOTDIR}/etc/fstab and create an entry to mount the root file system over NFS:

    # Device                                         Mountpoint    FSType   Options  Dump Pass
    myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0

    Replace myhost.example.com with the hostname or IP address of the NFS server. In this example, the root file system is mounted read-only in order to prevent NFS clients from potentially deleting the contents of the root file system.

  11. Set the root password in the PXE environment for client machines which are PXE booting :

    # chroot ${NFSROOTDIR}
    # passwd
  12. If needed, enable ssh(1) root logins for client machines which are PXE booting by editing ${NFSROOTDIR}/etc/ssh/sshd_config and enabling . This option is documented in sshd_config(5).PermitRootLogin

  13. Perform any other needed customizations of the PXE environment in ${NFSROOTDIR}. These customizations could include things like installing packages or editing the password file with vipw(8).

When booting from an NFS root volume, /etc/rc detects the NFS boot and runs /etc/rc.initdiskless. In this case, /etc and /var need to be memory backed file systems so that these directories are writable but the NFS root directory is read-only:

# chroot ${NFSROOTDIR}
# mkdir -p conf/base
# tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc
# tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var

When the system boots, memory file systems for /etc and /var will be created and mounted and the contents of the cpio.gz files will be copied into them. By default, these file systems have a maximum capacity of 5 megabytes. If your archives do not fit, which is usually the case for /var when binary packages have been installed, request a larger size by putting the number of 512 byte sectors needed (e.g., 5 megabytes is 10240 sectors) in ${NFSROOTDIR}/conf/base/etc/md_size and ${NFSROOTDIR}/conf/base/var/md_size files for /etc and /var file systems respectively.

33.8.2. Configuring the DHCP Server

The DHCP server does not need to be the same machine as the TFTP and NFS server, but it needs to be accessible in the network.

DHCP is not part of the FreeBSD base system but can be installed using the net/isc-dhcp44-server port or package.

Once installed, edit the configuration file, /usr/local/etc/dhcpd.conf. Configure the , , and settings as seen in this example:next-serverfilenameroot-path

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.3 ;
option subnet-mask 255.255.255.0 ;
option routers 192.168.0.1 ;
option broadcast-address 192.168.0.255 ;
option domain-name-servers 192.168.35.35, 192.168.35.36 ;
option domain-name "example.com";

# IP address of TFTP server
next-server 192.168.0.1 ;

# path of boot loader obtained via tftp
filename "FreeBSD/install/boot/pxeboot" ;

# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/" ;

}

Yönerge, TFTP sunucusunun IP adresini belirtmek için kullanılır.next-server

Yönerge /boot/pxeboot yolunu tanımlar. Göreli bir dosya adı kullanılır, yani /b/tftpboot yola dahil edilmez.filename

Bu seçenek, NFS kök dosya sisteminin yolunu tanımlar.root-path

Düzenlemeler kaydedildikten sonra, /etc/rc.conf dosyasına aşağıdaki satırı ekleyerek önyükleme sırasında DHCP'yi etkinleştirin:

dhcpd_enable="YES"

Ardından DHCP hizmetini başlatın:

# service isc-dhcpd start

33.8.3. PXE Sorunlarında Hata Ayıklama

Tüm hizmetler yapılandırıldıktan ve başlatıldıktan sonra, PXE istemcileri FreeBSD'yi ağ üzerinden otomatik olarak yükleyebilmelidir. Belirli bir istemci bağlanamıyorsa, bu istemci makine önyüklendiğinde, BIOS yapılandırma menüsüne girin ve ağdan önyüklenecek şekilde ayarlandığını onaylayın.

Bu bölümde, hiçbir istemcinin PXE önyüklemesi yapamaması durumunda yapılandırma sorununun kaynağını yalıtmaya yönelik bazı sorun giderme ipuçları açıklanmaktadır.

  1. Aşağıdaki diyagramda gösterilen PXE önyükleme işlemi sırasında ilgili ağ trafiğinde hata ayıklamak için net/wireshark paketini veya bağlantı noktasını kullanın.

    pxe nfs
    Şekil 1. NFS Kök Montajı ile PXE Önyükleme İşlemi
    1. İstemci bir DHCPDISCOVER iletisi yayınlar.

    2. DHCP sunucusu IP adresi, sonraki sunucu, dosya adı ve kök yolu değerleriyle yanıt verir.

    3. İstemci, bir sonraki sunucuya dosya adını almak isteyen bir TFTP isteği gönderir.

    4. TFTP sunucusu yanıt verir ve istemciye dosya adı gönderir.

    5. İstemci, pxeboot(8) olan dosya adını yürütür ve ardından çekirdeği yükler. Çekirdek yürütüldüğünde, kök yolu tarafından belirtilen kök dosya sistemi NFS üzerinden bağlanır.

  2. TFTP sunucusunda, pxeboot'un doğru konumdan alındığından emin olmak için /var/log/xferlog komutunu okuyun. Bu örnek yapılandırmayı test etmek için:

    # tftp 192.168.0.1
    tftp> get FreeBSD/install/boot/pxeboot
    Received 264951 bytes in 0.1 seconds

    tftpd(8) ve tftp(1)'deki bölümler TFTP ile ilgili bazı sınırlamaları belgelemektedir.BUGS

  3. Kök dosya sisteminin NFS aracılığıyla bağlanabildiğinden emin olun. Bu örnek yapılandırmayı test etmek için:

    # mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt

33.9. IPv6

IPv6 is the new version of the well known IP protocol, also known as IPv4. IPv6 provides several advantages over IPv4 as well as many new features:

  • Its 128-bit address space allows for 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses. This addresses the IPv4 address shortage and eventual IPv4 address exhaustion.

  • Routers only store network aggregation addresses in their routing tables, thus reducing the average space of a routing table to 8192 entries. This addresses the scalability issues associated with IPv4, which required every allocated block of IPv4 addresses to be exchanged between Internet routers, causing their routing tables to become too large to allow efficient routing.

  • Address autoconfiguration (RFC2462).

  • Mandatory multicast addresses.

  • Built-in IPsec (IP security).

  • Simplified header structure.

  • Support for mobile IP.

  • IPv6-to-IPv4 transition mechanisms.

FreeBSD includes the http://www.kame.net/ IPv6 reference implementation and comes with everything needed to use IPv6. This section focuses on getting IPv6 configured and running.

33.9.1. Background on IPv6 Addresses

There are three different types of IPv6 addresses:

Unicast

A packet sent to a unicast address arrives at the interface belonging to the address.

Anycast

These addresses are syntactically indistinguishable from unicast addresses but they address a group of interfaces. The packet destined for an anycast address will arrive at the nearest router interface. Anycast addresses are only used by routers.

Multicast

These addresses identify a group of interfaces. A packet destined for a multicast address will arrive at all interfaces belonging to the multicast group. The IPv4 broadcast address, usually , is expressed by multicast addresses in IPv6.xxx.xxx.xxx.255

When reading an IPv6 address, the canonical form is represented as , where each represents a 16 bit hex value. An example is .x:x:x:x:x:x:x:xxFEBC:A574:382B:23C1:AA49:4592:4EFE:9982

Often, an address will have long substrings of all zeros. A (double colon) can be used to replace one substring per address. Also, up to three leading s per hex value can be omitted. For example, corresponds to the canonical form .::0fe80::1fe80:0000:0000:0000:0000:0000:0000:0001

A third form is to write the last 32 bits using the well known IPv4 notation. For example, corresponds to the hexadecimal canonical representation , which in turn is equivalent to .2002::10.0.0.12002:0000:0000:0000:0000:0000:0a00:00012002::a00:1

To view a FreeBSD system’s IPv6 address, use ifconfig(8):

# ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: active

In this example, the rl0 interface is using , an auto-configured link-local address which was automatically generated from the MAC address.fe80::200:21ff:fe03:8e1%rl0

Some IPv6 addresses are reserved. A summary of these reserved addresses is seen in Reserved IPv6 Addresses:

Table 2. Reserved IPv6 Addresses
IPv6 addressPrefixlength (Bits)DescriptionNotes

::

128 bits

unspecified

Equivalent to in IPv4.0.0.0.0

::1

128 bits

loopback address

Equivalent to in IPv4.127.0.0.1

::00:xx:xx:xx:xx

96 bits

embedded IPv4

The lower 32 bits are the compatible IPv4 address.

::ff:xx:xx:xx:xx

96 bits

IPv4 mapped IPv6 address

Alt 32 bit, IPv4'yı desteklemeyen ana bilgisayarların IPv6 adresidir.

fe80::/10

10 bit

bağlantı-yerel

IPv169'te 254.0.0.16/4'ya eşdeğerdir.

fc00::/7

7 bit

benzersiz-yerel

Benzersiz yerel adresler yerel iletişim için tasarlanmıştır ve yalnızca işbirliği yapılan bir dizi site içinde yönlendirilebilir.

ff00::

8 bit

Çok noktaya yayın

2000::-3fff::

3 bit

küresel tek noktaya yayın

Tüm genel tek noktaya yayın adresleri bu havuzdan atanır. İlk 3 bit .001

IPv6 adreslerinin yapısı hakkında daha fazla bilgi için RFC3513'e bakın.

33.9.2. IPv6'yı Yapılandırma

Bir FreeBSD sistemini IPv6 istemcisi olarak yapılandırmak için, rc.conf dosyasına şu iki satırı ekleyin:

ifconfig_rl0_ipv6="inet6 accept_rtadv"
rtsold_enable="YES"

İlk satır, belirtilen arabirimin yönlendirici bildiri iletilerini almasını sağlar. İkinci satır, yönlendirici talep daemon, rtsol(8) sağlar.

Arabirimin statik olarak atanmış bir IPv6 adresine ihtiyacı varsa, statik adresi ve ilişkili önek uzunluğunu belirtmek için bir giriş ekleyin:

ifconfig_rl0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"

Varsayılan yönlendirici atamak için adresini belirtin:

ipv6_defaultrouter="2001:db8:4672:6565::1"

33.9.3. Bir Sağlayıcıya Bağlanma

Diğer IPv6 ağlarına bağlanmak için, IPv6'yı destekleyen bir sağlayıcıya veya tünele sahip olmak gerekir:

  • IPv6 sunup sunmadıklarını öğrenmek için bir Internet Servis Sağlayıcısına başvurun.

  • Hurricane Electric, dünyanın her yerinde uç noktaları olan tüneller sunuyor.

Çevirmeli bağlantı için net/freenet6 paketini veya bağlantı noktasını yükleyin.

Bu bölümde, bir tünel sağlayıcısından yol tariflerinin nasıl alınacağı ve bunların yeniden başlatmalar sırasında kalıcı olacak /etc/rc.conf ayarlarına nasıl dönüştürüleceği gösterilmektedir.

İlk /etc/rc.conf girdisi gif0 genel tünel arabirimini oluşturur:

cloned_interfaces="gif0"

Ardından, bu arabirimi yerel ve uzak uç noktaların IPv4 adresleriyle yapılandırın. Gerçek IPv4 adreslerini değiştirin:MY_IPv4_ADDRREMOTE_IPv4_ADDR

create_args_gif0="tunnel MY_IPv4_ADDR REMOTE_IPv4_ADDR"

IPv6 tünel bitiş noktası olarak kullanılmak üzere atanan IPv6 adresini uygulamak için, atanan adresle değiştirerek şu satırı ekleyin:MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR

ifconfig_gif0_ipv6="inet6 MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

Ardından, IPv6 tünelinin diğer tarafı için varsayılan yolu ayarlayın. Sağlayıcı tarafından atanan varsayılan ağ geçidi adresiyle değiştirin:Replace with the default gateway address assigned by the provider:MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR

ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

FreeBSD sistemi IPv6 paketlerini ağın geri kalanı ile dünya arasında yönlendirecekse, ağ geçidini şu satırı kullanarak etkinleştirin:

ipv6_gateway_enable="YES"

33.9.4. Yönlendirici Bildirisi ve Ana Bilgisayar Otomatik Yapılandırması

Bu bölümde, IPv8 varsayılan yolunu tanıtmak için rtadvd(6)'in nasıl ayarlanacağı gösterilmektedir.

rtadvd(8) özelliğini etkinleştirmek için /etc/rc.conf dosyasına aşağıdakileri ekleyin:

rtadvd_enable="YES"

IPv6 yönlendirici bildirisinin yapılacağı arabirimin belirtilmesi önemlidir. Örneğin, rtadvd(8)'rl0 kullanmasını söylemek için:

rtadvd_interfaces="rl0"

Ardından, bu örnekte görüldüğü gibi /etc/rtadvd.conf yapılandırma dosyasını oluşturun:

rl0:\
:addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:

rl0'ı kullanılacak arabirimle ve tahsisin önekiyle değiştirin.2001:db8:1f11:246::

Ayrılmış bir alt ağ için başka hiçbir şeyin değiştirilmesi gerekmez. Aksi takdirde, doğru değere değiştirin./64prefixlen#

33.9.5. IPv6 ve IPv4 Adres Eşleme

IPv6 bir sunucuda etkinleştirildiğinde, IPv4 eşlenmiş IPv6 adresi iletişimini etkinleştirmeniz gerekebilir. Bu uyumluluk seçeneği, IPv4 adreslerinin IPv6 adresleri olarak gösterilmesini sağlar. IPv6 uygulamalarının IPv4 ile iletişim kurmasına izin vermek veya bunun tersi de bir güvenlik sorunu olabilir.

Bu seçenek çoğu durumda gerekli olmayabilir ve yalnızca uyumluluk için kullanılabilir. Bu seçenek, yalnızca IPv6 uygulamalarının çift yığınlı bir ortamda IPv4 ile çalışmasına izin verir. Bu, yalnızca IPv6 ortamını desteklemeyebilecek üçüncü taraf uygulamalar için çok kullanışlıdır. Bu özelliği etkinleştirmek için /etc/rc.conf dosyasına aşağıdakileri ekleyin:

ipv6_ipv4mapping="YES"

RFC 3493, bölüm 3.6 ve 3.7'deki bilgilerin yanı sıra RFC 4038 bölüm 4.2'deki bilgilerin gözden geçirilmesi bazı yöneticiler için yararlı olabilir.

33.10. Ortak Adres Artıklığı Protokolü (CARP)

Ortak Adres Artıklığı Protokolü (CARP), bir veya daha fazla hizmet için yüksek kullanılabilirlik sağlamak amacıyla birden çok ana bilgisayarın aynı IP adresini ve Sanal Ana Bilgisayar Kimliğini (VHID) paylaşmasına olanak tanır. Bu, bir veya daha fazla ana bilgisayarın başarısız olabileceği ve kullanıcıların bir hizmet hatası görmemesi için diğer ana bilgisayarların şeffaf bir şekilde devralacağı anlamına gelir.

Paylaşılan IP adresine ek olarak, her ana bilgisayarın yönetim ve yapılandırma için kendi IP adresi vardır. Bir IP adresini paylaşan tüm makineler aynı VHID'ye sahiptir. Her sanal IP adresi için VHID, ağ arabiriminin yayın etki alanı genelinde benzersiz olmalıdır.

CARP kullanarak yüksek kullanılabilirlik FreeBSD'de yerleşiktir, ancak yapılandırma adımları FreeBSD sürümüne bağlı olarak biraz değişir. Bu bölüm, FreeBSD 10'dan önceki ve FreeBSD <>'a eşit veya sonraki sürümler için aynı örnek yapılandırmayı sağlar.

Bu örnek, yük devretme desteğini, tümü benzersiz IP adreslerine sahip, ancak aynı web içeriğini sağlayan üç ana bilgisayarla yapılandırır. Adlandırılmış iki farklı master'ı vardır ve , adında paylaşılan bir yedekleme ile .hosta.example.orghostb.example.orghostc.example.org

Bu makineler Round Robin DNS yapılandırmasıyla yük dengelenir. Ana makineler ve yedekleme makineleri, ana bilgisayar adları ve yönetim IP adresleri dışında aynı şekilde yapılandırılır. Bu sunucular aynı yapılandırmaya sahip olmalı ve aynı hizmetleri çalıştırmalıdır. Yük devretme gerçekleştiğinde, paylaşılan IP adresindeki hizmete yapılan istekler yalnızca yedekleme sunucusunun aynı içeriğe erişimi varsa doğru yanıtlanabilir. Yedekleme makinesi, ana içerik sunucusunun IP adreslerinin her biri için bir tane olmak üzere iki ek CARP arabirimine sahiptir. Bir hata oluştuğunda, yedekleme sunucusu başarısız olan ana makinenin IP adresini alır.

33.10.1. FreeBSD 10 ve Sonrasında CARP Kullanımı

/boot/loader.conf dosyasına carp.ko çekirdek modülü için bir girdi ekleyerek CARP için önyükleme zamanı desteğini etkinleştirin:

carp_load="YES"

Modülü şimdi yeniden başlatmadan yüklemek için:

# kldload carp

Özel çekirdek kullanmayı tercih eden kullanıcılar için, özel çekirdek yapılandırma dosyasına aşağıdaki satırı ekleyin ve FreeBSD Çekirdeğini Yapılandırma bölümünde açıklandığı gibi çekirdeği derleyin:

device	carp

Ana bilgisayar adı, yönetim IP adresi ve alt ağ maskesi, paylaşılan IP adresi ve VHID, /etc/rc.conf dosyasına girdiler eklenerek ayarlanır. Bu örnek şunlar içindir:hosta.example.org

hostname="hosta.example.org"
ifconfig_em0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 1 pass testpass alias 192.168.1.50/32"

Sonraki giriş kümesi . İkinci bir ana bilgisayarı temsil ettiğinden, farklı bir paylaşılan IP adresi ve VHID kullanır. Ancak, CARP yalnızca doğru parolaya sahip makinelerden gelen reklamları dinleyeceği ve kabul edeceği için belirtilen parolalar aynı olmalıdır.hostb.example.orgpass

hostname="hostb.example.org"
ifconfig_em0="inet 192.168.1.4 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 2 pass testpass alias 192.168.1.51/32"

Üçüncü makine, her iki ana makineden de yük devretmeyi işleyecek şekilde yapılandırılmıştır. Bu makine, biri ana ana bilgisayarların her biri için sanal IP adresini işlemek üzere iki CARPVHID ile yapılandırılmıştır. CARP reklam eğriliği, yedekleme ana bilgisayarının ana bilgisayardan daha sonra reklam vermesini sağlamak için ayarlanmıştır, çünkü birden çok yedekleme sunucusu olduğunda öncelik sırasını kontrol eder.hostc.example.orgadvskewadvskew

hostname="hostc.example.org"
ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0"
ifconfig_em0_alias0="inet vhid 1 advskew 100 pass testpass alias 192.168.1.50/32"
ifconfig_em0_alias1="inet vhid 2 advskew 100 pass testpass alias 192.168.1.51/32"

İki CARPVHID'in yapılandırılmış olması, ana sunuculardan birinin kullanılamaz hale gelip gelmediğini fark edeceği anlamına gelir. Bir yönetici yedekleme sunucusundan önce reklam veremezse, yedekleme sunucusu, ana sunucu yeniden kullanılabilir hale gelene kadar paylaşılan IP adresini alır.hostc.example.org

Özgün ana sunucu yeniden kullanılabilir hale gelirse, sanal IP adresini otomatik olarak geri bırakmaz. Bunun gerçekleşmesi için, önlemin etkinleştirilmesi gerekir. Özellik varsayılan olarak devre dışıdır, sysctl(8) değişkeni ile kontrol edilir. Yönetici, yedekleme sunucusunu IP adresini ana sunucuya döndürmeye zorlayabilir:hostc.example.orgnet.inet.carp.preempt

# ifconfig em0 vhid 1 state backup

Yapılandırma tamamlandıktan sonra, ağı yeniden başlatın veya her sistemi yeniden başlatın. Yüksek kullanılabilirlik artık etkindir.

CARP işlevselliği, carp(8) kılavuz sayfalarında belgelenen çeşitli sysctl(4) değişkenleri aracılığıyla kontrol edilebilir. Diğer eylemler devd(8) kullanılarak CARP olaylarından tetiklenebilir.

33.10.2. FreeBSD 9 ve Öncesi Sürümlerde CARP Kullanımı

FreeBSD'nin bu sürümleri için yapılandırma, önceki bölümde açıklananlara benzer, ancak önce bir CARP cihazının oluşturulması ve yapılandırmada başvurulması gerekir.

/boot/loader.conf dosyasına if_carp.ko çekirdek modülünü yükleyerek CARP için önyükleme zamanı desteğini etkinleştirin:

if_carp_load="YES"

Modülü şimdi yeniden başlatmadan yüklemek için:

# kldload carp

Özel çekirdek kullanmayı tercih eden kullanıcılar için, özel çekirdek yapılandırma dosyasına aşağıdaki satırı ekleyin ve FreeBSD Çekirdeğini Yapılandırma bölümünde açıklandığı gibi çekirdeği derleyin:

device	carp

Ardından, her ana bilgisayarda bir CARP cihazı oluşturun:

# ifconfig carp0 create

Gerekli satırları /etc/rc.conf dosyasına ekleyerek ana bilgisayar adını, yönetim IP adresini, paylaşılan IP adresini ve VHID'yi ayarlayın. Diğer ad yerine sanal bir CARP cihazı kullanıldığından, . İşte girişler:/24/32hosta.example.org

hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"

Üzerinde:hostb.example.org

hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"

Üçüncü makine, , ana ana bilgisayarlardan birinden yük devretmeyi işleyecek şekilde yapılandırılmıştır:hostc.example.org

hostname="hostc.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"

Preemption, GENERIC FreeBSD çekirdeğinde devre dışı bırakılır. Önalım özel bir çekirdekle etkinleştirildiyse, IP adresini özgün içerik sunucusuna geri göndermeyebilir. Yönetici, şu komutla yedekleme sunucusunu IP adresini yöneticiye döndürmeye zorlayabilir:hostc.example.org

# ifconfig carp0 down && ifconfig carp0 up

Bu, doğru konağa karşılık gelen sazan arayüzünde yapılmalıdır.

Yapılandırma tamamlandıktan sonra, ağı yeniden başlatın veya her sistemi yeniden başlatın. Yüksek kullanılabilirlik artık etkindir.

33.11. VLAN'lar

VLAN'lar, bir ağı segmentasyon olarak da adlandırılan birçok farklı alt ağa sanal olarak bölmenin bir yoludur. Her segmentin kendi yayın alanı olacak ve diğer VLAN'lardan izole edilecektir.

FreeBSD'de, VLAN'lar ağ kartı sürücüsü tarafından desteklenmelidir. Hangi sürücülerin vlans'ı desteklediğini görmek için vlan(4) kılavuzu sayfasına bakın.

Bir VLAN yapılandırırken, birkaç bilgi parçası bilinmelidir. İlk olarak, hangi ağ arayüzü? İkincisi, VLAN etiketi nedir?

VLAN'ları çalışma zamanında yapılandırmak için, komutun NIC ve VLAN etiketi şöyle görünür:em05

# ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24

Arabirim adının NIC sürücü adını ve VLAN etiketini nokta ile ayrılmış olarak nasıl içerdiğini görüyor musunuz? Bu, bir makinede çok sayıda VLAN bulunduğunda VLAN yapılandırmasının bakımını kolaylaştırmak için en iyi uygulamadır.

VLAN'ları önyükleme zamanında yapılandırmak için /etc/rc.conf güncelleştirilmelidir. Yukarıdaki yapılandırmayı çoğaltmak için aşağıdakilerin eklenmesi gerekir:

vlans_em0="5"
ifconfig_em0_5="inet 192.168.20.20/24"

Etiketi alana ekleyerek ve ağı bu VLAN etiketinin arayüzünde yapılandıran ek bir satır ekleyerek ek VLAN'lar eklenebilir.vlans_em0

İlişkili donanım değiştirildiğinde, yalnızca birkaç yapılandırma değişkeninin güncelleştirilmesi gerekebilmesi için arabirime sembolik bir ad atamak yararlıdır. Örneğin, güvenlik kameralarının VLAN 1 üzerinden çalıştırılması gerekir. Daha sonra, kart ixgb(4) sürücüsünü kullanan bir kartla değiştirilirse, tüm başvuruların .em0em0em0.1ixgb0.1

VLAN'ı yapılandırmak için, NIC'de arabirim adını atayın ve arabirime -bit önekiyle bir IP adresi atayın, şu komutu kullanın:5em0cameras192.168.20.2024

# ifconfig em0.5 create vlan 5 vlandev em0 name cameras inet 192.168.20.20/24

Adlandırılmış bir arabirim için aşağıdakileri kullanın:video

# ifconfig video.5 create vlan 5 vlandev video name cameras inet 192.168.20.20/24

Değişiklikleri önyükleme zamanında uygulamak için /etc/rc.conf dosyasına aşağıdaki satırları ekleyin:

vlans_video="cameras"
create_args_cameras="vlan 5"
ifconfig_cameras="inet 192.168.20.20/24"

Son değiştirilme tarihi: Ocak 7, 2023 Ceri Davies tarafından

Hiç yorum yok:

Yorum Gönder

Popüler Yayınlar