揭祕Cisco NBAR封殺BT和電驢下載

揭開Cisco NBAR 的神祕面紗: 服務器

NBAR (Network-Based Application Recognition) 的意思是網絡應用識別。 NBAR是一種動態能在四層到七層發現協議的技術。它不一樣於ACL,僅僅依靠端口號進行對應用服務的判斷,更加精準的是能夠經過數據包自己的描述進行識別判斷,該數據屬於哪種服務,能夠對使用動態分配TCP/UDP端口號(如P2P下載軟件)的應用程序和HTTP流量等進行分類。 網絡

實際上NBAR的應用原理在於對網絡應用層面的監控,能夠進行代碼匹配來識別數據報的具體應用,例如FTPWEBBT、電驢等等。即使所應用的服務端口變化,NBAR也能夠識別出來具體的服務。NBAR首先能夠應用於網絡監控,判斷究竟在你的網內哪一種服務佔據着最主要的流量,以便於配合QOS來作流量的修整。 ide

既然這麼好的東東,咱們怎麼測試的她的能力了? 請看下文。 測試

採用NBAR就能封殺BT和電驢的流量,爲何?關鍵時路由器靠什麼東西,她又能發現當前傳輸的流量中就包含BT的流量,這得依靠一個強大特徵庫文件:PDLM(數據包描述語言模塊),這個特徵庫文件,就比如是殺毒軟件的病毒庫,殺毒軟件能識別某些文件屬於惡意程序,病毒了,關鍵是她的病毒庫-------- 網站

PDLM它是NBAR針對於網絡高層應用的主要識別原理,從Cisco IOS 12.0以後引入了NBAR的概念,因爲IOS的版本高低不一樣,較高的IOS已經內嵌支持bittorrenteDonkey兩種協議,若是您的設備目前沒有能力發現BT和電驢的流量,主要是不支持這兩個協議。能夠在 CISCO的網站,使用CCO帳號登錄,找到各類網絡應用的PDLM,每一個PDLM都是針對於一種服務的,它記載了關於判別一種應用服務的關鍵匹配代碼。 spa

 

做者已經下載完了,須要上傳PDLM模塊到路由器的flash或者nvram orm

 

拓撲圖: 對象

clip_image002

 

第一步:上傳以前的準備工做 blog

 

norvel-network#dir /all 接口

Directory of flash:/

 

    1  -rw-    15824768          <no date>  3600_12_3(22)(fc2).bin

 

33030140 bytes total (17205308 bytes free)

norvel-network#show flash all

Partition   Size    Used      Free      Bank-Size  State          Copy Mode

  1        32255K  15453K    16802K     8192K      Read/Write     Direct

 

System flash directory:

File  Length   Name/status

        addr      fcksum  ccksum

  1   15824768  3600_12_3(22)(fc2).bin 

        0x40      0x89AC  0x89AC

[15824832 bytes used, 17205308 available, 33030140 total]

32768K bytes of processor board System flash (Read/Write)

 

   Chip    Bank    Code      Size      Name

    1      1       01AD      2048KB    AMD   29F016

    2      1       01AD      2048KB    AMD   29F016

    3      1       01AD      2048KB    AMD   29F016

    4      1       01AD      2048KB    AMD   29F016

    1      2       01AD      2048KB    AMD   29F016

    2      2       01AD      2048KB    AMD   29F016

    3      2       01AD      2048KB    AMD   29F016

    4      2       01AD      2048KB    AMD   29F016

    1      3       01AD      2048KB    AMD   29F016

    2      3       01AD      2048KB    AMD   29F016

    3      3       01AD      2048KB    AMD   29F016

    4      3       01AD      2048KB    AMD   29F016

    1      4       01AD      2048KB    AMD   29F016

    2      4       01AD      2048KB    AMD   29F016

    3      4       01AD      2048KB    AMD   29F016

    4      4       01AD      2048KB    AMD   29F016

norvel-network#copy tftp flash  //採用TFTP協議,複製TFTP件到路由器flash

Address or name of remote host []? 192.168.10.10  //TFTP服務器的IP地址

Source filename []? bittorrent.pdlm //上傳支持BT協議的PDLM,該文件要求要事先放置在TFTP的根目錄下

Destination filename [bittorrent.pdlm]?  //上傳後的目的文件名

Accessing tftp://192.168.10.10/bittorrent.pdlm...

Erase flash: before copying? [confirm]n  //必定要選擇NO,不格式化Flash,不然PDLM是上傳到Flash中了,Flash中的其餘的文件都被格式化了

Loading bittorrent.pdlm from 192.168.10.10 (via Ethernet0/3): !

[OK - 3100 bytes]

Verifying checksum...  OK (0x7C83)

3100 bytes copied in 0.332 secs (9337 bytes/sec)

norvel-network#show flash //查看flash確認已經上傳成功

System flash directory:

File  Length   Name/status

  1   15824768  3600_12_3(22)(fc2).bin 

  2   3100     bittorrent.pdlm 

[15827996 bytes used, 17202144 available, 33030140 total]

32768K bytes of processor board System flash (Read/Write)

 

按照上面的相同方法,若是您的設備flash空間已經滿了,沒法存放PDLM,你能夠按同理

PDLM上傳到NVRAM中,PDLM文件自己都比較小,不用擔憂佔用太多的空間

norvel-network#dir nvram:

Directory of nvram:/

 

   25  -rw-        3612                   <no date>  startup-config

   26  ----           5                    <no date>  private-config

    1  -rw-           0                    <no date>  ifIndex-table

    2  ----          12                    <no date>  persistent-data

 

30712 bytes total (24995 bytes free)

 

norvel-network#copy tftp nvram:

Address or name of remote host []? 192.168.10.10

Source filename []? eDonkey.pdlm   

Destination filename [eDonkey.pdlm]?

Accessing tftp://192.168.10.10/eDonkey.pdlm...

Loading eDonkey.pdlm from 192.168.10.10 (via Ethernet0/3): !

[OK - 3492 bytes]

 

3492 bytes copied in 9.784 secs (357 bytes/sec)

 

也能夠上傳到NVRAM

norvel-network#dir nvram:

Directory of nvram:/

 

   25  -rw-        3612                   <no date>  startup-config

   26  ----           5                    <no date>  private-config

    1  -rw-           0                    <no date>  ifIndex-table

    2  ----          12                    <no date>  persistent-data

    3  -rw-        3492                  <no date>  eDonkey.pdlm

 

30712 bytes total (20899 bytes free)

 

上傳完畢切記須要保存,保存到閃存中,防止無心間重啓丟棄PDLM

norvel-network#write memory

 

 

第二步:經過IP NBAR命令加載PDLM模塊到內存中,並使用Class-map來對流量進行分類標記,使用Policy-map對分類的流量給定丟棄的策略,並最終應用在鏈接Internet的接口下

  

//採用ip nbar 命令從flash中加載BT和電驢的模塊,若是IOS已經支持這兩種協議,則無需上傳PDLM,也無需使用此命令

norvel-network(config)#ip nbar pdlm flash:bittorrent.pdlm

norvel-network(config)#ip nbar pdlm flash:eDonkey.pdlm

//使用Class-map對流量進行分類,Class-map的名字爲BT

match-any」匹配上其中一種流量,就執行分類

match-all 匹配全部流量,才分類

norvel-network(config)#class-map match-any BT

//Match 對象不少,能夠ACL或者協議等

norvel-network(config-cmap)#match protocol bittorrent

norvel-network(config-cmap)#match protocol edonkey

//流量已經分類,使用Policy-map的目的是針對這些分類的流量給定一個什麼樣的策略。

這裏先定義policy-map 的名字爲Deny-BT 名稱能夠是任意字符

norvel-network(config)#policy-map Deny-BT

//Policy-map中關聯Class-map 的名字

norvel-network(config-pmap)#class BT

//policy-map給這些知足分類流量的策略是丟棄,你能夠作作限速,可讓下載BT,可是速度限制20Kbps

norvel-network(config-pmap-c)#drop

//要使用NBAR必須啓用 Cisco 快速轉發

norvel-network(config)#ip cef

//在接口下要調用Policy-map 的策略

norvel-network(config)#int e0/2

//開啓接口下NBAR發現協議的功能

norvel-network(config-if)#ip nbar protocol-discovery

//把策略應用E0/2的出方向

norvel-network(config-if)#service-policy output  Deny-BT

 

 

第三步:在路由器上檢查配置

        Show class-map

        Show Policy-map

        Show policy-map interface e0/2

norvel-network#sh class-map

 Class Map match-any BT (id 2)

   Match protocol bittorrent

   Match protocol edonkey

 

 Class Map match-any class-default (id 0)

   Match any

 

norvel-network#show policy-map

  Policy Map Deny-BT

    Class BT

      drop

 

norvel-network#show policy-map int e0/2

 Ethernet0/2

 

  Service-policy input: Deny-BT

 

    Class-map: BT (match-any)

      0 packets, 0 bytes

      5 minute offered rate 0 bps, drop rate 0 bps

      Match: protocol bittorrent

        0 packets, 0 bytes

        5 minute rate 0 bps

      Match: protocol edonkey

        0 packets, 0 bytes

        5 minute rate 0 bps

      drop

 

    Class-map: class-default (match-any)

      8133 packets, 7734590 bytes

      5 minute offered rate 182000 bps, drop rate 0 bps

      Match: any

 

  Service-policy output: Deny-BT

 

    Class-map: BT (match-any)

      0 packets, 0 bytes

      5 minute offered rate 0 bps, drop rate 0 bps

      Match: protocol bittorrent

        0 packets, 0 bytes

        5 minute rate 0 bps

      Match: protocol edonkey

        0 packets, 0 bytes

        5 minute rate 0 bps

      drop

 

    Class-map: class-default (match-any)

      13273 packets, 871872 bytes

      5 minute offered rate 31000 bps, drop rate 0 bps

      Match: any

 

第四步: 安裝BT和電驢測試 NBAR的效果,軟件安裝就很少說了,下一步就能夠,這些軟件的安裝包中,都捆版了不少廣告軟件,安裝時請謹慎選擇。

 

第五步:找到下載好的BT種子,記好了,必定要是BT種子文件,這是產生的下載流量才能夠被PDLM所識別,若是是HTTP下載,沒法觸發Bittorrent的流量

clip_image001

 

clip_image003

 

 

第六步:驗證效果,若是不在E0/2下,調用Policy-map策略,開啓BT下載,能夠看到該接口發現了不少BT的流量,BT流量很是瘋狂

         

norvel-network#sh ip nbar protocol-discovery int e0/2

 

 Ethernet0/2

                            Input                    Output                 

   Protocol                 Packet Count             Packet Count           

                            Byte Count               Byte Count             

                            5 minute bit rate (bps)  5 minute bit rate (bps)

   ------------------------ ------------------------ ------------------------

   http                     33963                    24384                  

                            33559299                 6041847                

                            292000                   67000                  

   bittorrent               4326                     7868                   

                            2204807                  3092548                

                            46000                    5500

 

 

 

 第七步接口下調用Policy-map 策略檢查接口Drop包的數量5分鐘內丟棄了10000

 

norvel-network#sh policy-map int e0/2

 Ethernet0/2

  Service-policy output: Deny-BT

 

    Class-map: BT (match-all)

      1290 packets, 150864 bytes

      5 minute offered rate 10000 bps, drop rate 10000 bps

      Match: protocol bittorrent

      drop

 

    Class-map: class-default (match-any)

      27006 packets, 5211833 bytes

      5 minute offered rate 97000 bps, drop rate 0 bps

      Match: any

 

 

第八步:爲了更好的看一下 丟棄的效果,咱們暫時把接口下的策略取消掉,來觀察BT的下載速度是否在猛漲

 

norvel-network(config)#policy-map Deny-BT

norvel-network(config-pmap)#class BT

norvel-network(config-pmap-c)#no drop

 

 

關閉丟棄的策略,BT的下載速度開始上漲了,

clip_image005

你能夠多觀察幾分鐘,只要你的帶寬夠大,種子資源夠活躍,這「變態下載」速度會愈來愈快。

第九步:啓用NBAR策略,封殺BT的流量,咱們觀察BT下載速度,在一分一秒的下降,幾分鐘以後的0KB/S,並且一直這樣持續。

說明NBAR封殺BT的流量,現象成功了

 

norvel-network(config)#policy-map Deny-BT

norvel-network(config-pmap)#class BT

norvel-network(config-pmap-c)#drop

 

 

 

clip_image007

 

並且下載速度哪裏一直保持的是0KB/S

clip_image009

 

下載的流量通過路由器是全被丟棄了。

norvel-network#sh policy-map int e0/2

 Ethernet0/2

  Service-policy input: Deny-BT

    Class-map: BT (match-all)

      8448 packets, 3672204 bytes

      5 minute offered rate 26000 bps, drop rate 27000 bps

      Match: protocol bittorrent

drop

相關文章
相關標籤/搜索