01.12.2011

802.1 Q Реализация на VLAN за Linux

* Source text URL: http://www.candelatech.com/~greear/vlan.html




Обновен 13 септември 2005

Realease: 1.9

PLUG: Проверете генерация на трафик LANforge и изпитвайте оборудване с метод на моделиране WAN на основа на операционната система Linux:
http://www.candelatech.com/images/candela_swirl_small.png
LANforge прилича на Chariot и Smartbits за нуждите на генерация на трафика. Това може да генерира Ethernet, mUDP, TCP, HTTP, FTR, VOIP 9SIP, RTP0 и другите протоколи. LANforge-ICE е емулятор WAN и инструменти за тестиране на влошаване на мрежа. Това може да въвежда забяване, треперане, пакетната загуба и други мрежови отклонения с управляван начин.
802.1Q код на VLAN сега е част на официалното ядро и ще бъде в течение на много, много години. Код MAC VLAN бе добавен започвайки приблизително от 2.6.9 Твърде маловероятно че е възможно да сваля нещо от този сайт, пакеты са оставени тук за полза на потомство. Изпратете въпроси и отчети за грешките в списък на разпращане на мрежата Linux: netgev@vger.kernel.org
802.1Q VLANs и MAC-VLAN могат да бъдат създадени с ‘IP’ утилита (vconfig на работа за vlans, но неработоспособно и осъдено).
ip link add link eth0 name eth0.5 type vlan id 5
ip link add link eth0 name eth0#1 address 00:aa:bb:cc:dd:ee type macvlan

Остарял раздел

Чул съм, че пачове на ядро 2.2/2.4 са работили с тези (сигурен съм, че и с другите)системи:
Cisco: {Catalyst: 6509}, 3Com: {Corebuilder, Netbuilder II, SuperStack II switch 630}, Alpine: {3804(SMMi,F32Ti)} Extreme Ntwks {Summit 48, 48i, 5i} Foundry: {ServerIronXL, FastIron}
Alteon ACENic Gigabit, 3Com 3c509, realtek RTL8029(AS), RTL8139, DEC DC21140 (tulip), DFE-570TX quad-21143, Intel PRO/1000 with Intel’s driver
Производителността: Разлика в работен трафик по VLANs v/s от регулярното Ethernet е неголяма. Ако някой направил е някакъв сравнителен тест, ще бъде щастлив да поместя го тук!
Свързани ресурси на VLAN.
Информация за инсталиране и конфигурации на vlan.
Достъп CVS.
VLAN- ПРАКТИЧЕСКИТЕ РЕКОМЕНДАЦИИ/FAQ (Някоя определена информация също за CISCO&3COM.)
Другия рецепт за VLAN (Някоя определена информация, определна за Intel EEPRO Nics също.)
Страница VLAN Research на японски език
Страница VLAN на английски език
Стандарт IEEE 802.1Q
Функции
Реализация на спецификации 802.1Q VLAN.
Може да поддържа до 4094 VLANs на интерфейс Ethernet.
Масштаби са добри в критическите пъти: O (n), къде n е число на ФИЗИЧЕСКИ интерфейси на Ethernet, и това се намира само на вход. O (1) във всеки критически път, доколкото зная.
МНОГОАДРЕСНО ПРЕДАНИ поддържки
Можно да променя MAC-адрес на VLAN.
Многократни съглашения за присвояване на имена, поддържани и коригирани във време на изпълнението.
Допълнителното преуреждането на заглавия, за да накара интерфейс VLAN да глежда ТОЧНО ТАКА, КАТО интерфейс Ethernet. Това решава някои проблеми с DHCPd и нещо друго, което използва сокет SOCK_PACKET. Настройката по премълчаване е изключена, той работи на които да е протокол, които аз познавам, и дори малко по-бързо.
Release 1.9 (gz) Latest vconfig & macvlan_config Sept 13, 2005:
Всеки пачове са оставяват в този пакет само в исторически целове. Официален код VLAN и mac-vlan се намира в ядро. Този издаване на исправляване връща кодове на грешката в vconfig.
Release 1.8 (gz) For Kernel: 2.4.21+ Sept 30, 2003:
Обновяван код MAC-VLAN и завършено тестване. На основа на работата на Алекс Зефферт, ами много е било преписано, и той не може да се смята отговорен сега! Изпратете всички отчети за грешките в списък на разпращане на VLAN. Обединен пач Candela Tecnologies е веща, който трябва да прилага сега, тя съдържа свързани остатъци на not-necessarily-VLAN.
Release 1.7m (gz) For Kernel: 2.4.14+ Feb 27, 2003:
Основан на MAC код VLAN, добавен от Алекс Зефферт. Не изцяло функционален, но все пък, еднакво защото повредил съм неговата изходна работа…Каним се да съгласува го скоро. Свалете и използвайте сега необработен пач файл.
Release 1.7 (gz) For Kernel: 2.4.14+ Feb 27, 2003:
Разяснена лицензия за vconfig (GPL). Другите малки тънки настройки.
Release 1.6 (gz) For Kernel: 2.4.14+ March 24, 2002:
Отдалечен пач на ядро 2.4: Това се намира в стандартно ядро понастоящем. Обновен vconfig, който отсранява някои проблеми на компилация и включва кросс-компилация на платформа StrongARM (промяни също трябва да помогнат на другите опити за кросс-компилация)
Release 1.5 (gz) For Kernel: 2.4.12-pre5 October 22, 2001:

Предимно – добавяване на други поправяния от хора и пачове (благодарям на хора!)
Накрая фиксировано изтичане на списъка мГц (Ард ван Бримен)
Списък мГц на хвърляне в vlan-destory (Ард ванн Бримен)
Добявате vconfig страница на справочника към разпределение (Ард ван Бримен)
Решите проблема c/proc и преименуваще устройство VLAN (AF B devcon D.T мрежа)
Добавите оносително голяма промяна на Ник Еггелстон, който прави устройства на VLAN по-прозрачни към инструменти като tcpdump, така и другите необработени пакетни шпиони. Това ще бъде включено само тогава, когато флаг REORDER_HDR ще бъде установен.
Release 1.4 (gz) For Kernel: 2.4.8 August 16, 2001:

Код не трябва да изисква на интерфейс/proc за да достигна IOSTLs. IOCTLs са свързани сега със сокет. При използване на модули товасега може да качва автоматически…
– фиксирована редовна грешка на формат proc fs на дисплей.
– поправена грешкатана катастрофическия отказ, отнасяща се към отделяне на паметта със съхранени блокировките (сега използваме GF_ATOMIC),
– hard_start_xmit сега създа заглавие на пакета, ако няма да бъде дъстаточна височина.
Това може да решава MPLS-over-VLAN проблем, макар че реалното решение състои в това да накара MPLS да отделя повече височина, тъй или иначе…
– vconfig бе променен, за да използва новия API IOCTL, и стария vconfig НЯМА да РАБОТИ с този или който и да е по-нови пачове.
Release 1.0.3 (gz) For Kernel: 2.4.7 August 5, 2001:
Преправен код, който е станал по-устойчив, се появи по-вече на встроено, такъво, че специалисти по обслужване на ядро трябва да виждат пред пача VLAN, включен в ядро.
Едно от тези запитвания трябва да променя схема на именование по премълчаване на eth0,5 за VLAN VID 5 на eth0. Можете да преопределите този поведение на именование с vconfig инструмент.
– Са били *NO* промяни в 2.2 серийни пачове, и аз не чакам на голями промяни там
Release 1.0.1 (gz) For Kernel: 2.2.18/19, 2.4.3-pre3 April 16, 2001:
Включена фиксация за да променя MAC на VLAN, сега се установява правилно PACKET_HOST, благодаря на Мартин Бокеемпър.
– сериен пач 2.4 сега трябва да скомпилира като модул, благодаря на тънка настойка от някой, чийто имейл загубил съм! Тъй или иначе, привет за неназвания кодър!
Имаше *NO* промяни в серия пач 2.2., макар че аз наистина проверил съм, че това, струва ми се, работи хубаво с 2.2.9 ядра.
Release 1.0.0 (gz) For Kernel: 2.2.18, 2.4.0 Jan 14, 2001:
Наистина, фиксирован (и протестван) на изменяемостта MAC. Кога установете MAC-адрес на VLAN, той също ще опитва да установя базово устройство в режим PROMISCious (в противен случай, VLAN няма да получава пакети).
– Търсене на хеширано устройството е изключено по премълчаване, защото някои хора изпитват трудностите поради устройството ‘lo’. Не се стеснявайте да вкючва повторно, редактирайки на ред net/core/dev.c (търсене #define BEN_FAST_DEV_LOOKUP).
-vconfig трябва да предупреди при създаване на VLAN1, защото този VLAN е несъвместим с многи превключатели.
Release 0.0.15 (gz) For Kernel: 2.2.18, 2.4.prerelease Dec 31, 2000:
Обединено мнозинство на пачове на Матти Аарнио. Това не означава съществено изменение па пача к eth.c, но който сега помогна на порт VLANs за устройства не-Etherner (тоест ppp, TokenRing?).
-Установка на MAC-адрес трябва да работи сега. Мисля, че бе повредено преди.
– Различна перестройка на кода за да напрявя пачове к съществуващи файлове по-малки.
Release 0.0.14 (gz) For Kernel: 2.2.17, 2.4.pre9 Oct 26, 2000:
Този код изглежда дъстаточно устойвич.
Отстранено vlan-space-per-machine, за такъв начин че vlan-space-per-NIC е задължителен сега.  
DHCP може да работи сега, тъй като добавил съм поддържка на енкапсулация на регулярните канали на Ethernet, ако те са изпратени в vlan драйвер.
– Съгласуван материал за хешироване на име/индекс, за да обработя промяна на име на устройство.
Извадил съм VID по премълчаване и поставил приоритет по премълчаване, тъй като тяхната usefulness бе разгледана, и код бе повреден тъй или иначе.
Release 0.0.13 (gz) For Kernel: 2.2.17, 2.4.pre9 Oct 11, 2000:
ИЗВЕСТНО, какво е било СЧУПЕНО, тук, за полза на потомство
Добавена поддържка на МНОГОАДРЕСНА ПЕРЕДАЧА към устройства VLAN.
Благодаря на Gleb&Co за големия дял на този код.
Добавена възможността да установява MAC-адрес на VLAN. Понастоящем Вие или трябва да установите NIC Ethernetr в режим PROMISC, или възможно да изяснете някой многоадресен Ethernet-адрес, за да установя на NIC. Но това не било протествано хубаво изобщо.
Добавена хеширана схема за търсене на име на устройство. Това значително ускори ifconfig-a. Успял съм да изпълня ifconfig-a след 20 секунди на Celeron 500 с 4000 vlan на конфигурирани устройства.
Добавен vlan_test.pl за да помогна ми да намира нями грешки. Не се стеснявайте да правя това много по-мощно и предава код пък на мен!
Vconfig.c бе преобразуван в код C, сега вместо C++. Благодаря на MATHIEU.
Значително очищен код w/out, намаляващия всека полезна функционалност, вярвам в това.

Отдалечния материал DHCP от разпределяне VLAN.

Release 0.0.12 (gz) For Kernel: 2.2.16, 2.4.pre7 August 27, 2000:
Добавена възможността да преурежда пакт VLAN за да би приличало на реален пакет на Ethernet за входяща трасса. Това трябва да помогна на DHCP и други програми, които настояват за да чета необработан буфер и след това да правя предположения за байтово изместяване. Аз нямам хубав метод за да протествам това изцяло, затова смятам го за екпериментален:) Този поведение може да бъде изменено във време на изпълнението и установено на VLAN-базис. Значение по премълчаване не може да преуреждава заглавие, което било единствено поведение на тази точка. Vconfig програма може да установи/очистя флаг с помощта на IOCTL VLAN. Можете да смятате значение на флага proc/net/vlan/vlan * в файли.
Също можете да установете приоритет по премълчаване на устройство NON-VLAN. Този приоритет ще бъде използван само кога default_VID за устройство също бъде установен. Този приоритет няма да бъде отразен никъде, само скопиран пряко в skb-&gt% приоритет Това е uint16.

Този пач 2.3 – сега е пач 2.4, и това бе протествано срещу 2.4pre7.
Release 0.0.11 (gz) For Kernel: 2.2.13/14, 2.3.99 April 23, 2000:
Добавена е реална поддържка PRIORITY. През повикване IOPCTL (виж. Vconfig программа) можете да установите явен вход и изходящи изобразявания к/от битове QOS VLAN и sk_buff-&gt% приоритетно поле. Това не е протествано както трябва, тъй като аз много не зная за това как хора наистина използват приоритетно поле…
Извадил е циклически алгоритъм aggregation, който влязъл е в rls0.10, тъй като то е бил предимно взлом и изпълнението на агрегация на линка на по-ниско ниво и след това поместяване на VLAN, освен това, виртуално устройство вероятно има повече смисъл. Vconfigg программа се е променяла, за да поддържа новите функции.

Ето го новото използване:

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 бе портиран forward на 2.3.99, благодаря на Патрик, за обновявания vlanproc.c!

okok