Дано: два апстрима, от одного из которых я принимаю full-view (World), от второго только украинские префиксы (UA).
Задача: отдать default route и, отдельно, украинские префиксы пиру Target и принять и проанонсить его префиксы аплинкам. Украинский трафик, естественно, должен ходить через UA, остальной через World.
Ограничение скорости внутри VLAN на Cisco
mls qos class-map match-any CustomerVLAN match access-group name customer-policy_inbound match access-group name customer-policy_outbound ! policy-map VLAN-policy class CustomerVLAN police 1000000000 conform-action transmit exceed-action drop violate-action drop ! interface Vlan10 description Customer ip address x.x.x.x x.x.x.x mls qos bridged service-policy input VLAN-policy service-policy output VLAN-policy ! interface TenGigabitEthernet4/1 description Trunk switchport switchport trunk encapsulation dot1q switchport trunk allowed vlan 10 switchport mode trunk mls qos vlan-based !
Установка FreeBSD 9.0-RELEASE по сети
Принесли как-то мне компьютер, который должен выполнять функцию офисного маршрутизатора, быть сервером внутренней почты и давать возможность VPN-подключения к офисной сети извне.
Машинка неплохая, но в ней было привода оптических дисков и IDE-разъемов для его подключения. Только SATA-слоты. SATA-привода у меня, увы, не нашлось, а MP3-плеер в качестве флеш-накопителя для установки использовать я не захотел.
Решил на рабочем компьютере поднять FreeBSD 9.0-RELEASE в VirtualBox’е и сделать из него сервер для установки через сеть.
BGP и два канала
К одной удаленной точке, которая была доступна только по WiFi, появился 100 Мбит/с канал. Решили сделать так, чтобы при падении 100 Мбит/с канала связь переруливалась на WiFi, а при восстановлении — все переруливалось обратно (т. к. пользователям той удаленной точки мы предоставляем интернет). С обеих сторон стоят циски, есть небольшой пул «белых» IP-адресов.
Первым делом задал два default-маршрута с разной метрикой:
Читать дальше
Восстановление файлов с сыпящегося винта (ОС FreeBSD)
Принесли на днях компьютер, который выполнял ранее роли офисного маршрутизатора, почтового сервера, офисной же файлопомойки и VPN-сервера для нескольких внешних подключений.
Проблема заключалась в том, что начал сыпаться винт. К слову, на машинке установлена FreeBSD, которая проработала там довольно солидный срок.
Так вот, в связи с неизбежной гибелью винта, невозможным стал вход в систему даже в single-user режиме.
Естественно, первым делом был скачан LiveCD Frenzy (версия 1.3, если что).
Soekris net4511, GPRS и PPTP
Дано. Интернет, Soekris net4511, флеш-карта на 128 МБайт, PCMCIA GPRS-модем Huawei EG602, карточка от МТС, консольный шнурок, пинок.
Необходимо. Вставить карточку в модем, модем в Soekris, нарулить на эту железяку ОС, которая и карточку подхватит, и на 128 МБайтах поместится, выйдет в Интернет да построит с одним из серваков PPTP-тоннель.
Ограничение скорости по MAC-адресу во FreeBSD
На днях возникла необходимость на FreeBSD маршрутизаторе порезать канал для одной из машин. Поскольку на нем стоит DHCP-сервер без привязки IP-адресов к MAC’ам — пришлось исхитриться, полазить в гугле и понять, как порезать ширину канала, используя только MAC-адрес.
ipfw add <номер_правила> pipe <номер_правила> \ ip from any to any MAC any <MAC-адрес> \ layer 2 in # Входящий трафик ipfw add <номер_правила+5> pipe <номер_правила+5> \ ip from any to any MAC any <MAC-адрес> \ layer 2 out # Исходящий трафик
А теперь указываем ширину канала для каждого направления
ipfw pipe <номер_правила> config bw <ширина_канала> ipfw pipe <номер_правила+5> config bw <ширина_канала>
+5 к правилу добавляю для того, чтобы разделить направления. По желанию, можно или впихнуть все в одно правило. Ширина не обязательно должна быть +5, это так, моя привычка.
Изменение initramfs
Недавно возникла ситуация, когда после аварии системы охлаждения упал сервак. Ремонт сделали, но он упорно не хотел подниматься на том ядре, на котором он должен был. Матерился на то, что модуль ehci-hcd вызывает сбой, который приводит ядро в панику. Поскольку на том сервере нахер не нужен USB я решил не заморачиваться, а просто исключить его из списка загружаемых модулей.
Итак. Копируем куда-нибудь initrd образ и распаковываем его:
cp /boot/initrd-2.6.25.img ~/temp/ mv initrd-2.6.25.img initrd-2.6.25.img.gz gzip -d initrd-2.6.25.img.gz cpio -ic < initrd-2.6.25.img rm initrd-2.6.25.img
Далее комментируем или удаляем строчки (тут приведены для моего случая):
#echo "Loading ehci-hcd.ko module" #insmod /lib/ehci-hcd.ko #echo "Loading ohci-hcd.ko module" #insmod /lib/ohci-hcd.ko #echo "Loading uhci-hcd.ko module" #insmod /lib/uhci-hcd.ko #mount -t usbfs /proc/bus/usb /proc/bus/usb
После этого нам остается упаковать обратно образ и залить его в /boot:
find . -print | cpio -oc | gzip -9 -c > ../initrd.new.img cp initrd.new.img /boot/initrd.new.img
Ну и, естественно, внести изменения в /boot/grub/menu.lst
Тюнинг Squid’а. Отсебятина
Использование рекомендаций, указанных в предыдущем посте позволило уменьшить потребление ресурсов на моем сервере (RHEL 5, ядро 2.6.25.11, Squid-3.0.STABLE24, кол-во клиентов 1500+).
Что было предпринято:
- Отключено логирование access.log и store.log
- Включена директива pipeline_prefetch
В итоге нагрузка на процессор упала с ~60-80% до ~1-15% в «спокойное» время, нагрузка на память с ~90% до ~20-60%. Но, к сожалению, я уделил внимание чтению лога cache.log, в котором было очень много сообщений о том, что закончились свободные файловые дескрипторы. ulimit -Ha показал что у меня их максимум равен 1024. Решение проблемы:
ulimit -HSn 65535 sysctl -w fs.file-max=65535
После этого я решил пересобрать squid:
./configure --with-linux-netfilter --with-large-files --enable-storeio=diskd,ufs --with-filedescriptors=65535 make; make install clean service squid restart
Тюнинг и закалка Squid’а
Автор статьи не я. Это всего лишь мой перевод этой статьи. Некоторые абзацы я пропущу, да простит меня автор статьи. Итак:
Тюнинг и закалка Squid’а является темой данной статьи, где под тюнингом мы будем подразумевать некоторое ускорение работы данного ПО, а под закалкой — обеспечение более безопасной и менее уязвимой работоспособности прокси-сервера. Стандартная установка Squid’а на Debian-сервер имеет множество включенных фич, большинство из которых просто-напросто не используется. Собственно их мы и хотим отключить. Также возможны ситуации, при которых нам нужно использовать Squid, но мы не хотим чтобы он кешировал — мы и на это обратим внимание.