CISCO動態VLAN配置

 一.基於VMPS的動態配置實例

  網絡中實現分爲靜態和動態。靜態又被稱爲是基於端口的。顧名思義,就是明確指定各端口屬於哪個的設定方法,交換機中某個端口屬於哪個是相對固定的。動態則是根據每個端口所連的計算機,隨時改變端口所屬。

  靜態在這裏我們就不講了,由於網絡中的計算機需要變更所連端口時,就必須同時更改所連端口所屬的設定-----這是不適合那些需要頻繁改變拓撲結構的客戶需求的。

  而動態則不同,由於它可以根據每個端口所屬的計算機,隨時改變端口所屬的,所以當網絡中計算機變更所連端口或交換機時,不用重新配置。而它基於MAC地址或用戶的認證方式,也可以杜絕非法接入網絡的問題。動態實現技術主要有兩種:

  一是基於用戶的動態,

  二是基於MAC地址的動態。

  基於用戶的動態,則是根據交換機各端口所連的計算機上當前登錄的用戶,來決定該端口屬於哪個。這裏的用戶識別信息,一般是計算機操作系統登錄的用戶,比如可以是域中使用的用戶名。也就是說用戶只要通過自己在域中的用戶名,不管在那臺電腦上都能夠接入到自己所屬的當中。

  基於MAC地址的動態,就是通過查詢並記錄端口所連計算機上的MAC地址來決定端口所屬。當分配給動態的交換機端口被激活後,交換機就緩存初始幀的源MAC地址。隨後,交換機便向一個稱爲VMPS(管理策略服務器)的外部服務器發出請求,VMPS中包含一個文本文件,文件中存有進行映射的MAC地址。交換機

  對這個文件進行下載,然後對文件中的MAC地址進行校驗。

  如果在文件列表中找到MAC地址,交換機就將端口分配給列表中該MAC所對應的。所有列表中沒有的話,交換機就會將該端口分配給默認(假設已經定義了默認)。如果在列表中沒有MAC地址,而且也沒有默認,端口將不會被激活。

  本實例將述的就是基於MAC地址的動態。

  網絡環境:

  核心是一臺CISCO3560G三層交換機,配置爲VTP Server模式。CISCO 3560G中定義了兩個,通過Trunk端口(Gi0/1,GI0/2端口)與兩臺Cisco 2960交換機相連。

  VMPS服務器是基於Scientific Linux平臺下的OpenVMPS構建的,連接至Cisco3560G的GI0/24端口。兩臺CISCO2960配置爲客戶端模式,通過GI0/1端口接受來自核心交換機的信息,並將其餘端口鏈路類型設置爲Access,端口所屬設爲Dynamic(動態)。合法的用戶計算機接入任意端口,都可以加入到相應的。

  VMPS服務器配置

  VMPS服務器需CISCO5000以上高端交換機才支持,因此這裏選用的是第三方的開源軟件-OpenVMPS,基於Scientific Linux 5.3架設的VMPS服務器。

  下載安裝

  OpenVMPS最新版本爲1.4.01.可通過“http://sourceforge.net/projects/vmps/”下載OpenVMPS,將下載的VMPSd-1.4.01.tar.gz文件上傳至Linux服務器,以root用戶運行下面的命令進行安裝。

  # tar -v z x f vmpsd-1.01.tar.gz

  #cd vmpsd

  # ./configrure

  #make

  #make install

  配置VMPS數據庫

  OpenVMPS安裝好之後,會自動生成VMPS數據庫配置文件/usr/local/etc/.db,這個文件時是個文本文件,下面是配置內容:

  vmps domain cisco ////////指定VTP域名爲cisco

  Vmps mode open //////////指定VMPS運行模式爲OPEN。Vmps能夠以OPEN或者secure的模式工作,OPEN時,VMPS會對未授權的MAC地址返回拒絕,對沒有列在VMPS數據庫中的MAC地址返回一個fallback(後備)。在secure模式,VMPS對於未授權的或者沒有列在數據庫的MAC地址都會關閉相應的端口。

  Vmps fallback ----none-----////////指定一個後備,none時表示沒有。

  Vmps no-domain-req deny /指定VMPS客戶端交換機如果不屬於VTP域,將不提供任何映射

  Vmps-mac-address //////與Address之間的關聯。對指定的MAC地址使用關鍵字--NONE--關鍵字表示,阻止該主機加入到任何。在。Db中還有很多參數,感興趣的可以自己研究。

  Address 0001.2201.88cd.-name accout

  Address 0001.2201.88ce.-name accout

  Address 0001.2201.75ca.-name sale

  運行VMPS

  以root用戶執行下面命令,可以啓動VMPS:

  #/usr/local/bin/vmpsd

  OpenVMPS默認端口時UDP1589,用netstat -an | grep 1589可以查看vmpsd進程是否運行。

  如果需要在開啓Liunx服務器是就加載vmpsd.可以在/etc/rc.local中加入/usr/local/bin/vmpsd/

  其他VMPSD的配置信息如下:

  Vpmsd [-d] [-a address] [-f file] [-l level] [-p port]

  -d: 在前臺運行VMPSD,可以很清楚的看到對MAC地址與的關聯

  -a address 設置綁定到VMPSD的IP地址

  -f file 設置VMPSD數據庫配置文件,默認爲/usr/local/etc/.db

  -l level 設置日誌級別

  -p port 設置VMPSD的監聽端口,默認爲1589

  CISCO3560G配置

  #vtp domain cisco

  #vtp mode server

  #interface rang gi0/1 -2

  #switchport trunk encapsulation dot1q

  #switchport mode trunk

  定義,設置 IP地址。

  # 133

  # name sale

  # 168

  #name accout

  #interface 133

  #ip address 172.16.1.1 255.255.255.0

  #no shu

  #interface 168

  #ip address 172.16.2.1 255.255.255.0

  #no shu

  設置gi0/24爲訪問口,連接VMPSD服務器

  #interface gi0/24

  #switchport mode access

  #no shu

  #ip routing

  #write

  Cisco2960配置

  #VTP domain cisco

  #vtp mode client

  #interface gi0/1

  #switchport mode trunk

  #no shu

  #exit

  設置fa0/1-24爲訪問口,所屬爲動態獲取

  #interface rang fa0/1 -24

  #switchport mode access

  #switchport access dynam

  #no shu

  設置主VMPS,另外可以設置3個備用的VMPS服務器。

  CISCO2960

  #vmps server 172.16.1.100 primary

  #end

  #write

  #

  開啓VQPC(查詢協議客戶端)調試,將會看到MAC地址與關聯的過程。

  #debug vqpc all

  VMPS介紹:

  VMPS介紹的是 Membership Policy Server的簡稱.顧名思義,它是一種基於端口MAC地址動態選擇的集中化管理服務器.當某個端口的主機移動到另一個端口後,VMPS動態的爲其指定.不過基於CISCO IOS的CATALYST 4500系列交換不支持VMPS的功能。

  它只能做爲查詢協議( Query Protocol)的客戶機,通過VQP的客戶機,可以和VMPS通信.如果要讓CATALYST 4500系列交換機支持VMPS的功能,那你應當使用CatOS(或選擇CATALYST 6500系列交換機hoho).

  VMPS介紹使用UDP端口監聽來自VQP客戶機的請求,因此,VPMS客戶機也沒必要知道VMPS到底是位於本地網絡還是遠程網絡.當VMPS服務器收到來自VMPS客戶機的請求後,它將在本地數據庫裏查找MAC地址到的映射條目信息.

  VMPS介紹將對請求進行響應.如果被指定的侷限於一組端口,VMPS將驗證對發出請求的端口進行驗證:

  ◆如果請求端口的被許可,VMPS向客戶發送做爲響應.

  ◆如果請求端口的不被許可,並且VMPS不是處於安全模式(secure mode),VMPS將發送"access-denied"(訪問被拒絕)的信息做爲響應.

  ◆如果請求端口的不被許可,但VMPS處於安全模式,VMPS將發送"port-shutdown"(端口關閉)的信息做爲響應.

  但如果數據庫裏的信息和端口的當前信息不匹配,並且該端口連接的有活動主機,VMPS將發送"access-denied","fallback name"(後退名),"port-shutdown"或"new name"(新名)信息.至於發送何種信息取決於VMPS模式的設置.

  如果交換機從VMPS那裏收到"access-denied"的信息,交換機將堵塞來自該MAC地址,前往或從該端口返回的流量.交換機將繼續監視去往該端口的數據包,並且當交換機識別到一個新的地址後,它會向VMPS發出查詢信息.如果交換機從VMPS那裏收到"port-shutdown"信息,交換機將禁用該端口,該端口必須通過命令行或SNMP重新啓用.

  VMPS介紹有三種模式(但User Registration Tool,即URT,只支持open模式):

  ◆open模式.

  ◆secure模式.

  ◆multiple模式.

  ◆open模式:

  當端口未指定:

  ◆如果該端口的MAC地址與之相關聯的信息被許可,VMPS將向客戶返回名.

  ◆如果該端口的MAC地址與之相關聯的信息不被許可,VMPS將向客戶返回"access-denied"信息.

  當端口已經指定:

  ◆如果數據庫裏的與MAC地址相關聯的信息和端口的當前關聯信息不匹配,並配置的有fallback 名,那麼VMPS將返回fallback 名給客戶機.

  ◆如果數據庫裏的與MAC地址相關聯的信息和端口的當前關聯信息不匹配,並沒有配置fallback 名,那麼VMPS將返回"access-denied"信息給客戶機.

  secure模式當端口未指定:

  ◆如果該端口的MAC地址與之相關聯的信息被許可,VMPS將向客戶返回名.

  ◆如果該端口的MAC地址與之相關聯的信息不被許可,端口將被關閉.

  當端口已經指定:

  如果數據庫裏的與MAC地址相關聯的信息和端口的當前關聯信息不匹配,即使有配置fallback 名,端口仍將被關閉.

  multiple模式:

  當多個MAC地址(主機)處於同一的時候,多個MAC地址可以對應一個動態端口.如果動態端口的鏈路down掉,端口將被還原成未指定狀態,並且在指定之前,VMPS將對這些地址重新檢查;如果這些主機位於不同的,VMPS將向客戶返回最新的MAC地址到映射的信息.當然,你也可以在VMPS上指定fallback 名.如果該端口未指定任何,VMPS將把端口和發起請求的MAC地址進行比較:

  ◆如果主機的MAC地址在數據庫中不存在,並且VMPS上指定的有fallback 名,那麼將向客戶機返回fallback 名信息.

  ◆如果主機的MAC地址在數據庫中不存在,但VMPS上未指定fallback 名,那麼將向客戶機返回"access-denied"信息.

  如果該端口已經指定任何,VMPS將把端口和發起請求的MAC地址進行比較:不管VMPS上有沒有配置fallback 名,只要VMPS處於secure模式,那麼它就將反饋"port-shutdown"信息給客戶機.有的時候我們也可能看到非法的VMPS客戶機請求,如下兩種:

  ◆當VMPS上未配置fallback 名,並且數據庫裏沒有相應的MAC地址到的映射信息.

  ◆當端口已經被指定了,並且VMPS不處於multiple模式,但是VMPS收到了第二個不同MAC地址的VMPS客戶機請求信息.

  ===============================================

  配置VMPS數據庫

  VMPS的用途就是用來創建動態的。而要創建動態,首先就是要配置VMPS數據庫,然後依次配置VMPS服務器和客戶機。

  爲了使用VMPS,你首先要建立VMPS的數據庫(也就是一個文本文件)並把它保存在一個TFTP服務器上。VMPS的格式是基於行的。每一行都是一個開始。VMPS數據庫文件包含如下五個部分:全局設置(Global settings)、MAC地址到的映射(MAC address-to- name mappings)、端口組(Port groups)、組( groups)和端口策略( port policies)。具體解釋如下:

  n 第一部分:全局設置(Global settings)

  第一部分是列出VMPS域名、安全模式、Fallback 名稱,以及VMPS和VTP域名不匹配的策略。VMPS數據庫文件是以“VMPS”開頭的,以防止VMPS服務器錯誤地讀取交換機上其他的配置文件。

  在定義VMPS域時,應當正確輸入在交換機上配置的VTP域名。

  在定義安全模式時,VMPS可以工作於安全模式或者開放模式。如果你設置爲開放模式,VMPS就會對未知的MAC地址返回一個拒絕訪問的響應消息,而對於一個不在VMPS數據中的MAC地址,則返回一個Fallback 名的消息進行響應。在安全模式中,VMPS會對未知,或者不在VMPS數據庫中的MAC地址會關閉所訪問的端口。

  Fallback 的定義是個可選項。它是爲在連接主機的MAC地址不在數據庫中,且VMPS工作於開放模式時準備的。

  下面是本部分的一個示例:VMPS域名爲GRFW,VMPS模式爲開放模式,Fallback 爲默認設置,VMPS策略中在VTP域名與VMPS域名不匹配時發送訪問拒絕(access-denied)消息進行響應。

  vmps domain GRFW

  vmps mode open

  vmps Fallback default

  vmps no-domain-req deny

  n 第二部分:MAC地址到的映射(MAC address-to- name mappings)

  本部分列出MAC地址,以及每個MAC地址對應的名。可以使用“NONE”關鍵字作爲名,以拒絕該MAC地址的主機與網絡連接。在一個VMPS數據庫中,你可以鍵入最多21,051條MAC地址。

  下面是本部分的一個示例。MAC地址是在MAC地址表中一出的,注意其中的“fedc.ba98.7654”MAC地址對應的名爲“NONE”,也就是拒絕該MAC地址主機訪問網絡。

  vmps-mac-addrs

  address 0012.2233.4455 -name hardware

  address 0000.6509.a080 -name hardware

  address aabb.ccdd.eeff -name Green

  address 1223.5678.9abc -name ExecStaff

  address fedc.ba98.7654 -name --NONE-

  address fedc.ba23.1245 -name Purple

  n 第三部分:端口組(Port groups)

  本部分列出了在你的網絡中,你想要組合的不同交換機上的端口組。一相端口組就是一個端口的邏輯組合。你可以應用策略到一個個具體的端口上,或者端口組上。這在後面第五部分,定義策略時要用到。

  要爲每個端口組定義一個名稱,然後列出所有包括在這個端口組中的端口,每條以“device”開頭。端口是由交換機IP地址和模塊/端口號定義的。在端口號中不允許使用範圍。但可以使用“all-ports”關鍵字來指定特定交換機上的所有端口。

  下面是本部分的一個示例,包括兩個端口組portgroup1和portgroup2。端口組portgroup1包括兩個端口,一個是在IP地址爲198.92.30.32的VMPS客戶機上的3/2端口,另一個是在IP地址爲172.20.26.141的VMPS客戶機上的2/8端口。

  端口組portgroup2包括三個端口:其中兩個是在IP地址爲198.4.254.222的VMPS客戶機上的1/2端口和1/3端口,另一個是在IP地址爲198.4.254.223的VMPS客戶機上的所有端口。

  vmps-port-group portgroup1

  device 198.92.30.32 port 3/2

  device 172.20.26.141 port 2/8

  vmps-port-group portgroup2

  device 198.4.254.222 port 1/2

  device 198.4.254.222 port 1/3

  device 198.4.254.223 all-ports

  第四部分:組( groups)

  本部分列出的是你想關聯在一起的組。一個組也是一個的邏輯組合。策略可以應用到一個個具體的上,也可以應用互這些組上。這在後面第五部分,定義端口策略時也要用到。

  首先定義組名,然後列出在組中的每個端口。你可以在一個VMPS服務器中鍵入最多256個。

  下面是本部分的一個示例。示例中的組“Engineering”包含名爲“hardware”和“software”的兩個。

  vmps--group Engineering

  -name hardware

  -name software

  n 第五部分:端口策略( port policies)

  本部分列出了在本VMPS數據庫文件中所定義的端口策略。它使用前面介紹的端口組和組來進一步限制對網絡的訪問,可以使用MAC地址和端口組,或者組來配置限制訪問。每條策略都是以“vmps-port-policies”開頭。

  以下是本部分的一個示例。在這個示例中包含了三個端口策略:在第一個端口策略中,在 hardware或者 software(都是名爲Engineering的組成員)中的成員在IP地址爲198.92.30.32的VMPS客戶機3/2端口和IP地址爲172.20.23.141的VMPS客戶機2/8端口上是限制訪問的。

  第二個端口策略是指定在 Green中的設備僅可以連接到IP地址爲198.92.30.32的VMPS客戶機的4/8端口上。

  第三個端口策略是指定在 Purple中的設備僅可以連接到IP地址爲198.4.254.22的VMPS客戶機的1/2端口和在portgroup2端口組中的端口。

  vmps-port-policies -group Engineering

  port-group portgroup1

  vmps-port-policies -name Green

  device 198.92.30.32 port 4/8

  vmps-port-policies -name Purple

  device 198.4.254.22 port 1/2

  port-group portgroup2

  以下是思科網站上的一個VMPS數據庫文件示例,編輯一下就可以成爲自己VMPS數據庫文件。

  !vmps domain

  ! The VMPS domain must be defined.

  !vmps mode { open | secure }

  ! The default mode is open.

  !vmps Fallback

  !vmps no-domain-req { allow | deny }

  !

  ! The default value is allow.

  vmps domain WBU

  vmps mode open

  vmps Fallback default

  vmps no-domain-req deny

  !

  !

  !MAC Addresses

  !

  vmps-mac-addrs

  !

  ! address -name

  !

  address 0012.2233.4455 -name hardware

  address 0000.6509.a080 -name hardware

  address aabb.ccdd.eeff -name Green

  address 1223.5678.9abc -name ExecStaff

  address fedc.ba98.7654 -name --NONE--

  address fedc.ba23.1245 -name Purple

  !

  !Port Groups

  !

  !vmps-port-group

  ! device { port | all-ports }

  !

  vmps-port-group WiringCloset1

  device 198.92.30.32 port Fa1/3

  device 172.20.26.141 port Fa1/4

  vmps-port-group "Executive Row"

  device 198.4.254.222 port es5%Fa0/1

  device 198.4.254.222 port es5%Fa0/2

  device 198.4.254.223 all-ports

  !

  ! groups

  !

  !vmps--group

  ! -name

  !

  vmps--group Engineering

  -name hardware

  -name software

  !

  ! port Policies

  !

  !vmps-port-policies {-name | -group }

  ! { port-group | device port }

  !

  vmps-port-policies -group Engineering

  port-group WiringCloset1

  vmps-port-policies -name Green

  device 198.92.30.32 port Fa0/9

  vmps-port-policies -name Purple

  device 198.4.254.22 port Fa0/10

  port-group "Executive Row"

  VMPS數據庫文件創建好後,通過本書第一章介紹TFTP或者RCP方式上傳該文件到一個TFTP或者RCP服務器上,然後再下載到擔當VMPS服務器的交換機的閃存中即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章