Сообщения

Сообщения за 2015

HTTPS FBF filtering via JunOS + CGN

Изображение
Усложним схему - добавим операторский  NAT (CGN) в схему с фильтрацией HTTP и HTTPS через DPI, что усложняет схему:

CentOS5 монтирование NFS через LACP-транк при загрузке

Обнаружил, что CentOS5 иногда не монтирует NFS при загрузке, т.е. то что прописано в /etc/fstab . Причина оказалась в том, что сервер включен в сеть bond-интерфейсом в режиме LACP-транка, а LACP "поднимается" не сразу. По умолчанию, LACP работает в slow mode, т.е. LACP BPDU отправляются каждые 30 секунд, соответственно, интерфейс может быть в down во время монтирования NFS. Попробовал включить lacp_rate=fast - монтирует случайным образом, естественно, это не устраивает. Но есть решение: /etc/sysconfig/network NETWORKDELAY=30

HTTPS FBF filtering via JunOS

Усложним задачу - теперь на DPI нужно отправить и HTTPS-трафик. Так как DPI требуется "просматривать" сертификат сервера, то и обратный HTTPS-трафик от сервера тоже должен идти через DPI. # небольшая добавка к нашему фильтру set firewall family inet filter FL-WEB-IN term web from destination-port 80 set firewall family inet filter FL-WEB-IN term web from destination-port 443 set firewall family inet filter FL-WEB-IN term web then count CN_WEB_REQ set firewall family inet filter FL-WEB-IN term web then next-interface xe-3/2/1.0 set firewall family inet filter FL-WEB-IN term web then next-interface routing-instance ZAPRET set firewall family inet filter FL-WEB-IN term default then accept # ещё один фильтр, который завернёт обратный HTTPS на DPI set firewall family inet filter FL-ZAPRET-HTTPS-IN term https from destination-prefix-list pl-myAS-routes-v4 set firewall family inet filter FL-ZAPRET-HTTPS-IN term https from protocol tcp set firewall family inet filter F...

HTTP FBF filtering via JunOS

У нас есть маршрутизатор Juniper, к нему подключен DPI, который, для примера, осуществляет фильтрацию WEB-трафика по "реестру" росскомнадзора. # DPI включен в Juniper двумя портами:   set interfaces xe-3/2/1 description "DPI input interface" set interfaces xe-3/2/1 unit 0 family inet mtu 1500 set interfaces xe-3/2/1 unit 0 family inet no-redirects set interfaces xe-3/2/1 unit 0 family inet address 10.0.0.1/30 set interfaces xe-3/2/2 description "DPI output interface" set interfaces xe-3/2/2 unit 0 family inet mtu 1500 set interfaces xe-3/2/2 unit 0 family inet no-redirects set interfaces xe-3/2/2 unit 0 family inet address 10.0.0.2/30 # vrf для FBF # После нескольких попыток пришёл к выводу, что самый простой и рабочий вариант сделать, чтобы default route смотрел в глобальную таблицу. В DPI (порт xe-3/2/1) трафик будем загонять через PBR FBF set routing-instances ZAPRET instance-type virtual-router set routing-instances ZAPRET interface...

junos dhcp classless (RFC 3442) routes

> show configuration system services dhcp pool 192.168.2.0/24 address-range low 192.168.2.12 high 192.168.2.254; router {     192.168.2.10; } option 121 array ip-address [ 20 . 10.0.0 192.168.2.1 ]; option 249 array ip-address [ 20 . 10.0.0 192.168.2.1 ]; Где: 20 - маска (mask) 10.0.0 - подсеть (subnet) 192.168.2.1 - шлюз (gw)

zabbix hints

По умолчанию zabbix обрезает подпись к графику, чтобы увеличить её длину нужно в файле items.inc.php из пакета web-интерфейса заменить : --- include/items.inc.php.orig  2015-04-22 09:56:02.000000000 +0200 +++ include/items.inc.php       2015-06-21 23:19:29.000000000 +0200 @@ -884,8 +884,8 @@                 // break; is not missing here                 case ITEM_VALUE_TYPE_TEXT:                 case ITEM_VALUE_TYPE_LOG: -                       if ($trim && mb_strlen($value) > 20) { -                     ...

ARP flux

Понадобилось мне на одном сервере CentOS 6 терминировать два ip-адреса из одной подсети, да так, чтобы у каждого ip был свой MAC и трафик ходил симметрично, т.е. на какой интерфейс пришёл с него же и ушёл. Не такая простая задача, как кажется на первый взгляд - стек tcp/ip в linux следует weak host model . C назначением ip-адресов проблем нет: # ip addr show dev eth1 4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000     link/ether 00:14:5e:cd:44:85 brd ff:ff:ff:ff:ff:ff     inet 192.168.253.85/28 brd 192.168.253.95 scope global eth1     inet6 fe80::214:5eff:fecd:4485/64 scope link        valid_lft forever preferred_lft forever # ip addr show dev eth2 5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000     link/ether 00:14:5e:cd:44:86 brd ff:ff:ff:ff:ff:ff     inet 192.168.253.86/28 brd ...

FreeBSD anycast DNS resolver

Пример anycast DNS resolver'а для FreeBSD. В качестве рекурсивного DNS-сервера, как и раньше, используем unbound . А вот для установки BGP-сессии - openbgpd из проекта OpenBSD , конечно, "ортодоксам" доступна и quagga . В перспективе стоит присмотреться к exabgp . И openbgpd и unbound есть в портах, так что с установкой проблем быть не должно . Я предпочитаю собирать из исходников, чтобы можно было самому указать необходимые опции: cd /usr/ports/net/openbgpd && make config install clean cd /usr/ports/dns/unbound && make config install clean Сетевые интерфейсы: bge1 - стык с маршрутизатором на "серых" адресах, исключительно для BGP. lo1 - реальные адреса, на которые сервер принимает запросы от клиентов и с которого шлёт запросы в Internet.   # cat /etc/rc.conf cloned_interfaces="lo1" ifconfig_bge1="inet 192.168.250.102 netmask 255.255.255.252 mtu 9000" # resolver DNS source ifconfig_lo1="inet 1.0.128.12...

CentOS anycast dns-resolvers

Исторически сложилось, что ISP сообщает клиенту два IP-адреса в качестве настроек DNS. Многие ОС и протоколы, например IPCP из PPP, и не поддерживают больше, а реальность такова, что у крупных операторов два сервера не способны обслуживать все клиентские запросы. А если география предоставления услуг охватывает страны или континенты, то два сервера вообще не вариант. Для преодоления этой ситуации можно использовать достаточно простой подход, который используется для корневых DNS-серверов - anycast DNS. Этот подход можно использовать и для других протоколов работающих по принципу запрос-ответ без сохранения состояния, например, для NTP. Этот конкретный пример будет для CentOS6 (unbound, quagga) и Juniper MX, но есть рабочие серверы на FreeBSD.   Начнём с CentOS: Сетевые интерфейсы. eth0   "смотрит" в сторону MX'a. Экономим ipv4 - bgp будем поднимать на "серых" адресах 10.1.0.48/29. # cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=6...