Cisco IOS에서 IPv6 와일드 카드 일치가 가능합니까?


9

Facebook은 IPv6 주소 체계가 매우 영리하지만 ACL에 대해 생각하게되었고 일치하는 Cisco IOS IPv6 ACL을 작성할 수 있습니까? IPv4에서는 'do n't care'로 'x'를 맞추기 위해 10.xxx.10.xxx와 같은 중간 옥텟을 일치시킬 수 있습니다. 나는 이것이 적어도 IOS 15.1이 아닌 IPv6에서 가능하다고 생각하지 않습니다.

필자의 예에서는 Facebook이 영리했기 때문에 가능하면 FACE : B00C에서 쉽게 일치시킬 수 있습니다. 할당 된 블록을 찾지 않고도 해당 범위에서 일치시킬 수 있기 때문에 이것이 단순화됩니다.

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

명백하고 일반적인 방법은 2A03 : 2880 : F000 :: / 48에 일치시키는 것이지만 불행히도 FB의 범위가 더 큰지 한눈에 알 수 없습니다 (아마도). 따라서이 특별한 경우에 FACE : B00C 부분 만 일치시킬 수 있으면 FACE : B00D로 이동하지 않는다고 가정하고 사용중인 모든 항목을 일치시킬 수 있습니다.

IOS 및 IPv6 ACL에 와일드 카드 마스크를 입력 할 수 없기 때문에이 작업을 수행 할 수 없다고 생각하지만 흥미로운 해결 방법이 있는지 궁금합니다. 어느 시점에서 DDoS 또는 공격적인 트래픽으로 인해 하위 블록을 필터링 해야하는 동안 일부 큰 공급자의 전체 / 32를 차단하지 않으려는 경우이를 아는 것이 유용 할 것이라고 생각합니다.

또한 정책 기반 트래픽 리디렉션 또는 우선 순위를 지정할 수 있습니다. 광고가 다른 블록에 있다는 것을 알면 저 대역폭의 혼잡 위성 링크에 대한 좋은 기능과 같이 다르게 QoS를 다르게 지정할 수 있습니다.

편집 : 조금 명확하게합니다. / 32와 같은 큰 블록 내에서 특정 범위를 차단하거나 허용해야하는 경우가있을 수 있습니다. 이들은 약간 연속적 일 수 있으며 수백 개의 항목이 아니라 와일드 카드가 큰 부분과 일치 할 수 있습니다. 이것은 x가 홀수 인 경우 하나의 경로와 다른 경로로가는 10.x.10.0 블록을 모두 라우팅하는 방식으로 교통 공학에 사용될 수 있습니다.

또 다른 예는 IPv6 소스 IP가 해커의 그룹 이름을 나타내는 패턴으로 위장되는 DDoS입니다. 이것은 적어도 한 번 발생하며 필터링 할 수있는 것이 좋습니다.

컴팩트 한 ACL은 더 깔끔하지만 항상 더 관리하기 쉬운 것은 아닙니다. 이러한 것들이 좋은 아이디어 나 나쁜 아이디어 / 연습 일 수도 있습니다. 여기에는 내가 가지고있는 도구와 내가 만들어야하는 도구에 대해 다루려고 노력하는 것이 아닙니다.


ACL을받은 경우 사용 방법을 이해하도록 도와주십시오. 이것이 보안을위한 것입니까? 그렇다면이 방화벽을 오프로드 할 수있는 방화벽이 있습니까? 어떤 종류의 방화벽?
Mike Pennington

귀찮게하지 마십시오. Facebook을 찾고 있다면 접두사를 일치시키고 완료하십시오. 나는 최근에 ...:face:b00c:0:1당신의 접근 방식이 선택되지 않는 것을 보았습니다 .
Michael Hampton

범위를 차단하려면 서브넷을 사용하십시오. / 48 이상인 경우 / 47, / 46 ... 등을 사용하는 경우이 시나리오에서 "와일드 카드"일치로 수행 할 작업을 잘 모르겠습니다. 좀 더 자세히 설명해 주시겠습니까?
Sebastian Wiesinger

어떤 대답이 도움이 되었습니까? 그렇다면 질문에 대한 답변이 계속 나오지 않도록 답변을 수락해야합니다. 또는 자신의 답변을 제공하고 수락 할 수 있습니다.
Ron Maupin

답변:


6

불행히도 시스코는 IPv6에서 와일드 카드 마스크를 사용하지 않았습니다. 이 특별한 경우를 제외하고는 대부분 좋은 것입니다. 그러나 아이디어가 효과를 발휘하려면 페이스 북이 "영리하고"일관된 것으로 기대해야합니다.

그러나 Facebook 트래픽을 다른 트래픽과 다르게 처리하려면 할당 된 주소 블록을 필터링하면됩니다. 귀하의 질문에 언급 한 것은 실제로 Facebook Ireland : 2a03 : 2880 :: / 32에 할당됩니다.

그러나 레지스트리에서 다른 사람을 찾는 것은 쉽습니다.


재미 있습니다. Facebook의 블록이기 때문에 플로리다에있는 실험실에서 연결하고 있습니다. GeoIP는 또 다른 란입니다. 예, 전체 / 32를 수락 / 필터링 / 차단하십시오. 내가 묻는 개념적 이유는 ISP가 모욕적 인 일련의 블록을 할당하는 더 실용적입니다. 차단하고 싶지만 전체 / 32 만 특정 / 48 또는 / 64 만 차단할 수는 없습니다. FACE : B00C를 사용하는 것은 쉬운 예시이지만 2001 : 2880 : 0100-0FF0 : FACE : B00C 차단하고 싶습니다. 일반적인 필터는 아니지만 항상 다음과 같이 받아들이고 싶습니다 . : C0FF : EE :
John Spade- 'DaSpadeR'Jan

1
@ JohnSpade-'DaSpadeR 'A /32는 매우 많은 서브넷으로 분류하여 전 세계로 라우팅 할 수있을만큼 큽니다. 그것은 IPv4 IP 주소 만큼 많은 서브넷입니다 ! 그 시점에서 후이즈 기록은 거의 관련이 없습니다. 지리적 위치는 아직 IPv6 주소에 적합하지 않습니다.
Michael Hampton

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>

불행히도, "show policy-map type 액세스 제어 인터페이스 fa0 / 1"을 수행 할 때 ethertype과 일치하는 항목이 없습니다.

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 

Facebook의 IPv6 주소에 대한 핑 (ping)이 CEF를 통해 제대로 실행되고 있지 않거나 ( FPM FAQ 에 필요하다고 표시되어 있음) 뭔가 빠진 것 같습니다. 아직도, 나는 그것을 씹고 싶은 사람을 위해 이것을 내놓고 있습니다.


창의적인 답변을 얻으려면 안녕 Jody, +1. Cisco IOS는 프로세스 수준 (즉, CEF로 전환되지 않음)에서 라우터와의 핑을 처리합니다. 아마도 라우터 뒤에 다른 호스트를 추가하여 솔루션을 입증 할 가치가 있습니다.
Mike Pennington

마이크 좋은 지적. Mac에서 Facebook으로 모든 핑 테스트를 수행 했으므로 여전히 프로세스 전환 문제 일 수 있지만 라우터에서 시작되거나 종료 되었기 때문이 아닙니다. 아직도 이것을 알아 내려고 노력 중입니다. 흥미로운 점은 부모 정책의 0x86dd ethertype과 일치하지 않는다는 것입니다.
Jody Lemoine

라우터에서 시작 / 종료하지 않으면 ipv6 cef가 활성화되어있는 한 cef로 전환해야합니다.
Mike Pennington

IPv6 CEF는 확실히 켜져 있기 때문에 우리가 잘한다고 생각합니다. 왜 ethertype과 일치하지 않는지 궁금합니다.
Jody Lemoine
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.