|
Настройка по данной статье добавляет Вам следующие возможности:
- 1. Полный роутинг и разделения сети (к примеру возьмем 192.168.1.0/24) на ВЛАНы и защита сети фаерволом.
- 2. Маршрутизация пакетов из трансферной сети провайдера в сеть выделенную, через транкинг настроенный на Cisco Catlyst 3550.
- 3. Мониторинг трафика на портах через net-snmp (опционально потребуется установить порт /usr/ports/net-mgmt/net-snmp ) и настроить даемон.
- 4. Возможность управлять трафиком и даже резать его на килобиты или килобайта через DUMMYNET на FreeBSD.
Что нужно для того чтобы все это заработало:
- 1. ОС FreeBSD 7/x + Машина желательно с двумя БП(для удержания машины в бесперебойном питании) не хуже Celeron 1 Ghz , 256Mb RAM
- 2. Cisco Catalyst 3550-SMI или другие, которые поддерживают транкинг(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 metric 0 mtu 1504
options=3
ether 00:30:48:30:dd:17
inet 192.168.1.162 netmask 0xfffffff8 broadcast 192.168.1.163
media: Ethernet autoselect (100baseTX )
status: active
vlan: 4 parent interface: em1
#
Шаг 4. настраиваем далее наш Каталист/Cisco.
Порт 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
Шаг 5. Сверка настроек и тестирование.
Пока каталист перезагружается с новым MTU, подключаем и настраиваем на подключенной к порту 1 машине-клиенте адрес:
IP: 192.168.1.2 Gateway: 192.168.1.1 Mask: 255.255.255.192 DNS: провайдера и пингуем с нее гатевай и проверям, все ли сработало.
Данная статья была создана в процессе тестирования и настройки следующей сборки: FreeBSD 7.2 i386 [em0, em1] , Cisco catalyst 3550SMI
Настройка траф-шейпера (ограничения пользователей по скорости подключения)
Как только все заработало, можно добавить возможность урезания канала для тех, кто хочет ограничить скорость скачивани/закачивания у подключенных клиентов. Для этого нужно настроить /etc/rc.firewall - открываем его для редактирования. Добавляем правило:
${ipfw} pipe 1 config bw 128Kbit/s queue 25
${ipfw} pipe 2 config bw 56Kbit/s queue 25
${ipfw} add 100 pipe 1 ip from 192.168.1.65:255.255.255.248 to any via em1
${ipfw} add 101 pipe 2 ip from any to 192.168.1.65:255.255.255.248 via em1
Тем самым ограничиваем скорость потока закачивания на 128Kbit/s и исходящего трафика на 56Kbit/s для всей сети 192.168.1.65:255.255.255.248 Так же можно ограничить скорость и для отдельного адреса. Установка и выдача адресов так же возможна через Catalyst.
|