1 (08-01-2010 21:58:18 отредактировано Кручу-Верчу)

Тема: FreeBSD - Cisco VLAN Транк / Trunk

Оригинал статьи находится тут - Настройка маршрутизации сети от провайдера через связку FreeBSD Vlan+Trunking+Catalyst

Настройка по данной статье добавляет Вам следующие возможности:
1. Полный роутинг и разделения сети (к примеру возьмем 192.168.1.0/24) на ВЛАНы и защита сети фаерволом.
2. Проброс пакетов от трансферной сети провайдера в сеть выделенную, через транкинг настроенный на Cisco Catlyst 3550.
3. Мониторинг трафика на портах.
4. Возможность управлять трафиком и даже резать его на килобиты или килобайта. Как угодно.

Что нужно для того чтобы все это заработало:
1. ОС FreeBSD 7/x + Машина желательно с двумя БП(для удержания машины в бесперебойном питании) не хуже Celeron 1 Ghz , 256Mb RAM
2. Cisco Catalyst 3540XL,3550SMI или другие, которые поддерживают транкинг(trunking)
3. Сетевые карты которые поддерживают создание и управеление VLAN(на FreeBSD).
4. Терпение и желание.

Начнем:
1. Создаем на БСД ВЛАНы. но для начала, добавляем нужные нам опции в ядро БСД

#
options         HZ=1000 #Увеличивает резистентность ОС.
options         DUMMYNET#Добавляет нам возможность установки настройки "резать канал" на килобиты, килобайты и т.д.
options         IPSTEALTH # this does not increment the TTL counter, making the VLAN machine seem transparent
# Возможность фаервола
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD

# Создаем ядро
#cd /sys/i386/conf
#config vlan
Kernel build directory is ../compile/vlan
Don't forget to do ``make cleandepend && make depend''
#make cleandepend && make depend
#make
#make install
#

либо
#cd /usr/src && make buildkernel KERNCONF=vlan (put your config file from step one here)
Как только все отбарабанило
#make installkernel KERNCONF=vlan

Шаг 2.
Идем далее.
Перезагружаемся, и начинаем: Добавляем в  /etc/c.conf

defaultrouter="1.2.3.4" #Выход на провайдера
ifconfig_em0="inet 1.2.3.5  netmask 255.255.255.252 media 100BaseTX" #Это наш IP выданный провайдером для трансфера сети.

ifconfig_em1="up mtu 1504" #Поднимаем порт с MTU 1504

cloned_interfaces="vlan2 vlan3" #Добавляем клонированне ВЛАНы
ifconfig_vlan2="inet 192.168.1.1  netmask 255.255.255.192 vlan 2 vlandev em1"
ifconfig_vlan3="inet 192.168.1.65  netmask 255.255.255.248 vlan 3 vlandev em1"

firewall_enable="YES"           # Set to YES to enable firewall functionality
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
firewall_type="OPEN"           # Firewall type (see /etc/rc.firewall)
#firewall_type="CLIENT"          # Firewall type (see /etc/rc.firewall)
firewall_quiet="YES"            # Set to YES to suppress rule display
firewall_logging="YES"          # Set to YES to enable events logging
firewall_client_net="192.168.1.0/24" # Наша сетка для "client" firewall.

теперь, когда все создано, можно перезагрузить сеть:
#/etc/netstart
или, если Вы будете в будущем добавлять ВЛАНы и перезагрузка не самое лучшая идея, просто делайте так:
#ifconfig vlan4 create
#ifconfig vlan4 inet 192.168.1.162 netmask 255.255.255.252 Vlan 4 vlandev em1
Проверим
#ifconfig vlan4
# ifconfig vlan4
vlan4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1504
        options=3<RXCSUM,TXCSUM>
        ether 00:30:48:30:dd:17
        inet 192.168.1.162 netmask 0xfffffff8 broadcast 192.168.1.163
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 4 parent interface: em1
#

Отлично - идем дальше на Каталист/Циску.
Порт Fa0/48 будет приемником ВЛАНов и на нем настроим trunk

switch# config t
switch(config)# int fa0/48
switch(config-if)# description 802.1Q Trunk to FreeBSD Machine
switch(config-if)# speed 100
switch(config-if)# switchport trunk encapsulation dot1q
switch(config-if)# switchport trunk allowed vlan 2-4
switch(config-if)# exit
switch(config)# exit
switch# wr mem 

Теперь аплинк отредатирован и можно подключить тестовую машину к порту Fa0/1

switch# config t
switch(config)# vtp mode transparent
switch(config)# system mtu 1504
Changes to the System MTU will not take effect until the next reload is done.
switch(config)# ip subnet-zero
switch(config)# ip routing
switch(config)# int fa0/1
switch(config-if)# description Port 1 VLAN 2
switch(config-if)# switchport access vlan 2
switch(config-if)# no cdp enable
switch(config-if)# exit
switch(config)# exit
switch# wr mem
switch# reload

Пока каталист перезагружается с новым MTU, подключаем и настраиваем на подключенной к порту 1 машине-клиенте адрес:
IP: 192.168.1.2
Gateway: 192.168.1.1
Mask: 255.255.255.192
DNS: провайдера

и пингуем с нее гатевай и проверям, все ли сработало.

Удачных сетей!!!