Sono possibili corrispondenze di caratteri jolly IPv6 in Cisco IOS?


9

Facebook è molto intelligente con il loro schema di indirizzi IPv6, ma mi ha fatto pensare agli ACL ed è possibile scrivere un ACL IPv6 Cisco IOS che corrisponda? In IPv4 potresti abbinare un ottetto medio come 10.xxx.10.xxx per colpire qualsiasi 'x' con 'non importa'. Non penso che ciò sia possibile in IPv6, almeno non da IOS 15.1.

Nel caso del mio esempio, dato che Facebook è stato intelligente, è facile abbinarlo su FACE: B00C, se possibile. In un certo senso questo semplifica perché senza cercare quale blocco è stato assegnato, posso solo abbinare su quell'intervallo.

2A03: 2880: F000: [0000-FFFF]: FRONTE: B00C :: / 96

Il modo ovvio e normale è quello di abbinare 2A03: 2880: F000 :: / 48 ma sfortunatamente, non sono sicuro a colpo d'occhio se FB ha un intervallo più ampio (probabilmente lo fa). Quindi, in questo caso particolare, se potessi corrispondere solo alla parte FACE: B00C, potrei abbinare tutto ciò che stanno usando, supponendo che non passino a FACE: B00D

Dal momento che non riesco a inserire una maschera jolly in IOS per e IPv6 ACL, non penso che tu possa farlo, ma sono curioso di sapere se qualcuno ha una soluzione interessante. Penso che sarebbe utile saperlo perché ad un certo punto potrei aver bisogno di filtrare un sottoblocco solo a causa di DDoS o traffico aggressivo senza voler bloccare un intero / 32 per un grande fornitore.

Inoltre, ciò potrebbe consentire il reindirizzamento o la definizione delle priorità del traffico basato su criteri. Se mi rendo conto che le pubblicità si trovano in un blocco diverso, potrei QoS in modo diverso, ad esempio, una bella funzionalità per collegamenti satellitari congestionati a bassa larghezza di banda.

EDIT: per chiarire un po '. Ci possono essere casi in cui ho bisogno di bloccare o consentire determinati intervalli in un blocco di grandi dimensioni come un / 32. Questi possono essere leggermente contigui e piuttosto che centinaia di voci, un carattere jolly potrebbe corrispondere a grandi parti di esse. Questo potrebbe anche essere usato per l'ingegneria del traffico nel modo in cui potrei instradare tutti i blocchi 10.x.10.0 dove se x è dispari, va da un percorso a un altro.

Un altro esempio è un DDoS in cui l'IP di origine IPv6 viene falsificato con un modello che indica il nome del gruppo degli hacker. Questo accadrà almeno una volta, sarebbe bello poterlo filtrare.

Un ACL compatto è più pulito ma non sempre più gestibile. Queste cose possono essere idee / pratiche buone o cattive, non qui per sostenerlo, solo cercando di capire quali strumenti ho e quali strumenti potrei avere da creare.


Aiutateci a capire come usereste gli ACL se li aveste. Questo è per la sicurezza? In tal caso, ci sono firewall su cui è possibile scaricare questo? Che tipo di firewall?
Mike Pennington,

Non preoccuparti. Se stai cercando Facebook, basta abbinare i loro prefissi e finirlo. Di recente ne ho visto uno che ...:face:b00c:0:1non è stato ripreso dal tuo approccio.
Michael Hampton,

Se si desidera bloccare intervalli, utilizzare le sottoreti. Se è più di un / 48 use / 47, / 46 ... ecc. Non sono sicuro di cosa potresti ottenere con la corrispondenza "jolly" in questo scenario. Puoi forse chiarire un po 'di più?
Sebastian Wiesinger,

Qualche risposta ti è stata d'aiuto? in tal caso, dovresti accettare la risposta in modo che la domanda non continui a comparire per sempre, cercando una risposta. In alternativa, potresti fornire e accettare la tua risposta.
Ron Maupin

Risposte:


6

Sfortunatamente, Cisco ha eliminato le maschere jolly in IPv6. Questa è soprattutto una buona cosa, TRANNE in questo caso particolare. Affinché la tua idea funzioni, devi fare affidamento sul fatto che Facebook sia "intelligente" e coerente, il che è probabilmente più di quanto si possa sperare.

Ma se si desidera elaborare il traffico di Facebook in modo diverso rispetto ad altro traffico, è possibile semplicemente filtrare il blocco di indirizzi assegnato. Quello che hai menzionato nella tua domanda è effettivamente assegnato a Facebook Irlanda: 2a03: 2880 :: / 32.

Ma è altrettanto facile cercare gli altri nei registri.


Divertente, perché è il blocco di Facebook a cui mi sto collegando dal mio laboratorio in Florida. GeoIP è un altro rant. Sì, bene, accetta / filtra / blocca tutto / 32. Il motivo concettuale che sto chiedendo è più pratico, in cui un ISP assegna una serie di blocchi che sono abusivi. Voglio bloccare, ma non riesco a bloccare l'intero / 32 solo specifici / 48s o / 64s. L'uso di FACE: B00C è un semplice esempio illustrativo, ma potrebbe ugualmente essere 2001: 2880: 0100-0FF0: FACE: B00C Voglio bloccare. Non sarà un filtro comune, ma mi piacerebbe sempre accettare : C0FF: EE:
John Spade - 'DaSpadeR'

1
@ JohnSpade-'DaSpadeR 'A /32è abbastanza grande da poter essere suddiviso in moltissime sottoreti e instradarle in tutto il mondo. Sono tante subnet quanti indirizzi IPv4! Il record whois è quasi irrilevante a quel punto. E la geolocalizzazione non è ancora ottima per gli indirizzi IPv6.
Michael Hampton,

5

Stavo giocando un po 'con FPM e penso che potrebbe fare quello che stai cercando:

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

Ho dovuto girare il mio file ipv6.phdf per questo:

<?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>

Sfortunatamente, quando eseguo una "mostra interfaccia controllo accessi di tipo policy-map fa0 / 1", non ottengo corrispondenze sull'etere:

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 

Ho il sospetto che i miei ping all'indirizzo IPv6 di Facebook non stiano eseguendo correttamente CEF (la FAQ di FPM dice che è necessario) o mi manca qualcosa. Tuttavia, lo sto pubblicando per chiunque voglia masticarlo.


Ciao Jody, +1 per una risposta creativa. Cisco IOS gestisce i ping da e verso il router a livello di processo (cioè non con commutazione CEF) ... forse vale la pena aggiungere un altro host dietro il router per provare la soluzione.
Mike Pennington,

Ehi Mike. Buon punto. Stavo facendo tutti i miei test ping dal mio Mac a Facebook, quindi mentre potrebbe essere ancora un problema di cambio di processo, non è perché è nato o terminato sul router. Sto ancora cercando di capirlo. La cosa interessante è che non sto nemmeno ottenendo una corrispondenza sull'etere 0x86dd della politica principale.
Jody Lemoine,

Se non hanno origine / terminano sul router, devono essere commutati su cef, purché il cef ipv6 sia abilitato.
Mike Pennington,

IPv6 CEF è decisamente attivo, quindi penso che siamo bravi lì. Mi chiedo davvero perché non ci sia corrispondenza sull'etere.
Jody Lemoine,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.