Jump to content
Local
lex.lviv

Freebsd +pf кажется имеет место переполнение таблицы ната

Recommended Posts

Доброго времени. Столкнулся с проблемой

Сутки сервер нормально гудит, а опосля у клиентов начинает дропать соединения (чаты звонилки онлайн игры, все что требует постоянного соединения)

Думал я думал и надумал - таки может нат переполняется?

Может кто подскажет как с етим боротся

 

система

freebsd10 +ipfw +pfnat

Share this post


Link to post
Share on other sites

У pf статистика по нату дуже багата - от по ній подивіться.

При яких значеннях починається проблема?

І трохи офтопу: і як ПФ у десятці працює? Нормально параллелиться між ядрами?

Edited by L1ght

Share this post


Link to post
Share on other sites

 трохи офтопу: і як ПФ у десятці працює? Нормально параллелиться між ядрами?

 

тачка старенька дуже.... один проц маэ. Вмерли вінти , замінив і бавлюся

 

Проблема вже вилізла. 4 години після ребуту і починаються зафтики

172,16,0,0/16 локалочка

172,31,1,2 шлюз на мікротік. там своі приколи

 

nat pass on bge0 inet from 172.16.0.0/16 to any -> 172.31.1.2
  [ Evaluations: 186986    Packets: 4193432   Bytes: 3168328856  States: 1136  ]
  [ Inserted: uid 0 pid 831 State Creations: 185462]

мені здається що  треба підтягнуть икусь змінну оточення, а в упор не памятаю що саме

 pfctl -s info
Status: Enabled for 0 days 02:31:24           Debug: Urgent

State Table                          Total             Rate
  current entries                     1319
  searches                        19616743         2159.5/s
  inserts                           194594           21.4/s
  removals                          193704           21.3/s
Counters
  match                           12410977         1366.2/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                        10            0.0/s
  state-insert                          14            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s

Share this post


Link to post
Share on other sites

логи - чистота і порядок

Share this post


Link to post
Share on other sites

В FreeBSD 10 перепиляли pf, добавивши йому "плюшок". По факту, внаслідок цього він себе нестабільно веде. Декілька разів "наступав" на ці граблі.

Через що саме виникає проблема вияснити не вийшло, бо юзери "кричать благим матом" про проблеми з доступом, відповідно займався швидким усуненням, а не детальним аналізом, при яких саме умовах вона "вилазить". Виправлялось ребутом машинки. Після 3-4 ребутів, перейшов на інший NAT. Як варіант, перейдіть на ipnat або ядерний nat. Можливо у 10.1 проблему пофіксять.

Share this post


Link to post
Share on other sites

побавлюся ще до завтра подивлюся що з того буде

 

зараз підтягнув такі змінні, ніби троха помогло

sysctl net.route.netisr_maxqlen=4096
sysctl kern.ipc.maxsockbuf=83886080
 
це так по порадам гугла
Edited by lex.lviv

Share this post


Link to post
Share on other sites

Ставьте себе 9.3 и радуйтесь. Зачем вообще Х.0 ставить в продакшин? Оно всегда сырое. Нормальная работа начинается с Х.1  а то и с Х.2+

Share this post


Link to post
Share on other sites

Зачем вообще Х.0 ставить в продакшин?

+1, особенно если не собираетесь баг-репорты заполнять и в рассылки писать

Share this post


Link to post
Share on other sites

Доброго времени. Столкнулся с проблемой

Сутки сервер нормально гудит, а опосля у клиентов начинает дропать соединения (чаты звонилки онлайн игры, все что требует постоянного соединения)

Думал я думал и надумал - таки может нат переполняется?

Может кто подскажет как с етим боротся

 

система

freebsd10 +ipfw +pfnat

 

Ставте 9.2 или 9.3, в 10ке pf с глюками.

Share this post


Link to post
Share on other sites

 

 трохи офтопу: і як ПФ у десятці працює? Нормально параллелиться між ядрами?

 

тачка старенька дуже.... один проц маэ. Вмерли вінти , замінив і бавлюся

 

Проблема вже вилізла. 4 години після ребуту і починаються зафтики

172,16,0,0/16 локалочка

172,31,1,2 шлюз на мікротік. там своі приколи

 

nat pass on bge0 inet from 172.16.0.0/16 to any -> 172.31.1.2
  [ Evaluations: 186986    Packets: 4193432   Bytes: 3168328856  States: 1136  ]
  [ Inserted: uid 0 pid 831 State Creations: 185462]

мені здається що  треба підтягнуть икусь змінну оточення, а в упор не памятаю що саме

 pfctl -s info
Status: Enabled for 0 days 02:31:24           Debug: Urgent

State Table                          Total             Rate
  current entries                     1319
  searches                        19616743         2159.5/s
  inserts                           194594           21.4/s
  removals                          193704           21.3/s
Counters
  match                           12410977         1366.2/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                        10            0.0/s
  state-insert                          14            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s

 

limit states покажите, похоже все дело в нем

Share this post


Link to post
Share on other sites
all udp 172.31.1.2:58390 (172.16.0.152:6881) -> 213.242.29.254:6881       MULTIPLE:MULTIPLE
all tcp 172.31.1.2:57901 (172.16.0.140:3152) -> 95.142.205.81:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:61482 (172.16.1.5:50582) -> 54.231.10.224:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:51392 (172.16.1.5:50583) -> 54.231.10.224:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:56800 (172.16.0.152:26274) -> 87.240.131.99:443       ESTABLISHED:FIN_WAIT_2
all tcp 172.31.1.2:50027 (172.16.0.152:26276) -> 87.240.131.117:443       ESTABLISHED:FIN_WAIT_2
all tcp 172.31.1.2:54673 (172.16.0.152:26280) -> 87.240.131.117:443       ESTABLISHED:FIN_WAIT_2
all udp 172.31.1.2:51467 (172.16.0.152:6881) -> 2.93.47.196:6881       MULTIPLE:MULTIPLE
all udp 172.31.1.2:55750 (172.16.0.176:20757) -> 31.8.196.191:44063       MULTIPLE:MULTIPLE
all udp 172.31.1.2:58295 (172.16.0.152:6881) -> 2.92.26.223:6881       MULTIPLE:MULTIPLE
all udp 172.31.1.2:60716 (172.16.1.5:57787) -> 77.244.34.132:62992       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:60520 (172.16.1.5:52761) -> 192.168.1.184:54693       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:64678 (172.16.1.5:52761) -> 46.164.170.74:54693       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:63322 (172.16.1.5:55907) -> 46.164.170.74:54693       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:51796 (172.16.0.152:6881) -> 5.105.100.38:6882       MULTIPLE:MULTIPLE
all tcp 172.31.1.2:56664 (172.16.0.187:64365) -> 50.7.188.18:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:55946 (172.16.0.209:51022) -> 173.194.112.41:80       ESTABLISHED:ESTABLISHED
all udp 172.31.1.2:52286 (172.16.0.152:6881) -> 89.251.148.56:60444       MULTIPLE:MULTIPLE
all udp 172.31.1.2:64147 (172.16.0.187:55100) -> 94.245.121.253:3544       MULTIPLE:MULTIPLE
all tcp 172.31.1.2:60499 (172.16.0.209:58576) -> 87.240.131.120:80       ESTABLISHED:ESTABLISHED
all udp 172.31.1.2:61040 (172.16.1.5:52761) -> 192.168.0.103:53945       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:50019 (172.16.1.5:52761) -> 176.226.143.8:53945       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:51702 (172.16.1.5:61891) -> 176.226.143.8:53945       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:62536 (172.16.1.5:52761) -> 192.168.0.103:56456       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:62822 (172.16.1.5:52761) -> 176.104.123.34:56456       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:53379 (172.16.1.5:52761) -> 192.168.0.100:61288       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:60352 (172.16.1.5:52761) -> 178.71.159.117:61288       SINGLE:NO_TRAFFIC
all tcp 172.31.1.2:61587 (172.16.0.209:33072) -> 87.240.141.191:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:64471 (172.16.0.140:3180) -> 95.142.205.83:80       ESTABLISHED:ESTABLISHED

INFO:
Status: Enabled for 0 days 03:36:36           Debug: Urgent

State Table                          Total             Rate
  current entries                     2643
  searches                        24587378         1891.9/s
  inserts                           313973           24.2/s
  removals                          311744           24.0/s
Counters
  match                           15753373         1212.2/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  3            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                         1            0.0/s
  state-insert                           3            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s

TIMEOUTS:
tcp.first                    30s
tcp.opening                   5s
tcp.established           18000s
tcp.closing                  60s
tcp.finwait                  30s
tcp.closed                   30s
tcp.tsdiff                   10s
udp.first                    60s
udp.single                   30s
udp.multiple                 60s
icmp.first                   20s
icmp.error                   10s
other.first                  60s
other.single                 30s
other.multiple               60s
frag                         30s
interval                     10s
adaptive.start           768000 states
adaptive.end            1536000 states
src.track                     0s

LIMITS:
states        hard limit  1280000
src-nodes     hard limit    10000
frags         hard limit     5000
table-entries hard limit   200000

OS FINGERPRINTS:
710 fingerprints loaded

Завтра погляну що змінилось. але на ранок знову буде глюки.

Ще попробую по інструкціі поданій вище. цікаво.....

Share this post


Link to post
Share on other sites
all udp 172.31.1.2:58390 (172.16.0.152:6881) -> 213.242.29.254:6881       MULTIPLE:MULTIPLE
all tcp 172.31.1.2:57901 (172.16.0.140:3152) -> 95.142.205.81:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:61482 (172.16.1.5:50582) -> 54.231.10.224:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:51392 (172.16.1.5:50583) -> 54.231.10.224:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:56800 (172.16.0.152:26274) -> 87.240.131.99:443       ESTABLISHED:FIN_WAIT_2
all tcp 172.31.1.2:50027 (172.16.0.152:26276) -> 87.240.131.117:443       ESTABLISHED:FIN_WAIT_2
all tcp 172.31.1.2:54673 (172.16.0.152:26280) -> 87.240.131.117:443       ESTABLISHED:FIN_WAIT_2
all udp 172.31.1.2:51467 (172.16.0.152:6881) -> 2.93.47.196:6881       MULTIPLE:MULTIPLE
all udp 172.31.1.2:55750 (172.16.0.176:20757) -> 31.8.196.191:44063       MULTIPLE:MULTIPLE
all udp 172.31.1.2:58295 (172.16.0.152:6881) -> 2.92.26.223:6881       MULTIPLE:MULTIPLE
all udp 172.31.1.2:60716 (172.16.1.5:57787) -> 77.244.34.132:62992       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:60520 (172.16.1.5:52761) -> 192.168.1.184:54693       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:64678 (172.16.1.5:52761) -> 46.164.170.74:54693       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:63322 (172.16.1.5:55907) -> 46.164.170.74:54693       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:51796 (172.16.0.152:6881) -> 5.105.100.38:6882       MULTIPLE:MULTIPLE
all tcp 172.31.1.2:56664 (172.16.0.187:64365) -> 50.7.188.18:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:55946 (172.16.0.209:51022) -> 173.194.112.41:80       ESTABLISHED:ESTABLISHED
all udp 172.31.1.2:52286 (172.16.0.152:6881) -> 89.251.148.56:60444       MULTIPLE:MULTIPLE
all udp 172.31.1.2:64147 (172.16.0.187:55100) -> 94.245.121.253:3544       MULTIPLE:MULTIPLE
all tcp 172.31.1.2:60499 (172.16.0.209:58576) -> 87.240.131.120:80       ESTABLISHED:ESTABLISHED
all udp 172.31.1.2:61040 (172.16.1.5:52761) -> 192.168.0.103:53945       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:50019 (172.16.1.5:52761) -> 176.226.143.8:53945       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:51702 (172.16.1.5:61891) -> 176.226.143.8:53945       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:62536 (172.16.1.5:52761) -> 192.168.0.103:56456       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:62822 (172.16.1.5:52761) -> 176.104.123.34:56456       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:53379 (172.16.1.5:52761) -> 192.168.0.100:61288       SINGLE:NO_TRAFFIC
all udp 172.31.1.2:60352 (172.16.1.5:52761) -> 178.71.159.117:61288       SINGLE:NO_TRAFFIC
all tcp 172.31.1.2:61587 (172.16.0.209:33072) -> 87.240.141.191:80       ESTABLISHED:ESTABLISHED
all tcp 172.31.1.2:64471 (172.16.0.140:3180) -> 95.142.205.83:80       ESTABLISHED:ESTABLISHED

INFO:
Status: Enabled for 0 days 03:36:36           Debug: Urgent

State Table                          Total             Rate
  current entries                     2643
  searches                        24587378         1891.9/s
  inserts                           313973           24.2/s
  removals                          311744           24.0/s
Counters
  match                           15753373         1212.2/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  3            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                         1            0.0/s
  state-insert                           3            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s

TIMEOUTS:
tcp.first                    30s
tcp.opening                   5s
tcp.established           18000s
tcp.closing                  60s
tcp.finwait                  30s
tcp.closed                   30s
tcp.tsdiff                   10s
udp.first                    60s
udp.single                   30s
udp.multiple                 60s
icmp.first                   20s
icmp.error                   10s
other.first                  60s
other.single                 30s
other.multiple               60s
frag                         30s
interval                     10s
adaptive.start           768000 states
adaptive.end            1536000 states
src.track                     0s

LIMITS:
states        hard limit  1280000
src-nodes     hard limit    10000
frags         hard limit     5000
table-entries hard limit   200000

OS FINGERPRINTS:
710 fingerprints loaded

Завтра погляну що змінилось. але на ранок знову буде глюки.

Ще попробую по інструкціі поданій вище. цікаво.....

 

Рекомендую ще курнути перед сном http://books.google.com.ua/books?id=43jomY21hIEC&pg=PA155&lpg=PA155&dq=pfctl+states+hard+limit&source=bl&ots=GSeALbOCls&sig=scvwImkB2hItz7Q_-42-3dOJ6cQ&hl=uk&sa=X&ei=2gkKVL2uDs6XaoiNgYgG&ved=0CCkQ6AEwAQ#v=onepage&q&f=false

 

також 

http://www.packetmischief.ca/2011/02/17/hitting-the-pf-state-table-limit/

 

зробіть десь так 

 pfctl -sm
No ALTQ support in kernel
ALTQ related functions disabled
states        hard limit  3000000
src-nodes     hard limit    25000
frags         hard limit     5000
table-entries hard limit   300000

Share this post


Link to post
Share on other sites

от знову зафтик. було таке. поправив по Вашим порадам

root@gw:/usr/home/test # pfctl -sm
states        hard limit  1280000
src-nodes     hard limit    10000
frags         hard limit     5000
table-entries hard limit   200000
root@gw:/usr/home/test # pfctl -si
Status: Enabled for 0 days 19:20:28           Debug: Urgent

State Table                          Total             Rate
  current entries                     1377
  searches                        70479325         1012.2/s
  inserts                          1403274           20.2/s
  removals                         1403927           20.2/s
Counters
  match                           44574571          640.2/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  6            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                        47            0.0/s
  state-insert                          34            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s
root@gw:/usr/home/test # pfctl -si | grep memory
  memory                                 0            0.0/s

root@gw:/usr/home/test # ee /etc/pf.conf

set limit states 3000000
set limit frags 5000
set limit src-nodes 25000
set limit table-entries 300000
set optimization aggressive
nat pass on bge0 from 10.0.0.0/8 to any -> bge0
nat pass on bge0 from 172.16.0.0/16 to any -> bge0
nat pass on bge0 from 192.168.0.0/16 to any -> bge0

Edited by lex.lviv

Share this post


Link to post
Share on other sites

щойно робив перезавантаження пф. бо навіть відповідь через форму форума залипла.....

перезавантажив з новими правилами і зараз ніби бігає

root@gw:/usr/home/test # pfctl -sm
states        hard limit  3000000
src-nodes     hard limit    25000
frags         hard limit     5000
table-entries hard limit   300000
root@gw:/usr/home/test # pfctl -si
Status: Enabled for 0 days 00:02:14           Debug: Urgent

State Table                          Total             Rate
  current entries                       81
  searches                           72409          540.4/s
  inserts                             2531           18.9/s
  removals                            2450           18.3/s
Counters
  match                              47171          352.0/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                         0            0.0/s
  state-insert                           0            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s
root@gw:/usr/home/test # pfctl -si | grep memory
  memory                                 0            0.0/s

Edited by lex.lviv

Share this post


Link to post
Share on other sites

Добавте в конфіг

set skip on lo
set limit states 3000000
set optimization normal
set timeout { tcp.closing 60, tcp.established 7200}
set limit table-entries 300000
set limit src-nodes 25000
 
scrub in on bge0  all fragment reassemble
scrub out on bge0 all fragment reassemble random-id no-df
nat pass on bge0 from 10.0.0.0/8 to any -> bge0 заміть на зовнішній іп свій
nat
pass on bge0 from 172.16.0.0/16 to any -> ваш іп шлюза 
nat
pass on bge0 from 192.168.0.0/16 to any -> ваш іп шлюза
 
Потім рестартніть pf.  pfctl -F all -f /etc/pf.conf
 
perl скрипт  запуск  pfctl -ss | perl pf.pl
Подивіться хто там з ваших абонів грузить вам нат. 
 
#!/usr/bin/perl
my $num_talkers = 10;
my %talkers;
while (<>) {
 
 my ($iface, $proto,$nsip,$sip) = split(" ");
 my ($sip,$port)= split(":",$sip);
 
 if (defined $talkers{$sip}) {
 
  $talkers{$sip}++;
 
 } else {
 
  $talkers{$sip} = 1;
 
 }
 
}
 
 
 
my @top_talkers = sort { $talkers{$b} <=> $talkers{$a} } keys %talkers;
 
my $i;
 
for ($i = 0; $i < $num_talkers; $i++) {
 
 print $top_talkers[$i], " (", $talkers{$top_talkers[$i]}, ")\n";
 
Покажіть свій  /boot/loader.conf  і /etc/sysctl.conf
Edited by FTTH_VN

Share this post


Link to post
Share on other sites
 cat /boot/loader.conf
geom_mirror_load="YES"
pf_load="YES"
dummynet_load="YES"
ipdivert_load="YES"
ipfw_load="YES"


sysctl.conf порожній.

зараз попробую. якраз почало підгальмовувати

Share this post


Link to post
Share on other sites
 cat /boot/loader.conf
geom_mirror_load="YES"
pf_load="YES"
dummynet_load="YES"
ipdivert_load="YES"
ipfw_load="YES"


sysctl.conf порожній.

зараз попробую. якраз почало підгальмовувати

 

uname -a 

Share this post


Link to post
Share on other sites
FreeBSD gw.west-ua.net 10.0-RELEASE FreeBSD 10.0-RELEASE #2: Tue Sep  2 11:33:45 EEST 2014     test@gw.west-ua.net:/usr/src/sys/i386/compile/NODENY  i386
 
про всяк випадок - з чим ядро зібрав
 
options         IPFIREWALL
options         IPDIVERT
options         DUMMYNET
#options                IPFIREWALL_FORWARD
#options                SCHED_ULE
options         ROUTETABLES=2

HZ=1000

options         ALTQ
options         ALTQ_CBQ        # Class Based Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)

рс.фаєрволл

тут троха прокоментую. самому файлу років з сім якщо не більше(пережив він купи різних біллінгів). просто пререносився з одноі системи на іншу при апгрейдах і відповідно доповнювався, так що сміття там достатньо. Останній перенос - з фряхи 7ю4 яка вирішила вмерти(хоча бекапи є, але стабільно дохне через місяць-два роботи)

 

ем1 - мав бути(ну і був) основний канал

бгє0 - мав бути резервним+маршрутизація в уаікс

нати від староі конфігураціі залишилися. не задіяні

#!/bin/sh -
f='/sbin/ipfw'
#/sbin/natd -u -p 8671 -a 192.168.0.2
#/sbin/natd -u -p 8672 -a 192.168.1.2
ifOut='em1'
ifOut1='bge0'
# ▒▒▒▒, ▒/▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
${f} table 120 flush
${f} table 120 add 224.0.0.0/4
#${f} table 120 add 192.168.0.0/16
#${f} table 120 add 172.16.0.0/16

${f} -f flush

#${f} table 37 flush
#${f} add 30 allow ip from 172.16.0.207 to me via ${ifout}
#${f} add 31 allow ip from me to 172.16.0.207 via ${ifout}
#========================SSH============================
${f} add 40 allow tcp from any to me 22
${f} add 41 allow tcp from me 22 to any

#${f} add 46 allow tcp from 195.42.130.150 to me 22
#${f} add 47 allow tcp from me 22 to 195.42.130.150

#${f} add 48 allow tcp from 195.42.130.217 to me 22
#${f} add 49 allow tcp from me 22 to 195.42.130.217

#${f} add 50 allow tcp from 178.212.240.0/25 to me 22
#${f} add 51 allow tcp from me 22 to 178.212.240.0/25

#=================Satelit-radius========================
${f} add 56 allow udp from me 1812 to any
${f} add 57 allow udp from any to me 1812
${f} add 58 allow udp from me 1813 to any
${f} add 59 allow udp from any to me 1813

#=======Simple Network Management Protocol=============
#${f} add 60 allow ip from 195.42.130.217 to me 161

#=================IpCAD-satalit==========================
#${f} add 71 allow tcp from 195.42.130.217 to me 512-1023

#=====================UA-IX============================
#${f} add 77 divert 8672 ip from "table(0)" to "table(126)"
#${f} add 78 fwd 192.168.1.1 ip from 192.168.1.2 to "table(126)"
#${f} add 79 divert 8672 ip from any to 192.168.1.2 via em1
${f} add 80 count ip from any to "table(126)" out
${f} add 81 count ip from "table(126)" to any out

#=====================World============================
#${f} add 82 divert 8671 ip from "table(0)" to "table(10)"
#${f} add 83 fwd 192.168.0.1 ip from 192.168.0.2 to "table(10)"
#${f} add 84 divert 8671 ip from any to 192.168.0.2 via em1

${f} add 86 count ip from any to "table(10)" out
${f} add 87 count ip from "table(10)" to any out

#===================dbForgeSudio=======================
#${f} add 90 allow tcp from  any to any 3306

#=======================VPN============================
${f} add 95 allow tcp from any to any 1723
${f} add 96 allow gre from any to any

#=====================Web-Admin========================
#${f} add 97 allow tcp from any to me 8000
#${f} add 98 allow tcp from me 8000 to any
#======================================================

${f} add 100 deny tcp from any to any 445

${f} add 110 allow ip from any to any via lo0

#==================▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ NoDeny=====================
#${f} add 111 pipe 1 ip from "table(2)" to "table(46)" in
#${f} add 112 pipe 2 ip from "table(46)" to "table(2)" out
#${f} pipe 1 config bw 1024Kbit/s
#${f} pipe 2 config bw 1024Kbit/s

#${f} add 113 allow ip from "table(2)" to "table(46)"
#=============================================================================

${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 140 deny ip from any to "table(120)"
${f} add 150 deny ip from "table(120)" to any
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut}
${f} add 201 skipto 500 ip from any to any via ${ifOut1}

#==================▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ NoDeny=====================
${f} add 270 deny tcp from not "table(0)" to 90.183.101.0/24
${f} add 280 fwd 127.0.0.1,8081 tcp from "table(35)" to not me dst-port 80 in
${f} add 290 fwd 127.0.0.1,8082 tcp from not "table(0)" to not me dst-port 80 in
#=============================================================================

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv ${ifOut}
${f} add 401 skipto 450 ip from any to any recv ${ifOut1}
${f} add 420 tee 1 ip from any to any
${f} add 450 tee 2 ip from any to any
${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 tee 1 ip from any to any
${f} add 540 allow ip from any to any
${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state

#=============================-Ping-==========================================
#${f} add 2001 allow icmp from any to any icmptype 8
#${f} add 2002 allow icmp from any to any icmptype 0

${f} add 2010 allow icmp from any to any
#=============================================================================

${f} add 2020 allow tcp from any to any 80,443
${f} add 2025 allow tcp from any to any 80,5006
${f} add 2050 deny ip from any to any via ${ifOut}
${f} add 2051 deny ip from any to any via ${ifOut1}
${f} add 2060 allow udp from any to any 53,7723


${f} add 2100 deny ip from any to any


${f} add 32490 deny ip from any to any

пф.конф коментарене, те що було, також брутально здублював із староі системи


#set limit states 3000000
#set limit frags 5000
#set limit src-nodes 25000
#set limit table-entries 300000
#set optimization aggressive
#nat pass on em1 from 10.0.0.0/8 to any -> em1
#nat pass on em1 from 172.16.0.0/16 to any -> em1
#nat pass on em1 from 192.168.0.0/16 to any -> em1
#nat pass on bge0 from 10.0.0.0/8 to any -> bge0
#nat pass on bge0 from 172.16.0.0/16 to any -> bge0
#nat pass on bge0 from 192.168.0.0/16 to any -> bge0

set skip on lo
set limit states 3000000
set optimization normal
set timeout { tcp.closing 60, tcp.established 7200}
set limit table-entries 300000
set limit src-nodes 25000

scrub in on bge0  all fragment reassemble
scrub out on bge0 all fragment reassemble random-id no-df
nat pass on bge0 from 10.0.0.0/8 to any -> bge0
nat pass on bge0 from 172.16.0.0/16 to any -> bge0
nat pass on bge0 from 192.168.0.0/16 to any -> bge0

рц.конф

#static_routes="net1 net2 net3 net4 net5 net6 net7 net8 net9"
#route_net1="-net 77.120.115.0/24 172.31.1.1"
#route_net2="-net 46.182.85.0/24 172.31.1.1"
#route_net3="-net 91.238.192.0/24 172.31.1.1"
#route_net4="-net 62.244.0.0/18 172.31.1.1"
#route_net5="-net 173.194/16 172.31.1.1"
#route_net6="-net 64.15.112.0/20 172.31.1.1"
#route_net7="-net 208.65.152.0/22 172.31.1.1"
#route_net8="-net 208.117.224.0/19 172.31.1.1"
#route_net9="-net 213.133.190.0/24 172.31.1.1"
defaultrouter="172.31.1.1"
hostname="gw.якийсь хост"

#lan
ifconfig_em0="inet 10.0.0.1  netmask 255.0.0.0" пппое
ifconfig_em0_alias0="inet 172.16.0.1 netmask 255.255.0.0" клієнт статичний
ifconfig_em0_alias1="inet 192.168.88.253 netmask 255.255.255.0" для розмови з обладнанням

#net
ifconfig_em1="inet 194.44.страшний уар  netmask 255.255.255.252" основна дзюра
ifconfig_bge0="inet 172.31.1.2  netmask 255.255.255.0" резерв


firewall_enable="YES"
gateway_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"




sshd_enable="YES"
fsck_y_enable="YES"
background_fsck="NO"
mysql_enable="YES"

apache22_enable="YES"
radiusd_enable="YES"
mpd_enable=YES
named_enable="YES"
ipcad_enable="YES"
snmpd_enable="YES"
smartd_enable="YES"

ntpd_enable="YES"
ntpd_sync_on_start="YES"
ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
#/sbin/kldload accf_http
smartd_enable="YES"

named_flags="-u bind -g bind"

Edited by lex.lviv

Share this post


Link to post
Share on other sites

рекомендують мені зпригнути на 9 версію. але самому цікаво в чому завтик

 

uptime
 9:32AM  up 19:30, 2 users, load averages: 0.44, 0.32, 0.22
 
поки політ з вечора нормальной

Share this post


Link to post
Share on other sites

№1 обновіть до STABLE

 

№2 зберіть ядро 

options         IPFIREWALL
options         IPDIVERT
options         DUMMYNET
Без ALTQ.
 
№3 sysctl.conf
kern.ipc.maxsockbuf=4194304
net.inet.tcp.sendbuf_max=4194304 
net.inet.tcp.recvbuf_max=4194304
net.inet.tcp.cc.algorithm=htcp
net.inet.tcp.cc.htcp.adaptive_backoff=1
net.inet.tcp.cc.htcp.rtt_scaling=1
net.inet.ip.forwarding=1 
net.inet.ip.fastforwarding=1
kern.ipc.soacceptqueue=1024
net.inet.tcp.mssdflt=1460
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.experimental.initcwnd10=1
net.inet.tcp.syncache.rexmtlimit=0
net.inet.ip.rtexpire=2
net.inet.ip.rtminexpire=2
net.inet.tcp.syncookies=0
 
№4 boot/loader.conf
pf_load="YES"
cc_htcp_load="YES"
amdtemp_load="YES"
net.inet.tcp.hostcache.cachelimit="0"
 
№5 зробіть графік  pf.
 
створити базу
 
cd /tools/rrdtool/pf_stats/
 
rrdtool create pf_stats_db.rrd \
--step 60 \
DS:BytesIn:COUNTER:120:0:10000000000000 \
DS:BytesOut:COUNTER:120:0:10000000000000 \
DS:PktsInPass:COUNTER:120:0:10000000000000 \
DS:PktsInBlock:COUNTER:120:0:10000000000000 \
DS:PktsOutPass:COUNTER:120:0:10000000000000 \
DS:PktsOutBlock:COUNTER:120:0:10000000000000 \
DS:States:GAUGE:120:0:10000000000000 \
DS:StateSearchs:COUNTER:120:0:10000000000000 \
DS:StateInserts:COUNTER:120:0:10000000000000 \
DS:StateRemovals:COUNTER:120:0:10000000000000 \
RRA:MAX:0.5:1:1500
 
update_pf.sh
 
 
 #!/bin/sh
 
gawk="/usr/local/bin/gawk"
pfctl="/sbin/pfctl"
rrdtool="/usr/local/bin/rrdtool"
 
pfctl_info() {
    local output=$($pfctl -si 2>&1)
    local temp=$(echo "$output" | $gawk '
        BEGIN {BytesIn=0; BytesOut=0; PktsInPass=0; PktsInBlock=0; \
               PktsOutPass=0; PktsOutBlock=0; States=0; StateSearchs=0; \
               StateInserts=0; StateRemovals=0}
        /Bytes In/ { BytesIn = $3 }
        /Bytes Out/ { BytesOut = $3 }
        /Packets In/ { getline;PktsInPass = $2 }
        /Passed/ { getline;PktsInBlock = $2 }
        /Packets Out/ { getline;PktsOutPass = $2 }
        /Passed/ { getline;PktsOutBlock = $2 }
        /current entries/ { States = $3 }
        /searches/ { StateSearchs = $2 }
        /inserts/ { StateInserts = $2 }
        /removals/ { StateRemovals = $2 }
        END {print BytesIn ":" BytesOut ":" PktsInPass ":" \
             PktsInBlock ":" PktsOutPass ":" PktsOutBlock ":" \
             States ":" StateSearchs ":" StateInserts ":" StateRemovals}
        ')
    RETURN_VALUE=$temp
}
 
### change to the script directory
cd /tools/rrdtool/pf_stats/
 
### collect the data
pfctl_info
 
### update the database
$rrdtool update pf_stats_db.rrd --template BytesIn:BytesOut:PktsInPass:PktsInBlock:PktsOutPass:PktsOutBlock:States:StateSearchs:StateInserts:StateRemovals N:$RETURN_VALUE
 
 
graf_pf.sh
 
 
 #!/bin/sh
### change to the script directory
cd /tools/rrdtool/pf_stats/
 
######
######## pf bandwidth and states graph
/usr/local/bin/rrdtool graph pf_stats_bytes_states.png \
-w 785 -h 151 -a PNG \
--slope-mode \
--start end-86400 --end now \
--font DEFAULT:7: \
--title "pf bandwidth and states" \
--watermark "`date`" \
--vertical-label "bytes/sec" \
--right-axis-label "states" \
--right-axis 0.001:0 \
--x-grid MINUTE:10:HOUR:1:MINUTE:120:0:%R \
--alt-y-grid --rigid \
DEF:BytesIn=pf_stats_db.rrd:BytesIn:MAX \
DEF:BytesOut=pf_stats_db.rrd:BytesOut:MAX \
DEF:States=pf_stats_db.rrd:States:MAX \
CDEF:scaled_States=States,1000,* \
AREA:BytesIn#33CC33:"bytes in " \
GPRINT:BytesIn:LAST:"Cur\:  %5.2lf" \
GPRINT:BytesIn:AVERAGE:"Avg\: %5.2lf" \
GPRINT:BytesIn:MAX:"Max\: %5.2lf" \
GPRINT:BytesIn:MIN:"Min\: %5.2lf\t\t" \
LINE1:scaled_States#FF0000:"states" \
GPRINT:States:LAST:"Cur\: %5.2lf" \
GPRINT:States:AVERAGE:"Avg\: %5.2lf" \
GPRINT:States:MAX:"Max\: %5.2lf" \
GPRINT:States:MIN:"Min\: %5.2lf\n" \
LINE1:BytesOut#0000CC:"bytes out" \
GPRINT:BytesOut:LAST:"Cur\: %5.2lf" \
GPRINT:BytesOut:AVERAGE:"Avg\: %5.2lf" \
GPRINT:BytesOut:MAX:"Max\: %5.2lf" \
GPRINT:BytesOut:MIN:"Min\: %5.2lf" 
 
#####
######## pf packet rate graph
/usr/local/bin/rrdtool graph pf_stats_packets.png \
-w 785 -h 151 -a PNG \
--slope-mode \
--start -86400 --end now \
--font DEFAULT:7: \
--title "pf packet rate" \
--watermark "`date`" \
--vertical-label "pass packets/sec" \
--right-axis-label "block packets/sec" \
--right-axis 0.01:0 \
--right-axis-format %1.1lf \
--x-grid MINUTE:10:HOUR:1:MINUTE:120:0:%R \
--alt-y-grid --rigid \
DEF:PktsInPass=pf_stats_db.rrd:PktsInPass:MAX \
DEF:PktsOutPass=pf_stats_db.rrd:PktsOutPass:MAX \
DEF:PktsInBlock=pf_stats_db.rrd:PktsInBlock:MAX \
DEF:PktsOutBlock=pf_stats_db.rrd:PktsOutBlock:MAX \
CDEF:scaled_PktsInBlock=PktsInBlock,100,* \
CDEF:scaled_PktsOutBlock=PktsOutBlock,100,* \
AREA:PktsInPass#33CC33:"pass in " \
GPRINT:PktsInPass:LAST:"Cur\: %5.2lf" \
GPRINT:PktsInPass:AVERAGE:"Avg\: %5.2lf" \
GPRINT:PktsInPass:MAX:"Max\: %5.2lf" \
GPRINT:PktsInPass:MIN:"Min\: %5.2lf\t\t" \
LINE1:scaled_PktsInBlock#FF0000:"block in " \
GPRINT:PktsInBlock:LAST:"Cur\: %5.2lf" \
GPRINT:PktsInBlock:AVERAGE:"Avg\: %5.2lf" \
GPRINT:PktsInBlock:MAX:"Max\: %5.2lf" \
GPRINT:PktsInBlock:MIN:"Min\: %5.2lf\n" \
LINE1:PktsOutPass#0000CC:"pass out" \
GPRINT:PktsOutPass:LAST:"Cur\: %5.2lf" \
GPRINT:PktsOutPass:AVERAGE:"Avg\: %5.2lf" \
GPRINT:PktsOutPass:MAX:"Max\:  %5.2lf" \
GPRINT:PktsOutPass:MIN:"Min\: %5.2lf\t\t" \
LINE1:scaled_PktsOutBlock#FF8000:"block out" \
GPRINT:PktsOutBlock:LAST:"Cur\: %5.2lf" \
GPRINT:PktsOutBlock:AVERAGE:"Avg\: %5.2lf" \
GPRINT:PktsOutBlock:MAX:"Max\: %5.2lf" \
GPRINT:PktsOutBlock:MIN:"Min\: %5.2lf\t\t"
 
#####
######## pf state rate graph
/usr/local/bin/rrdtool graph pf_stats_states.png \
-w 785 -h 151 -a PNG \
--slope-mode \
--start -86400 --end now \
--font DEFAULT:7: \
--title "pf state rate" \
--watermark "`date`" \
--vertical-label "states/sec" \
--right-axis-label "searches/sec" \
--right-axis 100:0 \
--x-grid MINUTE:10:HOUR:1:MINUTE:120:0:%R \
--alt-y-grid --rigid \
DEF:StateInserts=pf_stats_db.rrd:StateInserts:MAX \
DEF:StateRemovals=pf_stats_db.rrd:StateRemovals:MAX \
DEF:StateSearchs=pf_stats_db.rrd:StateSearchs:MAX \
CDEF:scaled_StateSearchs=StateSearchs,0.01,* \
AREA:StateInserts#33CC33:"inserts" \
GPRINT:StateInserts:LAST:"Cur\: %5.2lf" \
GPRINT:StateInserts:AVERAGE:"Avg\: %5.2lf" \
GPRINT:StateInserts:MAX:"Max\: %5.2lf" \
GPRINT:StateInserts:MIN:"Min\: %5.2lf\t\t" \
LINE1:scaled_StateSearchs#FF0000:"searches" \
GPRINT:StateSearchs:LAST:"Cur\: %5.2lf" \
GPRINT:StateSearchs:AVERAGE:"Avg\: %5.2lf" \
GPRINT:StateSearchs:MAX:"Max\: %5.2lf" \
GPRINT:StateSearchs:MIN:"Min\: %5.2lf\n" \
LINE1:StateRemovals#0000CC:"removal" \
GPRINT:StateRemovals:LAST:"Cur\: %5.2lf" \
GPRINT:StateRemovals:AVERAGE:"Avg\: %5.2lf" \
GPRINT:StateRemovals:MAX:"Max\: %5.2lf" \
GPRINT:StateRemovals:MIN:"Min\: %5.2lf" 
 
####### copy to the web directory
cp pf_stats_*.png /usr/local/www/apache22/data/
 
Добавте в cron 
*/1    *     *    *   *  root  /tools/rrdtool/pf_stats/update_pf.sh
*/1 *  *    *   *   root /tools/rrdtool/pf_stats/graf_pf.sh >> /dev/null 2>&1
 
Через добу скиньте сюди графік. 

Share this post


Link to post
Share on other sites

ок. приступаю. наразі як 4 години тому почало рвати

Share this post


Link to post
Share on other sites

подумав, а може карта глючна. щойно запусив набортову.

наразі граф за ніч. в якості клієнта поставив сідбокс

 

pf_stats_packets.png

 

pf_stats_bytes_states.png

 

pf_stats_states.png

Share this post


Link to post
Share on other sites

Графік

Сервер проц Intel® Xeon® CPU E3-1220 v3 @ 3.10GHz

ОЗУ 8Gb
Мережеві 
Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
Трафік в час пік більше 400мб. Може у вас проблеми з залізом?  
 

 

post-31121-0-20146300-1410334250_thumb.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Новичок я тут
      Доброго вечера, хотел бы услышать мнение знающих людей, какой фаервол выбрать для ната что удобней, производительней ? ipfw или pf кто что использует
    • By rusol
      Здравствуйте, голова уже болит, мысли закончились, может кто-то подскажет чего...

      Ситуация такая:

      Клиент жалуется, что c их ftp, который находиться в России, плохая скорость (прыгает от 10 Мбит/с до 30 Мбит/с, по тарифу должна быть 100 Мбит/с), проверили на ftp другого хостинга - все нормально, 100 Мбит.

      Я бы не писал сюда, но есть одно большое НО.. когда я захожу на главный маршрутизатор (FreeBSD + Nodeny 50.32 + IPFW + PF), то с главного сервака скорость отличная, а за серваком (в сети) скорость падает, при этом на другие ftp скорость хорошая с сети...

      То-есть без связки Nodeny + IPFW + PF - скорость отличная (на главном серваке).

      Подставлял реальный IP сервака на локальную машину, думал может ftp по IP что-то ограничивает, эффекта не дало...

      Может кто подскажет куда поглядеть, у меня уже мысли заканчиваются...
    • By Archy_k
      Привет всем.
      Настраиваю возможность пополнения счета абонентами из Личного кабинета с помощью АПИ приват24.
      Включил, работает. Но проблема вот в чем:
       
      1. Абоненты без интернета не могут попасть в Приват24 (когда апи их редиректит) -> нужно добавить IP адрес ПриватБанка в фаэрвол - разрешить правилом всем. НО! У ПриватБанка целый пул IP-адресов, и самый главный вопрос - подскажите этот ПриватБанковский пул IP-адресов, на который нужно разрешить доступ должникам в фаэрволе. - ПриватБанк пытаюсь прободать уже 3 дня - либо они тяжелые на подъём, либо это у них какая-то секретная информация))) - Подскажите пул адресов привата, те кто с этим уже сталкивался!
       
      2. Вместо ipfw у меня nat'ит pf на freebsd.
      Подскажите правильность написания правила в pf, например разрешить доступ с сети 10.0.0.0/20 на блок адресов например 54.0.0.0/22
      ,где 10.0.0.0/20 - это предположим - должники,
      а 54.0.0.0/22 - это, предположим - пул IP ПриватБанка. 
       
      Заранее благодарю за помощь!!! 
×