Чи можливі відповідні протоколи IPv6 у Cisco IOS?


9

Facebook дуже розумний зі своєю схемою адрес IPv6, але це задумало мене про ACL та чи можна написати Cisco IOS IPv6 ACL, який відповідає? У IPv4 ви можете зіставити середній октет, наприклад 10.xxx.10.xxx, щоб потрапити на будь-який "x" з "не хвилює". Я не думаю, що це можливо в IPv6, принаймні, не в IOS 15.1.

Що стосується мого прикладу, оскільки Facebook був розумним, це легко поєднувати FACE: B00C, якщо ви могли. У чомусь це спрощується, оскільки, не шукаючи, який блок був призначений, я можу просто відповідати цьому діапазону.

2A03: 2880: F000: [0000-FFFF]: ЛИЦЕ: B00C :: / 96

Очевидний і нормальний спосіб - це узгодження на 2A03: 2880: F000 :: / 48, але, на жаль, я не впевнений з першого погляду, якщо FB має більший діапазон (напевно, є). Тож у цьому конкретному випадку, якби я міг співставити лише частину FACE: B00C, я міг би порівняти все, що вони використовують, якщо припустити, що вони не переходять на FACE: B00D

Оскільки я не можу ввести маску підстановки в IOS для та IPv6 ACL, я не думаю, що ти можеш це зробити, але мені цікаво, якщо хтось має цікаве рішення. Я думаю, було б корисно це знати, тому що в якийсь момент мені може знадобитися фільтрувати підблок лише через DDoS або агресивний трафік, не бажаючи блокувати цілий / 32 для якогось великого провайдера.

Крім того, це може забезпечити перенаправлення або пріоритетність трафіку на основі політики. Якщо я усвідомлюю, що реклама розміщена в іншому блоці, я можу по-різному оцінити їх, наприклад, приємна функція для низької пропускної здатності, перевантажених супутникових каналів.

EDIT: Щоб уточнити трохи. Можуть бути випадки, коли мені потрібно заблокувати або дозволити певні діапазони у великому блоці, як / 32. Вони можуть бути злегка суміжними, а замість сотні записів, підказки можуть відповідати великим частинам. Це також може бути використане для інженерії трафіку так, як я міг би прокласти всі блоки 10.x.10.0, де, якщо х непарне, воно переходить один маршрут проти навіть іншого маршруту.

Інший приклад - DDoS, де IP-джерело джерела IPv6 підробляє шаблоном, що записує назву групи хакерів. Це станеться хоча б раз, було б непогано мати можливість фільтрувати на ньому.

Компактний ACL чистіший, але не завжди більш керований. Ці речі можуть бути хорошими чи поганими ідеями / практикою, тут не сперечатися, просто намагаючись зрозуміти, які інструменти у мене є, і які інструменти я можу створити.


Допоможіть, будь ласка, зрозуміти, як би ви використовували ACL, якби їх отримали. Це для безпеки? Якщо так, чи є брандмауери, на які ви могли б це завантажити? Що таке брандмауер?
Майк Пеннінгтон

Не турбуйся. Якщо ви шукаєте Facebook, просто співставте їхні префікси і будьте з ним. Нещодавно я побачив той, який не ...:face:b00c:0:1підходив до вашого підходу.
Майкл Хемптон

Якщо ви хочете заблокувати діапазони, використовуйте підмережі. Якщо це більше, ніж / 48 використання / 47, / 46 ... і т. Д. Я не впевнений, що ви могли б досягти, якщо ви відповідатимете "wildcard" у цьому сценарії. Ви можете, можливо, уточнити трохи більше?
Себастьян Візінгер

Чи допомогла вам якась відповідь? якщо так, то слід прийняти відповідь, щоб питання не з’являлося вічно, шукаючи відповідь. Крім того, ви можете надати та прийняти власну відповідь.
Рон Моупін

Відповіді:


6

На жаль, Cisco позбувся масок підказки в IPv6. Це здебільшого гарна річ, ВСЕ В цьому конкретному випадку. Для того, щоб ваша ідея спрацювала, ви повинні розраховувати на те, що Facebook буде "розумним" та послідовним, чого, мабуть, можна більше сподіватися.

Але якщо ви хочете обробити трафік Facebook інакше, ніж інший трафік, ви можете просто відфільтрувати їх за призначеним адресним блоком. Той, який ви згадуєте у своєму запитанні, насправді призначений Facebook Ірландія: 2a03: 2880 :: / 32.

Але шукати інших в регістрах так само просто.


Забавно, тому що це блок у Facebook, до якого я підключаюся зі своєї лабораторії у Флориді. GeoIP - це ще одна ціна. Так, добре, прийняти / фільтрувати / заблокувати ціле / 32. Концептуальна причина, про яку я питаю, є більш практичною, коли ISP призначає ряд блоків, які зловживають. Я хочу заблокувати, але я не можу блокувати цілі / 32 лише конкретні / 48 або 64 /. Використання FACE: B00C - простий показовий приклад, але в рівній мірі це може бути 2001: 2880: 0100-0FF0: FACE: B00C Я хочу заблокувати. Це не буде загальним фільтром, але я хотів би завжди приймати : C0FF: EE:
John Spade - 'DaSpadeR'

1
@ JohnSpade-'DaSpadeR 'A /32досить великий, що ви можете розбити його на дуже багато підмереж і прокласти їх по всьому світу. Це стільки підмереж, скільки IPv4 IP-адреси! Запис Whois майже не має значення на той момент. А геолокація ще не дуже хороша для IPv6-адрес.
Майкл Хемптон

5

Я грав з FPM, і я думаю, що це може зробити те, що ви шукаєте:

load protocol system:fpm/phdf/ether.phdf
load protocol flash:/fpm/phdf/ipv6.phdf
!
class-map type stack match-all cm-ipv6
 match field ETHER type eq 0x86DD next IPV6
class-map type access-control match-all cm-ipv6-facebook
 match start IPV6 dest-addr offset 9 size 4 eq 0xFACEB00C
!
policy-map type access-control pm-ipv6-facebook
 class cm-ipv6-facebook
   drop
policy-map type access-control pm-filter
 class cm-ipv6
   log
  service-policy pm-ipv6-facebook
!
interface FastEthernet0/1
 service-policy type access-control input pm-filter

Мені довелося прокатати власний файл ipv6.phdf для цього:

<?xml version="1.0" encoding="UTF-8"?>
<phdf>
 <version>1</version>
 <protocol name="ipv6" description="Definition-for-the-IPv6-protocol">
 <field name="version" description="IP version">
  <offset type="fixed-offset" units="bits">0</offset>
  <length type="fixed" units="bits">4</length>
 </field>
 <field name="tc" description="IPv6-Traffic-Class">
  <offset type="fixed-offset" units="bits">4</offset>
  <length type="fixed" units="bits">8</length>
 </field>
  <field name="fl" description="IPv6-Flow-Label">
  <offset type="fixed-offset" units="bits">12</offset>
  <length type="fixed" units="bits">20</length>
 </field>
 <field name="length" description="IPv6-Payload-Length">
  <offset type="fixed-offset" units="bits">32</offset>
  <length type="fixed" units="bits">16</length>
 </field>
 <field name="nh" description="IPv6-Next-Header">
  <offset type="fixed-offset" units="bits">48</offset>
  <length type="fixed" units="bits">8</length>
 </field>
 <field name="hl" description="IPv6-Hop-Limit">
  <offset type="fixed-offset" units="bits">56</offset>
  <length type="fixed" units="bits">8</length>
 </field>
 <field name="source-addr" description="IPv6-Source-Address">
  <offset type="fixed-offset" units="bits">64</offset>
  <length type="fixed" units="bits">128</length>
 </field>
 <field name="dest-addr" description="IPv6-Destination-Address">
  <offset type="fixed-offset" units="bits">192</offset>
  <length type="fixed" units="bits">128</length>
 </field>
 <field name="payload-start" description="IPv6-Payload-Start">
  <offset type="fixed-offset" units="bits">320</offset>
  <length type="fixed" units="bits">0</length>
 </field>
 <headerlength type="fixed" value="320"></headerlength>
 <constraint field="version" value="6" operator="eq"></constraint>
</protocol>
</phdf>

На жаль, коли я роблю "показати поліс-тип типу інтерфейсу контролю доступу fa0 / 1", я не отримую відповідностей по ефірному типу:

FastEthernet0/1 

  Service-policy access-control input: pm-filter

    Class-map: cm-ipv6 (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: field ETHER type eq 0x86DD next IPV6
      log

      Service-policy access-control : pm-ipv6-facebook

        Class-map: cm-ipv6-facebook (match-all)
          0 packets, 0 bytes
          5 minute offered rate 0 bps
          Match: start IPV6 dest-addr offset 9 size 4 eq 0xFACEB00C
      drop

        Class-map: class-default (match-any)
          0 packets, 0 bytes
          5 minute offered rate 0 bps, drop rate 0 bps
          Match: any 

    Class-map: class-default (match-any)
      10000 packets, 1863618 bytes
      5 minute offered rate 14000 bps, drop rate 0 bps
      Match: any 

Я підозрюю, що мої пінги на адресу IPv6 у Facebook не працюють належним чином через CEF ( FAQ FPM каже, що це потрібно) або мені щось не вистачає. Все-таки я викладаю це для всіх, хто хоче його жувати.


Привіт, Джоді, +1 для творчої відповіді. Cisco IOS обробляє пінги до і від маршрутизатора на рівні процесу (тобто не перемикається CEF) ... можливо, варто додати ще один хост за маршрутизатором, щоб довести рішення.
Майк Пеннінгтон

Гей, Майку. Гарна думка. Я робив усі свої тести на пінг з мого Mac на Facebook, тому, хоча це все ще може бути проблемою перемикання процесів, це не тому, що він виник або закінчився на маршрутизаторі. Ще намагаюся розібратися в цьому. Цікавим є те, що я навіть не отримую відповідності щодо ефірного типу батьківської політики 0x86dd.
Джоді Лемуан

Якщо вони не започатковуються / не завершуються на маршрутизаторі, їх слід перемикати, якщо увімкнено ipv6 cef.
Майк Пеннінгтон

IPv6 CEF, безумовно, включений, тому я думаю, що ми там добре. Дійсно цікаво, чому немає ефірної відповідності.
Джоді Лемуїн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.