ThreeDHead Posted November 17, 2012 (edited) Необходимо отматчить пакеты с сети 10.0.0.0/8 в НЕ 10.0.0.0/8 В линуксе в айпитейблисе это: -s 10.0.0.0/8 ! -d 10.0.0.0/8 Вот состряпал ACL для коммутатора: ip access-list extended acl-local-to-inet 10 permit tcp 10.0.0.0 0.255.255.255 10.0.0.0 245.255.255.255 Но возник вопрос - верно ли я описал wildcard назначения? Вот два варианта (ip wildcard): 1) 0.0.0.0 245.255.255.255 2) 10.0.0.0 245.255.255.255 Какой из них описывает "НЕ 10.0.0.0/8" Сам склоняюсь к первому варианту. Edited November 17, 2012 by ThreeDHead Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
z.a.v. Posted November 17, 2012 А так не пойдет? ip access-list extended acl-local-to-inet 5 deny tcp 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255 10 permit tcp 10.0.0.0 0.255.255.255 any Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 17, 2012 А так не пойдет? Ждал этого ответа :) Неа, не подойдет. D-Link (7210) умудряется делать этому пакету реальный DENY. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Valaskor Posted November 17, 2012 (edited) 10 permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255 20 deny ip 10.0.0.0 0.255.255.255 any 30 permit ip any any Edited November 17, 2012 by Valaskor Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 17, 2012 10 permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255 20 deny ip 10.0.0.0 0.255.255.255 any 30 permit ip any any Считаю что так несколько мудрёно. Вообще привел несколько некорректный пример, там у меня TCP, но нет окончания, почему именно TCP. Вот так понятнее будет (с локала в интернет на 80 порт): ip access-list extended acl-local-to-inet 10 permit tcp 10.0.0.0 0.255.255.255 10.0.0.0 245.255.255.255 eq www Одной строчкой реально описАть? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zi_rus Posted November 17, 2012 10 permit ip 10.0.0.0 0.255.255.255 10.0.0.0 0.255.255.255 20 deny ip 10.0.0.0 0.255.255.255 any 30 permit ip any any и че, все также заденаится очевидно автору это не нужно, ацл должен исключить из обработки такие пакеты, а не запретить их совсем Какой из них описывает "НЕ 10.0.0.0/8" оба неправильные больше подходит первый, но под него не попадает не только 0000 1010, но и 00001011, и тд Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 17, 2012 (edited) Интересно, такой вариант, однозначно опишет "НЕ 10.0.0.0/8": 10 permit tcp 10.0.0.0 0.255.255.255 0.0.0.0 240.255.255.255 eq www 11 permit tcp 10.0.0.0 0.255.255.255 1.0.0.0 240.255.255.255 eq www 12 permit tcp 10.0.0.0 0.255.255.255 2.0.0.0 240.255.255.255 eq www 13 permit tcp 10.0.0.0 0.255.255.255 3.0.0.0 240.255.255.255 eq www 14 permit tcp 10.0.0.0 0.255.255.255 4.0.0.0 240.255.255.255 eq www 15 permit tcp 10.0.0.0 0.255.255.255 5.0.0.0 240.255.255.255 eq www 16 permit tcp 10.0.0.0 0.255.255.255 6.0.0.0 240.255.255.255 eq www 17 permit tcp 10.0.0.0 0.255.255.255 7.0.0.0 240.255.255.255 eq www 18 permit tcp 10.0.0.0 0.255.255.255 8.0.0.0 240.255.255.255 eq www 19 permit tcp 10.0.0.0 0.255.255.255 9.0.0.0 240.255.255.255 eq www 21 permit tcp 10.0.0.0 0.255.255.255 11.0.0.0 240.255.255.255 eq www 22 permit tcp 10.0.0.0 0.255.255.255 12.0.0.0 240.255.255.255 eq www 23 permit tcp 10.0.0.0 0.255.255.255 13.0.0.0 240.255.255.255 eq www 24 permit tcp 10.0.0.0 0.255.255.255 14.0.0.0 240.255.255.255 eq www 25 permit tcp 10.0.0.0 0.255.255.255 15.0.0.0 240.255.255.255 eq www 30 permit tcp 10.0.0.0 0.255.255.255 26.0.0.0 240.255.255.255 eq www 31 permit tcp 10.0.0.0 0.255.255.255 42.0.0.0 240.255.255.255 eq www 32 permit tcp 10.0.0.0 0.255.255.255 58.0.0.0 240.255.255.255 eq www 33 permit tcp 10.0.0.0 0.255.255.255 74.0.0.0 240.255.255.255 eq www 34 permit tcp 10.0.0.0 0.255.255.255 90.0.0.0 240.255.255.255 eq www 35 permit tcp 10.0.0.0 0.255.255.255 106.0.0.0 240.255.255.255 eq www 36 permit tcp 10.0.0.0 0.255.255.255 122.0.0.0 240.255.255.255 eq www 37 permit tcp 10.0.0.0 0.255.255.255 138.0.0.0 240.255.255.255 eq www 38 permit tcp 10.0.0.0 0.255.255.255 154.0.0.0 240.255.255.255 eq www 39 permit tcp 10.0.0.0 0.255.255.255 170.0.0.0 240.255.255.255 eq www 40 permit tcp 10.0.0.0 0.255.255.255 186.0.0.0 240.255.255.255 eq www 41 permit tcp 10.0.0.0 0.255.255.255 202.0.0.0 240.255.255.255 eq www 42 permit tcp 10.0.0.0 0.255.255.255 218.0.0.0 240.255.255.255 eq www 43 permit tcp 10.0.0.0 0.255.255.255 234.0.0.0 240.255.255.255 eq www 44 permit tcp 10.0.0.0 0.255.255.255 250.0.0.0 240.255.255.255 eq www Но это вариант, конечно, конкретно "в лоб". Edited November 17, 2012 by ThreeDHead Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 17, 2012 Ну, собственно, вот и окончательный вариант: 10 permit tcp 10.0.0.0 0.255.255.255 0.0.0.0 245.255.255.255 eq www 20 permit tcp 10.0.0.0 0.255.255.255 2.0.0.0 245.255.255.255 eq www 30 permit tcp 10.0.0.0 0.255.255.255 8.0.0.0 245.255.255.255 eq www Где: 0 = 00000000 2 = 00000010 8 = 00001000 10 = 00001010 245 = 11110101 Ибо правило "10.0.0.0/8 в any" будет выглядеть так: 10 permit tcp 10.0.0.0 0.255.255.255 0.0.0.0 245.255.255.255 eq www 20 permit tcp 10.0.0.0 0.255.255.255 2.0.0.0 245.255.255.255 eq www 30 permit tcp 10.0.0.0 0.255.255.255 8.0.0.0 245.255.255.255 eq www 40 permit tcp 10.0.0.0 0.255.255.255 10.0.0.0 245.255.255.255 eq www Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Alex/AT Posted November 17, 2012 (edited) Самый правильный c точки зрения наглядности вариант всё-таки несколько длиннее: // поправленная версия ниже Понятно, что портянка, но зато более-менее канонично (с точки зрения сабнетинга). Edited November 18, 2012 by Alex/AT Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 18, 2012 Я был неправ. Собрал стенд, провел тесты, ниже рабочий вариант. Алгоритм такой: 1. Пропускаем все что не совпадает с 10-кой 00001010, это 00000000, 00000010, 00001000 (первые три строчки) при wildcard 245 (11110101) 2. Тут приходится перечислять все сети, в которых первый октет содержит два бита как и в 10-ке при wildcard 0 (00000000) Не совсем радужное количество записей, но другого варианта описать НЕ 10.0.0.0/8 - нету. permit ip 10.0.0.0 0.255.255.255 0.0.0.0 245.255.255.255 permit ip 10.0.0.0 0.255.255.255 2.0.0.0 245.255.255.255 permit ip 10.0.0.0 0.255.255.255 8.0.0.0 245.255.255.255 permit ip 10.0.0.0 0.255.255.255 11.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 14.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 15.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 26.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 27.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 30.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 31.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 42.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 43.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 46.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 47.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 58.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 59.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 62.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 63.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 74.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 75.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 78.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 79.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 90.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 91.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 94.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 95.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 106.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 107.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 110.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 111.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 122.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 123.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 126.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 127.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 138.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 139.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 142.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 143.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 154.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 155.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 158.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 159.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 170.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 171.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 174.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 175.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 186.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 187.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 190.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 191.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 202.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 203.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 206.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 207.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 218.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 219.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 222.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 223.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 234.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 235.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 238.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 239.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 250.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 251.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 254.0.0.0 0.255.255.255 permit ip 10.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Alex/AT Posted November 18, 2012 (edited) Не совсем радужное количество записей, но другого варианта описать НЕ 10.0.0.0/8 - нету. Oops. Лишков :) Был мой пост выше - я там вчера слегка по вечеру и недосыпу попутал маски, но вот это - 100% описание "НЕ 10.0.0.0/8" в 8 строк: permit tcp 10.0.0.0 0.255.255.255 0.0.0.0 7.255.255.255 permit tcp 10.0.0.0 0.255.255.255 8.0.0.0 1.255.255.255 permit tcp 10.0.0.0 0.255.255.255 11.0.0.0 0.255.255.255 permit tcp 10.0.0.0 0.255.255.255 12.0.0.0 3.255.255.255 permit tcp 10.0.0.0 0.255.255.255 16.0.0.0 15.255.255.255 permit tcp 10.0.0.0 0.255.255.255 32.0.0.0 31.255.255.255 permit tcp 10.0.0.0 0.255.255.255 64.0.0.0 63.255.255.255 permit tcp 10.0.0.0 0.255.255.255 128.0.0.0 127.255.255.255 Если вкратце разобрать матчинг - то он таков: 0-7, 8-9, 11, 12-15, 16-31, 32-63, 64-127, 128-255. Т.е. покрываются все диапазоны 1 октета, кроме собственно 10. Edited November 18, 2012 by Alex/AT Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 19, 2012 Не совсем радужное количество записей, но другого варианта описать НЕ 10.0.0.0/8 - нету. Oops. Лишков :) Был мой пост выше - я там вчера слегка по вечеру и недосыпу попутал маски, но вот это - 100% описание "НЕ 10.0.0.0/8" в 8 строк: permit tcp 10.0.0.0 0.255.255.255 0.0.0.0 7.255.255.255 permit tcp 10.0.0.0 0.255.255.255 8.0.0.0 1.255.255.255 permit tcp 10.0.0.0 0.255.255.255 11.0.0.0 0.255.255.255 permit tcp 10.0.0.0 0.255.255.255 12.0.0.0 3.255.255.255 permit tcp 10.0.0.0 0.255.255.255 16.0.0.0 15.255.255.255 permit tcp 10.0.0.0 0.255.255.255 32.0.0.0 31.255.255.255 permit tcp 10.0.0.0 0.255.255.255 64.0.0.0 63.255.255.255 permit tcp 10.0.0.0 0.255.255.255 128.0.0.0 127.255.255.255 Если вкратце разобрать матчинг - то он таков: 0-7, 8-9, 11, 12-15, 16-31, 32-63, 64-127, 128-255. Т.е. покрываются все диапазоны 1 октета, кроме собственно 10. Хороший вариант. Тест на стенде прошел. Вкратце как проходил тест: на тестируемом образце заворачиваем трафик тестового хоста через PBR на второй роутер, у которого с портов считаем счетчики пакетов. Так сложно, по причине того что лентяи из Dlink'а не поставили счетчиков ни на acl'ы ни на route-map'ы. Считываем пакеты, с порта nexthop'а: $ while true; do VALUE=`snmpget -v 2c -c private 10.X.Y.Z .1.3.6.1.2.1.2.2.1.11.18 | awk '{print $4}'`; NUM=$[$VALUE-$LASTVALUE]; LASTVALUE=$VALUE; if [ $NUM -eq 0 ]; then echo -n "."; else echo -n $NUM; fi; sleep 0.2; done 60...............................1112..11111..1112..11111..11111..2111..11111..1211..11111........11111..1121..11111..1112..11111..11111.11111..11111.11111..11111..2111..11111..2111..11112. .1211..11111..1211..11111..1121..11111..1121..11111..1112..11111..1112..11111..1112..11111..11111.11111..11111.11111..11111..2111..11111..2111..11111..1211..11111..1211..11111..1121..11111. .11111.11111..1112..11111..11111.11111..1112..11.1..11111..1112..11111..1112..11111..1..11111.11111..11111..2111..11111..1211..11.11111..1112...2111..11111..1211..11111..1211..11111..1211. .11111..1121..11111..1112..11111..1121..111111.1112..11111..11111..2111..11111..1211..11111..1121..11111..1112..11111..1112..11111..1112..11111..1112...2111..11111..2111..11111..1211..11111. .1121..1121..11111..11111..2111..11111..1211..11111..1121..11111..1121..11111..1112.........11111.11111..11111..2111..11111..2111..11111..2111..111111.1121..11111..1112..11111..1112..11111. .11111..2111..11111..2111..11111..1211..11111..1121..11111..1112..11111..1112..111111.1112...2111..1121..11111..1121..11111..1121..11111..1121..11111..1..11111.11111..1121..11111..1112..11111. .1112..11111..11111..2111..11111..1211..11111..1121..11111..1121..11111..1211..11111..1121..11111..1121..11111..1112..11111..1112...2111..11111..2111..11111.11111..11111..1211..11111..1211. .11111..1121..11121..1112..11111..1112..11111..11111..2111..11111.11111..11111..2111..11111..2111..11111..12111.11111..1121..11111..1121..11111.....................................1121..11111. .1112..11111..1211..11111..1112..11111..11111.11111..1121..11111..11111..2111..11111..2111.......................^C Собственно пингуем сети: $ for i in `seq 1 255`; do echo -n " $i"; ping -i 0.2 -w 1 $i.1.1.1 2>&1 >/dev/null; sleep 0.5; done 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224ping: broadcast ping with too short interval. 225ping: broadcast ping with too short interval. 226ping: broadcast ping with too short interval. 227ping: broadcast ping with too short interval. 228ping: broadcast ping with too short interval. 229ping: broadcast ping with too short interval. 230ping: broadcast ping with too short interval. 231ping: broadcast ping with too short interval. 232ping: broadcast ping with too short interval. 233ping: broadcast ping with too short interval. 234ping: broadcast ping with too short interval. 235ping: broadcast ping with too short interval. 236ping: broadcast ping with too short interval. 237ping: broadcast ping with too short interval. 238ping: broadcast ping with too short interval. 239ping: broadcast ping with too short interval. 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 Не прошли тест пакеты в сети 127.*, 224-239.* - но с ними и так все ясно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ThreeDHead Posted November 19, 2012 Alex/AT, задача успешно решена, может переберемся сюда? ;) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...