802.1 Q VLAN rakendamise Linux

Link: https://www.candelatech.com/~greear/

PLUG: tutvu LANforge liikluse põlvkonna ja WAN mudelkatse seadmed, mis põhinevad Linuxi operatsioonisüsteem:
8
LANforge on sarnane Charriot ja Smartbits liikluse põlvkonna vajadustele. See võib tekitada Ethernet, UDP, TCP, HTTP, FTP, VOIP (SIP, RTP) ja muid protokolle. LANforge-JÄÄ on WAN emulaator ja võrgu-väärtuse test vahend. See võib süstida latency, värin, packet loss ja muud võrgu häired kontrollitud mood.
802.1Q VLAN code is now part of the official kernel, and has been for years and years. MAC-VLAN code has been added since around 2.6.29. It is very unlikely that you need to download anything from this site, the packages are left here for posterity’s sake. Please send questions and bug reports to the linux network mailing list: [email protected].

802.1Q VLANs and MAC-VLANs can be created with the ‚ip‘ utility (vconfig works for vlans, but is crufty and deprecated).

ip link add link eth0 nimi eth0.5 tüüp vlan id 5
ip link add link eth0 nimi eth0#1 aadress 00:aa:bb:cc:dd:ee type macvlan

—- Pärand Jagu —–

Olen kuulnud, et 2.2/2.4 kernel laigud ei töötanud need (ja muud, ma olen kindel, et süsteemid):

  • Cisco: {Katalüsaator: 6509}, 3Com: {Corebuilder, Netbuilder II, SuperStack II switch 630}, Alpi: {3804(SMMi,F32Ti)} Äärmuslik Ntwks {Tippkohtumisel 48, 48i, 5i} Sulatus: {ServerIronXL, FastIron}
  • Alteon ACENic Gigabit, 3Com 3c509, realtek RTL8029(AS), RTL8139, KAHANDA DC21140 (tulp), DFE-570TX quad-21143, Intel PRO/1000 Intel juht

Koht: erinevus töötab liikluse üle VLANs v/s regulaarne ethernet on väga väike. Kui keegi on teinud mingi benchmark, ma olen õnnelik, et see koht siin!

VLAN seotud Ressurssidest.

Omadused

  • Rakendatakse 802.1 Q VLAN spec.
  • Saab toetada kuni 4094 VLANs ühe etherneti liides.
  • Kaalud hästi kriitiline, teed: O(n), kus n on number, mis on FÜÜSILINE ethernet liidesed, ja see on ainult sissepääs. O(1) iga muu elutähtsa tee, niipalju kui ma tean.
  • Toetab MULTICAST
  • Saab muuta MAC aadress VLAN.
  • Mitu nimepanekureeglid toetatud, ja reguleeritav käitusajal.
  • Valikuline päis-ümbertõstmine, et teha VLAN interface vaadata NAGU Ethernet-liides. See parandab mõningaid probleeme DHCPd ja kõike muud, mis kasutab SOCK_PACKET pesa. Vaikimisi seadistus on välja lülitatud, mis töötab iga muu protokolliga ma tean, ja on veidi kiirem.

Change Log

  • Pressiteade 1.9 (gz) Viimane vconfig & macvlan_config Sept 13, 2005:
    • Kõik plaastrid jäänud see pakett on ajaloolistel eesmärkidel ainult. Ametlik VLAN-ja mac-vlan-kood on kernel. See versioon fikseerib tagasi vea koodide vconfig.
  • Pressiteade 1.8 (gz) Kernel: 2.4.21+ Sept 30, 2003:
    • Uuendatud MAC-VLAN kood ja läbi viidud testimine. Põhineb Alex Zeffertt töö, kuid palju on ümber kirjutatud ja ta ei saa olla vastutav! Palun saata kõik veateateid, et VLAN-posti nimekirja. Kui Candela Tehnoloogiate ühendatud patch on asi, mida kohaldatakse nüüd, ja see sisaldab mitmeid teisi ei-pruugi-VLAN seotud bitti ja tükki.
  • Pressiteade 1.7 m (gz) Kernel: 2.4.14+ Veebr 27, 2003:
    • Lisatud Alex Zeffertt on MAC-based VLAN-kood. Ei täisfunktsionaalne veel (enamasti, sest ma murdsin oma teose originaali…hakkan seda parandada varsti. Haara & kasutada oma töötlemata plaaster* faile vahepeal.
  • Pressiteade 1.7 (gz) Kernel: 2.4.14+ Veebr 27, 2003:
    • Selgitada litsentsi vconfig (GPL). Teiste väikeste tweaks.
  • Pressiteade 1.6 (gz) Kernel: 2.4.14+ Märts 24, 2002:
    • Eemaldada 2.4 kernel patch: See on standard kernel nüüd.
    • Uuendatud vconfig määrata mõned koostada küsimusi, ja võimaldab piiriülese kompileerimine, et StrongARM platvorm (muudatused peaksid aitama teiste risti-koostada katsed liiga.)
  • Pressiteade 1.5 (gz) Kernel: 2.4.12-pre5 oktoober 22, 2001:
    • Enamasti lisatud teiste rahvaste parandusi ja plaastrid (tänu folks!)
    • Lõpuks fikseeritud mc-list lekke (Ard van Breemen)
    • Flush mc-nimekiri on vlan-destory (Ard van Breemen)
    • Lisa vconfig mees leht jaotus (Ard van Breemen)
    • Fix probleem /proc ja ümbernimetamine VLAN-seadmed (af KELL devcon D. T neto)
    • Lisa on suhteliselt suured muutused Nick Eggelston, mis muudab VLAN-seadmed läbipaistvamaks tööriistad nagu tcpdump ja muud raw pakettaknad snoopers. See on ainult siis lubatud, kui REORDER_HDR lipp on seatud.
  • Pressiteade 1.4 (gz) Kernel: 2.4.8 August 16, 2001:
    • Koodi ei tohiks enam nõuda /proc liidest, et saada juures IOCTLs. Kui IOCTLs on nüüd seotud pistikupesad. Kui kasutate moodulid, võib see auto-load nüüd, liiga…
    • Määratud formaat viga proc fs kuvada.
    • Fixed crash bug, mis on seotud mälu eraldamise lukkudega toimus (me nüüd kasutada GF_ATOMIC)
    • hard_start_xmit kasvab pakettaknad päis, kui pole piisavalt vaba kõrgus. See võib fix on MPLS-üle-VLAN probleem, kuigi reaalne lahendus on teha MPLS eraldada rohkem kõrgusega igatahes…
    • vconfig oli muutunud kasutada uut IOCTL API, ja vana vconfig EI TÖÖTA see või mõni uuem laigud…
  • Pressiteade 1.0.3 (gz) Kernel: 2.4.7 August 5, 2001:
    • Re-kood töötas olema stabiilsem ja rohkem kooskõlas, mida kernel hooldajad tahavad näha enne VLAN plaaster on lisatud kernel.
    • Üks neist taotlused, oli vaike nimetamine kava eth0.5, VLAN, VID 5 kohta eth0. Saab üle sõita see nime käitumine koos vconfig vahend.
    • Seal olid *EI* muudatused 2.2 seeria plaaster, ja ma ei usu, et kunagi teha veel muudatusi seal…
  • Pressiteade 1.0.1 (gz) Kernel: 2.2.18/19, 2.4.3-pre3 aprill 16, 2001:
    • Inkorporeeritud fix vahetamine MAC-i kohta, VLAN, nüüd õigesti komplekti PACKET_HOST. Tänu Martin Bokaemper selle ühe.
    • 2.4 seeria plaaster tuleks nüüd koostada moodul, tänu näpistama, keegi, kes on kiri, et ma olen kaotanud! Igatahes, 3 cheers üro-nimeline kooder!
    • Seal olid *EI* muudatused 2.2 seeria paik, kuigi ma ei veenduge, et tundub, et töö hästi, et 2.2.19 kernel.
  • Pressiteade 1.0.0 (gz) Kernel: 2.2.18, 2.4.0 Jan 14, 2001:
    • Tõesti fikseeritud (ja testitud), MAC muutmine-võime. Kui seate MAC aadressi VLAN, see on samuti püütud kehtestada aluseks oleva seadme PROMISCious režiim (vastasel korral VLAN ei saa pakette.)
    • Räsitud-seade lookup on vaikimisi keelatud, sest mõned inimesed olid hädas, “ lo “ seade. Vastake uuesti sisse lülitada, muutes line in net/core/dev.c (otsi #define BEN_FAST_DEV_LOOKUP).
    • vconfig peaks hoiatama loomisel VLAN 1, sest et VLAN ei ole kooskõlas paljud lülitid.
  • Pressiteade 0.0.15 (gz) Kernel: 2.2.18, 2.4.väljalaske-eelse Dets 31, 2000:
    • Ühinenud enamik Matti Aarnio on plaastrid. See tähendab, et ei ole olulist plaaster eth.c nüüd, ja aitab port VLANs, et mitte-ethernet-seadmed (st avaliku ja erasektori partnerluse, TokenRing??).
    • Seadistamine MAC aadress peaks tegema nüüd..ma arvan, et see oli katki enne.
    • Mitmesugused kood uuesti organisatsioon teha plaastrid olemasolevad failid väiksemad.
  • Pressiteade 0.0.14 (gz) Kernel: 2.2.17, 2.4.pre9 Okt 26, 2000:
    See kood tundub üsna stabiilne.

    • Eemaldada vlan-space-iga masina, nii et vlan-ruumi-per-NIC on nüüd kohustuslik.
    • DHCP võiks teha nüüd, kui olen lisanud toetust kapseldamist regulaarne etherneti kaadrite kui nad saadetakse vlan juht.
    • Fikseeritud üles nimi/index segamist kraami käepide nime muutmine seade.
    • Võtsin vaikimisi VID & vaikimisi prioriteediks, sest nende usefullness oli küsimus, ja kood oli katki niikuinii.
  • Pressiteade 0.0.13 (gz) Kernel: 2.2.17, 2.4.pre9 Okt 11, 2000:
    TEADA, ET BUSTED, siin põlvede huvides.

    • Lisatud toetus MULTICAST, et VLAN seadmed. Tänu Gleb & Co kõige selle koodi.
    • Lisatud võime luua MAC aadress VLAN. Nüüd, sul kas on vaja, et määrata oma Ethernet NIC arvesse PROMISC mode, või võib-olla aru saada mõned multi-loo etherneti aadress seatud NIC. See ei ole testitud ka üldse.
    • Lisatud räsitud seadme nimetus otsingu süsteemi. See oluliselt kiirendab ifconfig -a. Mul oli võimalus joosta ifconfig -a 20 sekundit Celeron 500, 4000 vlan-seadmed konfigureeritud!!
    • Lisatud vlan_test.pl et aidata mul leida rumalad vead. Julgelt teha see palju võimsam, ja saata selle koodi mulle tagasi!
    • vconfig.c on ümber C-koodi nüüd, selle asemel, et C++. Tänu MATHIEU.
    • Oluliselt puhastada, kood w/out kahandamise kasulikke funktsioone, ma usun.
    • Eemaldatud DHCP värk alates VLAN jaotus.
  • Pressiteade 0.0.12 (gz) Kernel: 2.2.16, 2.4.pre7 August 27, 2000:
    Lisada võime uuesti tellida VLAN pakettaknad, nii et see näeb välja nagu tõeline ethernet pakettaknad, et sissepääsu rada. See peaks aitama DHCP ja muud programmid, mis nõuavad lugemine raw puhver ja siis teha oletusi selle kohta, bait tasakaalustamisega. Mul ei ole hea viis testida seda täielikult, nii et kaaluge seda eksperimentaalse 🙂 sellist käitumist saab muuta töö ajal, ja on määratud iga VLAN-alus. Vaikimisi on MITTE muuta, päis, mis on olnud ainult käitumist üles kuni see punkt. vconfig program saab määrata/kustuta märge, kasutades VLAN IOCTL. Te saate lugeda lipp on väärtus /proc/net/vlan/vlan* faile.Saate määrata ka vaikimisi prioriteet MITTE-VLAN seade. See prioriteet on kasutada ainult juhul, kui default_VID seade on seatud samuti. See prioriteet ei ole kaardistatud kusagil, lihtsalt kopeeritud otse skb->prioriteet. See on uint16.2,3 plaaster on nüüd 2.4 paik, ja see on testitud vastu 2.4.pre7.
  • Pressiteade 0.0.11 (gz) Kernel: 2.2.13/14, 2.3.99 aprill 23, 2000:
    Lisada tõelist toetust eelisjärjekorras. Läbi IOCTL kõned (vt vconfig programm), saate määrata selgesõnalise sissepääs ja väljapääs kaardistamisel/VLAN QOS bitti ja sk_buff->prioriteetne valdkond. See ei ole testitud väga hästi, kui ma ei tea palju sellest, kuidas inimesed tõesti kasutada väljale prioriteet… Võttis välja round-robin aggretation, et läks vastavalt rls 0.10, nagu see oli peamiselt lihtsalt hack, ja teeme link aggregation madalamal tasemel ja siis paneb VLAN peal, et virtuaalne seade ilmselt mõttekam. Kui vconfig programmi muuta, et toetada uusi funktsioone..siin on see uus kasutamine:

    Usage: add             [interface-name] [vlan_id]
           rem             [vlan-name]
           set_dflt        [interface-name] [vlan_id]
           add_port        [port-name]      [vlan_id]
           rem_port        [port-name]      [vlan_id]
           set_egress_map  [vlan-name]      [skb_priority]   [vlan_qos]
           set_ingress_map [vlan-name]      [skb_priority]   [vlan_qos]
           set_name_type   [name-type]
           set_bind_mode   [bind-type]
    
    * The [interface-name] is the name of the ethernet card that hosts
      the VLAN you are talking about.
    * The port-name is the name of the physical interface that a VLAN
      may be attached to.
    * The vlan_id is the identifier (0-4095) of the VLAN you are operating on.
    * skb_priority is the priority in the socket buffer (sk_buff).
    * vlan_qos is the 3 bit priority in the VLAN header
    * name-type:  VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
                  DEV_PLUS_VID (eth0.0005), DEV_PLUS_VID_NO_PAD (eth0.5)
    * bind-type:  PER_DEVICE  # Allows vlan 5 on eth0 and eth1 to be unique.
                  PER_KERNEL  # Forces vlan 5 to be unique across all devices.
    

    2,3 plaastrid on teisaldatud edasiliikumise, et 2.3.99, tänu Patrick jaoks vlanproc.c uudiseid!

VLAN Seadistamine ja häälestamine

Et alustada, siis tahad, et alla laadida viimane vlan.X.X.tar.gz fail (oma $HOME kataloogi.) Paki see oma lemmik käske, näiteks: tar-xvzf vlan.1.6.tar.gz sealt saad selle CVS-Hoidlale, kasutades midagi sellist:

  1. Installi ja seadistada oma masinat.
  2. Täpsustada vlan hoidla:
    export CVSROOT=:pserver:[email protected]:/home/cvs_user/vlan
  3. Logi sisse hoidlasse:
    cvs login (PAROOL: anonüümne)
  4. tutvu allikas:
    mkdir vlan; cd vlan; cvs -z3 kassasse vlan

Nüüd, siis peaks olema vlan kataloogi oma kataloogi. Sul on ainult kernel patch, kui te kasutate Linux 2.4.14 või varem. Nüüd, lugenud README või muud docs, et aru saada, mis kernel see plaastrid vastu. Nimekiri peeglid hoitakse www.kernel.org. Unzip ja üro-tõrva seda oma kataloogi ka, mis tuleks luua linuxi kataloogi oma $HOME kataloogi. Näide: tar-xvzf linux-2.2.14.tar.gz

Nüüd lisada VLAN kerneli muudatuste kernel kui teie kernel seda nõuab. Ma lõpuks aru saanud, kuidas teha laigud, mis erinevus saab hakkama (ma arvan, et ma tegin seda õigesti vähemalt!). Leiad paiga, et vlan kataloog. Seda nimetatakse: vlan.patch või midagi võrdselt sirge-edasiliikumise. Kehtivad plaaster oma tuuma:

cd $HOME/linux
plaaster -p 1 < $HOME/vlan/[vlan.plaaster]

Sinu uus, paigatud, kernel peaks olema teie SISALDAVAD tee enne kui üritad kompileerida vconfig programmi. Üks viis, kuidas saada asju, töö on link $HOME/linux ‚linux‘ kataloog, et sa lihtsalt un-zip ja paigatud. Käsk võib olla midagi sellist: cd $HOME; ln -s /home/greear/kernel/2.4/linux.dev linux

Ehitada vconfig programmi kataloogis $HOME/vlan directory:
cd $HOME/vlan
tee

Nüüd on aega, et koostada oma uue kerneli! Kasuta make xconfig command oma $HOME/linux kataloogi valimiseks kernel valikud. Valik on seotud 802.1 Q VLANs on leitud vastavalt Võrgustike valikud. Kui optsioon ei ole esile tõstetud, veenduge, et valite „Eksperimentaalne Juhtide“ ühe esimese xconfig menüüd.

Eeldades, et kernel kompileeritud puhtalt (kisa, kui see ei ole ja sa arvad, et minu kood murdis!!), nüüd olete valmis seda proovida!! Install kernel tavalisel viisil (fix up your /etc/lilo.conf faili asjakohaselt ja käivitada lilo root.) Taaskäivitab teie arvuti ja vali oma uus kernel.

Kui teie arvuti on tagasi elu, seal on väike märk, et teil on nüüd 802.1 Q võimelised muud kui rida sülitada välja ajal boot protsessi. Seal peaks olema config programmid oma $HOME/vlan kataloog: vconfig. vconfig kasutatakse, et luua ja hävitada VLAN seadmed. Nii, võimaldab luua VLAN seade oma esimese ethernet NIC. vconfig<tagasi> nimekirja lühikese suostuttelupuhe selle kohta, kuidas seda kasutada. Kui vconfig käsk ma tavaliselt kasutan on:

vconfig lisada eth0 5

See üritab luua VLAN seade, VLAN-ID on 5 kohta eth0 seadet. Kui soovite kustutada VLAN, kasuta midagi sellist:

vconfig rem eth0.5

Sul on ka vaja anda talle ip, nt: ifconfig -i eth0.5 192.168.2.1
ja seadista see ÜLES: ifconfig -i eth0.5 kuni

MÄRKUS: saad palju VLAN seotud konfiguratsiooni andmed alates /proc/net/vlan/* failid, kasutades „kass“ või „rohkem“, et neile otsa vaadata.

Palun võtke ühendust minuga, kui teil on ettepanekuid, plaastrid, või muud märkused.