Ru-Board.club
← Вернуться в раздел «UNIX»

» диапазон ip адресов в ipfw

Автор: dariusii
Дата сообщения: 15.07.2007 17:53
вырезка из man ipfw:

list: {num | num-num}[,list]
Matches all addresses with base address addr (specified as a dot-
ted quad or a hostname) and whose last byte is in the list
between braces { } . Note that there must be no spaces between
braces and numbers (spaces after commas are allowed). Elements
of the list can be specified as single entries or ranges. The
masklen field is used to limit the size of the set of addresses,
and can have any value between 24 and 32. If not specified, it
will be assumed as 24.
This format is particularly useful to handle sparse address sets
within a single rule. Because the matching occurs using a bit-
mask, it takes constant time and dramatically reduces the com-
plexity of rulesets.
As an example, an address specified as 1.2.3.4/24{128,35-55,89}
will match the following IP addresses:
1.2.3.128, 1.2.3.35 to 1.2.3.55, 1.2.3.89 .

Вопрос. А как же задать не ласт? То есть, не последний сегмент адреса.

пример 1.(2-5).3.4, или 1.(2-5).(15-44).0/24
Автор: keyhell
Дата сообщения: 15.07.2007 18:32
несколькими правилами.

не стоит делать для разных подсетей все одним правилом. как и обычно, причины банальны:
1) "теряется" прозрачность правил.
2) firewall все равно такие правила разделяет и представляет как разные. т.е. выигрыша в скорости нет, даже вероятнее проигрышь.

ну и вообще... KISS, не забыли?
Автор: dariusii
Дата сообщения: 15.07.2007 19:10
keyhell

Пример.

Есть сеть 10.60.0.0

Нужно применить к ней кое-какие правила.

Сеть 10.60.1.0 нужно оставить в покое. Не трогать.


Не делать же мне 254 правила

____
KISS, не забыли?

Забыл Помню, только, Iron Maiden, Nazareth (до 1980 г.), Garry Moore итц.
Автор: keyhell
Дата сообщения: 15.07.2007 19:14

Цитата:
Есть сеть 10.60.0.0

Нужно применить к ней кое-какие правила.

Сеть 10.60.1.0 нужно оставить в покое. Не трогать.


Не делать же мне 254 правила

два правила.
1) для 10.60.0.0
2) для 10.60.1.0

только в зависимости от используемого firewall их последовательность нужна правильная.
Автор: dariusii
Дата сообщения: 15.07.2007 19:24
ipfw add 01920 pipe 8 ip from any to 10.60.1.0/24
ipfw add 01930 pipe 7 ip from any to 10.60.0.0/16

Примерно, так?

Добавлено:
общая картина получается такой

add 01900 pipe 10 ip from any to 10.62.0.0/16
add 01910 pipe 9 ip from any to 10.65.0.0/16
add 01920 pipe 8 ip from any to 10.60.1.0/24
add 01930 pipe 7 ip from any to 10.60.0.0/16
add 01940 pipe 6 ip from any to 10.21.0.0/16
add 01950 pipe 5 ip from any to 10.16.0.0/16
add 01960 pipe 3 ip from any to 10.61.0.0/16
add 01970 pipe 4 ip from any to 10.61.0.0/16
add 01980 pipe 2 ip from any to 10.64.0.0/16
pipe 1 config bw 40Kbit/s queue 20 delay 10ms
pipe 2 config bw 40Kbit/s queue 20 delay 10ms
pipe 3 config bw 40Kbit/s queue 20 delay 10ms
pipe 4 config bw 40Kbit/s queue 20 delay 10ms
pipe 5 config bw 40Kbit/s queue 20 delay 10ms
pipe 6 config bw 40Kbit/s queue 19 delay 10ms
pipe 7 config bw 40Kbit/s queue 20 delay 10ms
pipe 8 config bw 999Kbit/s queue 20 delay 10ms
pipe 9 config bw 40Kbit/s queue 20 delay 10ms
pipe 10 config bw 80Kbit/s queue 20 delay 10ms

как только добавляю 10.60.0.0 сеть, даже с перекрывающим правилом в 10.60.1.0, получаю по ж.

в 10.60.1.0 сети, сервисы прова. Более, их нигде нет. dns, vpn итц. Но точные адреса я не знаю. Поэтому и решил перекрыть эту сеть. То есть, "исключить" из правил шейпинга, путем задавания высокой скорости для этой подсети.
результат - 0. соединение в инет, ложится.

При чем, если правила поменять местами
add 01930 pipe 8 ip from any to 10.60.1.0/24
add 01920 pipe 7 ip from any to 10.60.0.0/16
То это, ровным счетом, ничего не дает. Как будто и не делал исключения для сети 10.60.1.0

Что за хрень - непонятно...
Автор: Drron
Дата сообщения: 16.07.2007 09:25
Скорей всего у тебя стоит опция ядра
net.inet.ip.fw.one_pass=0
и соответственно после выхода из первого правила трафик идет по второму.

В этом случае используй опцию skipto в правилах, примерно так

add 01900 pipe 10 ip from any to 10.62.0.0/16
add 01910 pipe 9 ip from any to 10.65.0.0/16
add 01920 pipe 8 ip from any to 10.60.1.0/24
add 01921 skipto 1931 ip from any to 10.60.1.0/24
add 01930 pipe 7 ip from any to 10.60.0.0/16
Автор: keyhell
Дата сообщения: 16.07.2007 09:26

Цитата:
в 10.60.1.0 сети, сервисы прова. Более, их нигде нет. dns, vpn итц. Но точные адреса я не знаю. Поэтому и решил перекрыть эту сеть. То есть, "исключить" из правил шейпинга, путем задавания высокой скорости для этой подсети.
результат - 0. соединение в инет, ложится.

ой, елки-палки, и из-за этого вы городите какие-то правила ipfw?! зачем? а dns серверы у провайдера тоже оба в 10.60.1.0? - не верю. должны быть в разных подсетях. а если он что-то вынесет в другие подсети, то вы будете каждый раз firewall перенастраивать??

imho, бесполезно это.

впрочем, если вы очень настроены все это воплощать в жизнь, то показывайте полный конфиг своего firewall. только не надо все лепить в пост. скройте так, чтобы у нас тут не было 200-страничной переписки.

p.s. и все же рекомендую подумать над _нормальной_ структурой правил, ибо каждую возможную подсеть отбивать через pipe - это глупость.
Автор: dariusii
Дата сообщения: 16.07.2007 13:42
keyhell

DNS серверы 10.60.1.20 и внешний, куда правила вообще не доходят - 212.15.127.1

ибо каждую возможную подсеть отбивать через pipe - это глупость.

Задача - не допустить нагрузки с dc++ клиента. Инет по кабелю. Если апстрим достигает предела - сильно падает скорость закачки "ко мне".

Ось - Mac OS X

[more]02000 456665 51186196 allow ip from any to any via lo*
02010 0 0 deny ip from 127.0.0.0/8 to any in
02020 0 0 deny ip from any to 127.0.0.0/8 in
02030 0 0 deny ip from 224.0.0.0/3 to any in
02040 0 0 deny tcp from any to 224.0.0.0/3 in
02050 5492676 6909038582 allow tcp from any to any out
02060 4134905 1710729071 allow tcp from any to any established
02065 0 0 allow tcp from any to any frag
02070 0 0 allow tcp from any to any dst-port 1412 in
02080 8811 421104 allow tcp from any to any dst-port 49150 in
12190 2744 134088 deny tcp from any to any
20000 1 60 deny icmp from any to me in icmptypes 8
20310 0 0 allow udp from any to any dst-port 53 in
20320 105 36318 allow udp from any to any dst-port 68 in
20321 0 0 allow udp from any 67 to me in
20322 0 0 allow udp from any 5353 to me in
20340 0 0 allow udp from any to any dst-port 137 in
20350 133 9514 allow udp from any to any dst-port 427 in
20360 0 0 allow udp from any to any dst-port 631 in
20370 7157 557379 allow udp from any to any dst-port 5353 in
22000 0 0 allow udp from any to any dst-port 1412 in
22010 108704 17158225 allow udp from any to any dst-port 49150 in
22020 8 608 allow udp from any to any dst-port 123 in
30510 187464 27227467 allow udp from me to any out keep-state
30520 1 70 allow udp from any to any in frag
35000 457 77141 deny udp from any to any in
65535 8551657 7447779092 allow ip from any to any[/more]

Drron

К примеру, мне нужно разрешить нормальную скорость одному из адресов. Достаточно сделать правило номером меньше того, которое шейпит всю сеть. Странно. Попробую, конечно

Добавлено:
Drron

Да. Работает
Автор: ZaqwrKos
Дата сообщения: 19.07.2007 09:48
dariusii
плодя кучу пайпов вы грузите систему, создайте пайпы с необходимой вами скоростью, а не кучу пайпов для каждой подсети и туда заворачивайте свои подсети и читабельнее будет и правельнее
ещё ipfq pipe show покажите....
Автор: dariusii
Дата сообщения: 03.08.2007 18:36
Забиваю
ipfw pipe 1 config bw 10KByte/s
ipfw pipe 2 config bw 200KByte/s

далее, после некоторых манипуляций, все выглядит следующим образом:
[more]
01900 12227 12248573 pipe 2 ip from any to 10.60.1.0/24
01901 0 0 skipto 1911 ip from any to 10.60.1.0/24
01910 0 0 pipe 1 ip from any to 10.60.0.0/16
01920 0 0 pipe 1 ip from any to 10.61.0.0/16
01930 0 0 pipe 1 ip from any to 10.62.0.0/16
01940 16500 2410574 pipe 1 ip from any to 10.63.0.0/16
01950 0 0 pipe 1 ip from any to 10.64.0.0/16
01960 0 0 pipe 1 ip from any to 10.65.0.0/16
01970 102 5524 pipe 1 ip from any to 192.168.0.0/16
01980 301 420024 pipe 1 ip from any to 10.16.0.0/16
01990 197 283782 pipe 1 ip from any to 10.24.0.0/16[/more]

тормоза "в инет" страшные

есть оффтопичный аналог под win - bandvich manager какой-то (сторонняя софтина). По сути, там те же правила. Я к тому, что изоляция сети 10.60.1.0 решает проблему, в принципе.
Автор: dariusii
Дата сообщения: 03.08.2007 23:33
Drron

sysctl -a | grep net.inet.ip.fw.one_pass
net.inet.ip.fw.one_pass: 1


--
Ветка потонула?
Автор: ZaqwrKos
Дата сообщения: 06.08.2007 06:29
dariusii
ИМХО , обязательно сделайте обратный правила, типа in - out , via eth0 ....
если есть нат то полюбому будет тормозить, в том варианте который вы написали.
Автор: dariusii
Дата сообщения: 07.08.2007 02:06
ZaqwrKos

ipfw pipe 1 config bw 10KByte/s
ipfw pipe 2 config bw 10000KByte/s
ipfw add 01900 pipe 2 ip from any to 10.60.1.0/24 out via en0
ipfw add 01901 skipto 01911 ip from any to 10.60.1.0/24 out via en0
ipfw add 01910 pipe 1 ip from any to 10.60.0.0/16 out via en0

Все. Уже тормоза пошли.

Нет. Трансляции адресов нет.

А вот аналог виндовой какой-то тулзы:



все работает. Я к диапазону адресов 10.60.1.0/24, это..

Самое интересное - у меня azureus стоит. Так, вот как он отдавал 40 kBps, так и отдает Скорость не упала )))

Может, нужно сделать что-то типа этого:

ipfw add 01902 pipe 2 ip from any to me in via en0

?
Автор: ZaqwrKos
Дата сообщения: 07.08.2007 09:57
dariusii
ipfw pipe 2 config bw 10000KByte/s
ipfw pipe 3 config bw 10000KByte/s
ipfw add 01900 pipe 2 ip from any to 10.60.1.0/24 in via en0
ipfw add 01900 pipe 3 ip from 10.60.1.0/24 to any out via en0
ipfw add 01900 allow ip from any to 10.60.1.0/24
ipfw add 01900 allow ip from 10.60.1.0/24 to any

в случае с нат так лучше.
net.inet.ip.fw.one_pass: 0
без него два последние allow не нужны
Автор: dariusii
Дата сообщения: 07.08.2007 13:33
ZaqwrKos

.......
ipfw add 01900 pipe 2 ip from any to 10.60.1.0/24 in via en0
ipfw add 01900 pipe 3 ip from 10.60.1.0/24 to any out via en0
ipfw add 01900 allow ip from any to 10.60.1.0/24
ipfw add 01900 allow ip from 10.60.1.0/24 to any


С одинаковыми номерами правил?
Автор: f10
Дата сообщения: 07.08.2007 14:46
В этом ничего криминального нет. Хотя и смысла в данном случае не вижу. =)
Автор: dariusii
Дата сообщения: 07.08.2007 22:01
f10

Ты знаешь альтернативу шейпингу ipfw, под Mac OS X?

Можешь поделиться?
Автор: f10
Дата сообщения: 07.08.2007 22:43
Увы, я вообще сюда забрёл только потому, что ipfw есть также во FreeBSD ;)
Автор: dariusii
Дата сообщения: 07.08.2007 23:08
Вопрос темы топика открыт

Кто-нибудь знает, как сделать шейпинг, учитывая, что нужно обойти некоторую подсеть?
Автор: ZaqwrKos
Дата сообщения: 08.08.2007 11:02

Цитата:
Пример.

Есть сеть 10.60.0.0

Нужно применить к ней кое-какие правила.

Сеть 10.60.1.0 нужно оставить в покое. Не трогать.

предполагаю что 10.60.0.0/16 зарезаем всё, кроме 10.60.1.0/24

ipfw pipe 2 config bw 10KByte/s
ipfw pipe 3 config bw 10KByte/s
ipfw add 01800 allow ip from any to 10.60.1.0/24 #оставляем в покое
ipfw add 01801 allow ip from 10.60.1.0/24 to any #подсеть 10.60.1.0/24

ipfw add 01900 pipe 2 ip from any to 10.60.0.0/16 in via en0 #режем скорость
ipfw add 01901 pipe 3 ip from 10.60.0.0/16 to any out via en0 # до 10 Kb/s
ipfw add 01902 allow ip from any to 10.60.0.0/16 #10.60.0.0/16
ipfw add 01903 allow ip from 10.60.0.0/16 to any

=)

Страницы: 1

Предыдущая тема: как правильно редактировать файл *.config?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.