0.00
0 читателей, 13 топиков

Динамическая маршрутизация в FreeBSD с BIRD, Quagga

under


http://subnets.ru/wrapper.php?p=7
http://subnets.ru/blog/?p=1728
http://subnets.ru/blog/?p=19


http://subnets.ru/forum/viewtopic.php?f=3&t=371&start=30

hostname AS123456
password zebra
enable password zebra
log file /var/log/bgpd.log
router bgp 123456
bgp router-id 173.45.248.98
bgp log-neighbor-changes
no synchronization
network 48.151.4.0/23
neighbor 173.45.248.97 remote-as 45975
neighbor 178.45.248.97 next-hop-self
neighbor 178.45.248.97 route-map ROSTELEKOM_IN in
neighbor 178.45.248.97 route-map ROSTELEKOM_OUT out
!
ip prefix-list bogons description bogus nets
ip prefix-list bogons seq 15 permit 0.0.0.0/8 le 32
ip prefix-list bogons seq 20 permit 127.0.0.0/8 le 32
ip prefix-list bogons seq 30 permit 10.0.0.0/8 le 32
ip prefix-list bogons seq 35 permit 172.16.0.0/12 le 32
ip prefix-list bogons seq 40 permit 192.168.0.0/16 le 32
ip prefix-list bogons seq 45 permit 169.254.0.0/16 le 32
ip prefix-list bogons seq 50 permit 224.0.0.0/4 le 32
ip prefix-list bogons seq 55 permit 240.0.0.0/4 le 32
ip prefix-list default description default route
ip prefix-list default seq 10 permit 0.0.0.0/0
ip prefix-list our-CIDR-blocks seq 5 permit 48.151.4.0/23 le 32
ip prefix-list upstream-out seq 10 permit 48.151.4.0/23
!
ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_
!
route-map ROSTELEKOM_IN deny 100
match as-path 1
!
route-map ROSTELEKOM_IN deny 110
match ip address prefix-list bogons
!
route-map ROSTELEKOM_IN deny 115
match ip address prefix-list default
!
route-map ROSTELEKOM_IN deny 120
match ip address prefix-list our-CIDR-blocks
!
route-map ROSTELEKOM_IN permit 200
set local-preference 100
!
route-map ROSTELEKOM_OUT permit 100
match ip address prefix-list upstream-out
!
route-map ROSTELEKOM_OUT deny 200



gw# vtysh

Hello, this is Quagga (version 0.99.21).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

gw#
  clear        Reset functions
  configure    Configuration from vty interface
  copy         Copy from one file to another
  debug        Enable debug messages for specific or all part.
  disable      Turn off privileged mode command
  end          End current mode and change to enable mode
  exit         Exit current mode and down to previous mode
  list         Print command list
  no           Negate a command or set its defaults
  ping         Send echo messages
  quit         Exit current mode and down to previous mode
  show         Show running system information
  ssh          Open an ssh connection
  start-shell  Start UNIX shell
  telnet       Open a telnet connection
  terminal     Set terminal line parameters
  traceroute   Trace route to destination
  undebug      Disable debugging functions (see also 'debug')
  write        Write running configuration to memory, network, or terminal
gw#


получить список подсетей из кваги и залить по ftp

#!/bin/bash
# получить список подсетей AS и залить на фтп
file=/tmp/zebra/peering_as_subnets
echo "sh ip ro bgp" | vtysh | grep 127,0,0.1 | awk {'print $2'} > $file
echo "send $file" | pftp lt.lan
rm $file

mrtg ping probe VS SmokePing

mrtg-ping-probe
/usr/ports/net-mgmt/mrtg-ping-probe/
mrtg-ping-probe is a ping probe for MRTG 2.x.  It is used to monitor
the round trip time and packet loss to networked devices.  MRTG uses
its output to generate graphs visualizing minimum and maximum round
trip times or packet loss.


SmokePing
/usr/ports/net-mgmt/smokeping
SmokePing is a latency logging and graphing system. It consists of a
daemon process which organizes the latency measurements and a CGI
which presents the graphs.

ping: sendto: No buffer space available

давно такое не встречал :)

смотрим.
zabbix-proxy# netstat -m
50/730/780 mbufs in use (current/cache/total)
32/230/262/524288 mbuf clusters in use (current/cache/total/max)
32/224 mbuf+clusters out of packet secondary zone in use (current/cache)
0/128/128/8576 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/4288 9k jumbo clusters in use (current/cache/total/max)
0/0/0/2144 16k jumbo clusters in use (current/cache/total/max)
76K/1154K/1231K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines
zabbix-proxy#



zabbix-proxy# netstat -id
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll Drop
de0    1500 <Link#1>      00:15:5d:15:02:8c 26863978     0     0 26179780     0     0  906
de0    1500 91.001.002.0/ zabbix-proxy      24461808     -     - 23811747     -     -    -
de0    1500 172.19.1.48/2 172.19.1.53            103     -     -  2356689     -     -    -
ipfw0 65536 <Link#2>                               0     0     0        0     0     0    0
lo0   16384 <Link#3>                             140     0     0      140     0     0    0
lo0   16384 fe80:3::1     fe80:3::1                0     -     -        0     -     -    -
lo0   16384 localhost     ::1                      0     -     -        0     -     -    -
lo0   16384 your-net      localhost              140     -     -      140     -     -    -
zabbix-proxy#


меняем ситуацию в sysctl.conf.

net.inet.tcp.sendspace=131072
net.inet.tcp.recvspace=131072

net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.recvbuf_max=16777216

net.inet.tcp.sendbuf_inc=16384
net.inet.tcp.recvbuf_inc=524288

kern.ipc.maxsockbuf=1048576
kern.ipc.nmbclusters=524288


zabbix-proxy# vmstat -z | grep mbuf
ITEM                     SIZE     LIMIT      USED      FREE  REQUESTS  FAILURES
mbuf_packet:              256,        0,       32,      224, 27256724,        0
mbuf:                     256,        0,       14,      510, 70586157,        0
mbuf_cluster:            2048,   524288,      256,        6,      256,        0
mbuf_jumbo_page:         4096,     8576,        0,      128,  1076992,        0
mbuf_jumbo_9k:           9216,     4288,        0,        0,        0,        0
mbuf_jumbo_16k:         16384,     2144,        0,        0,        0,        0
mbuf_ext_refcnt:            4,        0,        0,        0,        0,        0


при этом уже добавив

firewall freebsd

Подсказки о том, как собрать поддержку этих firewall в ядре в /usr/src/sys/conf/NOTES.

Основные опции:
### ipfw
options IPFIREWALL # поддержка файрвола
options IPFIREWALL_VERBOSE # поддержка логирования
options IPDIVERT # поддержка divert-сокетов (нужна для natd)
options DUMMYNET # поддержка шейпера dummynet

### ipf
options IPFILTER # поддержка файрвола
options IPFILTER_LOG # поддержка логирования

### pf
device pf # поддержка файрвола
device pflog # поддержка логирования
device pfsync # отслеживание состояния
options ALTQ # поддержка шейпера ALTQ


запуск /etc/rc.conf.
задаются:
### ipfw
firewall_enable="YES" # поддержка файрвола
firewall_type="/etc/ipfw.rules" # тип (способ инициализации)
natd_enable="YES" # поддержка natd

### ipf
ipfilter_enable="YES" # поддержка файрвола
ipfilter_rules="/etc/ipf.rules" # файл с правилами
ipnat_enable="YES" # поддержка ipnat
ipnat_rules="/etc/ipnat.rules" # файл с правилами NAT

### pf
pf_enable="YES" # поддержка файрвола
pf_rules="/etc/pf.rules" # файл с правилами


особенности
// ipfw
add check-state
add allow tcp from any to any out setup via rl0 keep-state

// ipf
pass out on rl0 proto tcp from any to any flags S keep state

// pf
pass out on rl0 proto tcp from any to any flags S/SA keep state


nat
// ipfw (должен быть запущен natd на порту 8668)
add divert 8668 ip from 10.10.0/24 to any out via bge0
add divert 8668 ip from any to 1.2.3.4 in via bge0

// ipf (правила выносятся в ipnat.rules, запускаются командой ipnat)
map rl0 10.10.0.0/24 -> 1.2.3.4/32

// pf (размещаются в общей конфигурации перед правилами фильтрации)
nat on rl0 from 10.10.0.0/24 to any -> 1.2.3.4/32


шейпинг
// ipfw
add pipe 1 ip from any to 192.168.0.0/24
pipe 1 config bw 128Kbit/s

// pf
altq on rl0 cbq queue q_limited
queue q_limited bandwidth 128Kb cbq(default)
pass quick from any to 192.168.0.0/24 keep state queue q_limited

backup dd freebsd

через файл
dd if=/dev/ad0 of=/iso.iso bs=8K conv=noerror,sync


на прямую с диска на диск
dd if=/dev/ad0 of=/dev/ad1 bs=8K conv=noerror,sync


запись образа на диск
dd if=/iso.iso of=/dev/ad1 bs=8K conv=noerror,sync


могут быть проблемы записи корневого раздела. может помочь шаманство с sysctl
или создание раздела такой же версии и копированием файлов

vds freebsd с нуля

данный материал не претендует на истину и все делалось на быструю руку и быстрый запуск. дальнейшая оптимизация — море информации в сети.

ставим порты.

root@h96:/usr # fetch http://mirror.yandex.ru/freebsd/ports/ports/ports.tar.gz
ports.tar.gz                                  100% of   52 MB  5317 kBps 00m00s
root@h96:/usr # tar xvfz ports.tar.gz
root@h96:/usr # cd ports
root@h96:/usr/ports # make index
Generating INDEX-9 - please wait..

далее делаем

root@h96:/usr/ports # portsnap fetch update
root@h96:/usr/ports # portsnap extract
root@h96:/usr/ports # portsnap update

openssl

есть
uname -v
FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC


/usr/bin/openssl version
OpenSSL 0.9.8q 2 Dec 2010


для работы с ключами PKCS#12 нужно новее, обновляемся openssl
cd /usr/ports/security/openssl
make install clean


/usr/local/bin/openssl version
OpenSSL 1.0.1c 10 May 2012

chflags

rm -Rd www
rm: www: Operation not permitted


ну так не беда…

ls -lo
total 2
drwxrwxrwx  2 f0004  f0004  uunlnk 1024 Nov 29 13:05 www


man chflags

chflags nouunlnk www
ls -lo
total 2
drwxrwxrwx  2 f0004  f0004  - 1024 Nov 29 13:05 www


флаги

arch, archived	        флаг архивный ( только для суперпользователя )
opaque                     флаг opaque ( владелец и суперпользователь )
nodump                     флаг nodump ( владелец и суперпользователь )
sappnd, sappend            флаг system append-only ( только суперпользователь )
schg, schange, simmutable  флаг system immutable ( только суперпользователь )
sunlnk, sunlink            флаг system undeletable ( только суперпользователь )
uappnd, uappend            флаг user append-only ( владелец и суперпользователь )
uchg, uchange, uimmutable  флаг user immutable  ( владелец и суперпользователь )
uunlnk, uunlink            флаг user undeletable ( владелец и суперпользователь )

Добавление или удаление приставки «no» из ключевого слова, очищает соответствующий флаг

ну и проверяем. вдруг промахнулись
rm -Rd www
ll
total 0


для linux lsattr chattr
chattr +i file.txt
lsattr file.txt
----i--------e- file.txt


A (no Access time): если для файла или каталога установлен такой атрибут, то, при обращении к этому файлу (для чтения или записи), у файла не будет модифицироваться время последнего обращения. Это может быть полезно, например, при работе с файлами и каталогами, к которым очень часто обращаются, открывая их для чтения. Это может несколько разгрузить систему, так как время последнего доступа — это единственный параметр в inode, который изменяется при открытии файла в режиме read-only (только для чтения).

a ( append only): если для файла или каталога установлен такой атрибут, а также этот файл (каталог) допускает запись, то единственная доступная операция записи — это добавление в конец файла (append). В случае каталога это означает, что вы можете только добавлять файлы, но не можете переименовывать или удалять любой существующий файл внутри этого каталога. Только root может устанавливать или очищать этот атрибут.

d (no dump): dump (8) это стандартная для UNIX утилита резервного копирования. Она создает резервную копию любой файловой системы, у которой в файле /etc/fstab значение dump counter установлено в 1 (подробнее смотрите Глава 8. Файловая Система и Точки Монтирования). Если файл или каталог имеет этот атрибут, то он будет игнорирован при создании резервной копии файловой системы. Обратите внимание, что в случае установки атрибута для каталога, под действие атрибута рекурсивно попадают все нижележащие файлы и каталоги.

i ( immutable): файл или каталог с таким атрибутом не может изменяться вообще: то есть, он не может быть переименован, на него не может быть создана ссылка. [20] Также такой файл не может быть удален. Только root может устанавливать или очищать этот атрибут. Обратите внимание, что этот атрибут также предотвращает изменения времени доступа, поэтому вы не должны совместно использовать атрибуты A и i.

s ( secure deletion): при удалении файла, помеченного таким атрибутом, место на диске, которое занимал файл, будет заполнено нулями.

S ( Synchronous mode): если установлен такой атрибут, то все изменения в файл будут записаны немедленно. Попросту говоря, этот атрибут снимает буферизацию записи для этого файла