FreeBSD VLAN mini HowTo

Autor: Tilman Keskinöz arved@FreeBSD.org
Ostatnia modyfikacja: 2002-04-17
Tłumaczenie: Marcin Głowacki marcing@bsd.org.pl
Oryginał tej strony w języku angielskim znajduje się pod adresem: http://people.freebsd.org/~arved/vlan/vlan_en.html

W aktualnej gałęzi FreeBSD 4-stable system oferuje wsparcie dla technologii VLAN w standardzie IEEE 802.1Q.

Przykładowa konfiguracja:

FreeBSD-Host  ---Ethernet---  Cisco Switch

Najpierw upewnij się, że jądro systemu posiada wkompilowaną opcję (szczegółowy opis kompilacji i instalacji jądra znajdziesz w podręczniku systemowym):

pseudo-device vlan 2 # IEEE 802.1Q VLAN Support
Cyfra w powyższej deklaracji określa ilość możliwych do wykorzystania interfejsów VLAN.
(Nie przejmuj się brakiem urządzenia vlan0 w katalogu /dev - pseudo-urządzenia nie posiadają własnych wpisów w tym katalogu).

Od wersji 4.5-RELEASE nie musisz podawać numeru interfejsu.
Zamiast tego możesz utworzyć interfejs VLAN dynamicznie:

ifconfig vlan_interface create

Konfigurację interfejsu vlan0 przeprowadza się następująco:

ifconfig interfejs_vlan vlan id_vlanu vlandev parent_device
parent_device jest interfejsem NIC (kartą sieciową), która jest podpięta do 802.1q-Trunk.

Przykład:

ifconfig vlan 0 vlan 34 vlandev xl0
Następnie musisz określić adres IP dla każdego VLANu:
ifconfig vlan0 inet 128.130.34.35 netmask 255.255.255.128
ifconfig wygląda wtedy mniej więcej tak:
xl0: flags=8843 mtu 1500
        inet 128.130.34.35 netmask 0xffffff80 broadcast 128.130.34.127
        inet6 fe80::204:76ff:fe12:acba%xl0 prefixlen 64 scopeid 0x1
        ether 00:04:76:12:ac:ba
        media: autoselect (100baseTX ) status: active
        supported media: autoselect 100baseTX  100baseTX 10baseT/UTP  10baseT/UTP 100baseTX 

vlan0: flags=8843 mtu 1496
        inet 128.130.34.35 netmask 0xffffff00 broadcast 128.130.34.255
        inet6 fe80::204:76ff:fe12:acba%vlan0 prefixlen 64 scopeid 0x3
        ether 00:04:76:12:ac:ba
        vlan: 34 parent interface: xl0
Jeśli chcesz, aby dot1q-trunk uruchamiany był przy starcie systemu, powinieneś dodać następujące opcje do pliku /etc/rc.conf:
cloned_interfaces="vlan0" #You need a recent STABLE for this else use:
#network_interfaces="lo0 vlan0"
ifconfig_vlan0="inet 128.130.34.35 netmask 255.255.255.128 vlan 34 vlandev xl0" 
#Note: If you do not assign an IP Adress to your parent device, you need to 
#start it explicitly:
ifconfig_xl0="up"
Alternatywnie możesz utworzyć skrypt o nazwie /etc/start_if.xl0 (po kropce należy dodać nazwę parent_device)
i umieścić w nim konieczne komendy. Jest to jednak rozwiązanie mniej eleganckie.

Poniżej przykład jak skonfigurować drugi koniec czyli switch Cisco Catalyst z systemem CatOS.
switch#(enable) clear trunk 3/28  1-33,37-333,335,337-1005
switch#(enable) set trunk 3/28 on dot1q 34-36,334,336
Pierwsza komenda wyłącza część VLANów na porcie, druga natomiast włącza przez nas określone.

W momencie kiedy przyłączysz swoją kartę do portu switcha, powinieneś zobaczyć coś podobnego na konsoli switcha:

2001 Jul 30 17:42:05 MDT +02:00 %DTP-5-TRUNKPORTON:Port 3/28 has become dot1q trunk
2001 Jul 30 17:42:18 MDT +02:00 %PAGP-5-PORTTOSTP:Port 3/28 joined bridge port 3/28s
Komendę
show trunk
możesz użyć do weryfikacji stanu trunku.

Poniżej przykład dla switcha Cisco Catalyst z systemem "IOS".
(Poniższe komendy muszą być wpisywane w trybie configure).

interface FastEthernet0/11 
	switchport trunk encapsulation dot1q
	switchport trunk allowed vlan 34
 	switchport mode trunk

Mając pseudo-urządzenia VLAN możemy teraz zastąpić drogie moduły starym PeCetem.

Będę wdzięczny za jakiekolwiek opinie,komentarze i poprawki. Wyślij e-mail do mnie:arved@FreeBSD.org

Podziękowania dla:

Richard Grace, który napisał artykuł na freebsdzine.
Dave Seddon z FreeBSD User Group of Victoria za wskazanie mi opcji w /etc/rc.conf.
© 2001-2003 Tilman Keskinöz $Id: vlan_pl.html,v 1.4 2011/07/17 13:48:24 arved Exp $