VLAN acl ,端口隔離 ,private vlan
VLAN acl
針對於VLAN做ACL,訪問控制列表,
Access-map
技術背景
VLAN有着分割廣播域的作用,通常情況下一個VLAN 內部的主機可以無條件的進行互訪,(因為在一個廣播域里)
但是會有這個的需求,如何能夠使一個VLAN 下的主機不可以通信呢?
技術實現
1、ip access-list負責抓取數據
2、vlan access-map負責執行動作(這一點是不是和route-map很像?別急,后面會更新關於route-map的內容)
//那么既然是ACL負責抓取,肯定就是以permit為動作嘍

需求如下,
使PC2和PC3之間不能通信,但是都可以和VPC(server)通信
三台設備同屬於一個VLAN ,
Switch(config)#access-list 100 permit ip host 192.168.1.1 host 192.168.1.2 //擴展ACL抓取
Switch(config)#vlan access-map wfy 10 //定義VLAN ACL
Switch(config-access-map)#ma ip add 100 //匹配ip access 100
Switch(config-access-map)#action drop //執行動作為丟棄
Switch(config-access-map)#exit
Switch(config)#vlan access-map wfy 20 //為了放行其它還需要再建立一個
Switch(config-access-map)#action forward //不匹配任何(也就是所有的意思),動作為轉發
Switch(config)#vlan filter aa vlan-list 10 //使用vlan filter 命令來掛接,針對於vlan 10
此處可以針對於所有VLAN,即vlan all
最終效果如下,PC2(192.168.1.1)可以和vpc通信,但是無法和pc3通信

當然這是純二層的環境,那如果是加上三層會是什么樣的效果呢?

單臂路由的環境中,連接着下面的三個VLAN ,正常情況下,三個VLAN 是可以正常通信的,
但是我現在要求 ,VLAN10不可以和VLAN20進行通信,但是VLAN10可以和VLAN30通信
如何來實現呢?
唉~也許你會想到,直接在路由器上配置ACL即可,這個方法當然是可以的,
但是我就不那樣做,
我偏偏非要將策略部署在二層設備上
請問:為什么要將這些策略部署在底層(接入層設備)?
答:如果是按照園區網的架構來看,接入----匯聚----核心,能夠部署在接入的,就不部署在匯聚,能部署在匯聚的就不部署在核心,
總之,就是一句話,當數據到達匯聚/核心層時,你只要負責給我高速轉發就行了,如果可以的話,我將不對你進行任何的策略部署,一個字,快!!!
如何實現呢?
其實原理已經搞明白了,就很簡單了,
Switch(config)#access-list 100 permit ip host 10.0.0.1 host 20.0.0.1 //擴展ACL
當然也可以不抓HOST,直接抓取網段也OK嘛~
Switch(config)#vlan access-map wfy 10
Switch(config-access-map)#ma ip add 100
Switch(config-access-map)#action drop
Switch(config-access-map)#exit
Switch(config)#vlan access-map wfy 20
Switch(config-access-map)#action forward
Switch(config-access-map)#exit
Switch(config)#vlan filter wfy vlan 10 //直接針對於VLAN10 進行調用。
驗
證

可以看到,10.0.0.1 去ping 20.0.0.1 時是不通的
10.0.0.1 去ping 30.0.0.1 時是通的
整體來看,VLAN acl的部署,還算是簡單,(只要理解route-map)那這個真的是SO easy
但看到這里你有沒有發現一個問題,就是VLAN的ACL原理簡單,但是配置起來相對麻煩
有沒有一種更簡單的方法,實現單台交換機上不同接口不通信嗎?
端口隔離(你值得擁有)
技術背景
在不划分VLAN的情況下,如何實現兩台相同網段的終端無法通信,相互隔離呢?
使用端口隔離技術
技術要點
1 被隔離端口之間無法通信
2 被隔離端口與非隔離端口之間可以通信

如圖所示,將E0/0,E0/1配置了端口隔離,那么這兩個口下聯的終端將無法通信,
但是他們都可以和SERVER通信,
從而保證了一部份人員無法互通,但可以和服務器互通的要求
配置如下,(其實很簡單,就一條命令)
Switch(config)#inter range e0/0 - 1
Switch(config-if-range)#switchport protected
結束了
是不是挺簡單的
就端口隔離這個特性而言,問題又來了,假設如圖中所示
有這么幾個人成立了一個部門,他們之間肯定是要進行互通的,並且和外界(其它部門)不通,使用端口隔離能否實現呢?
貌似是不可以的,此時這個特性顯得蒼白無力,
那怎么辦呢?
Private vlan,簡稱PVLAN,你可以考慮上手試試
技術特性
Pvlan中包含兩種VLAN
主VLAN
輔助VLAN ,而輔助VLAN中又包含了兩種VLAN ,
Community 團體VLAN
Isolated 隔離VLAN
其中,一個主VLAN下可以有多個community ,但只可以有一個isolated
所有的輔助VLAN都可以和主VLAN進行通信,
但是
相同的community之間可以互通
Isolated中所有的主機都想互獨立,僅可以和主VLAN互通
同時一個接口只能屬於一種VLAN
接口角色
混雜接口 --允許所有的VLAN通過,不管是主的,還是輔助的,主要用於連接三層設備/server
trunk接口 -- 用於交換機之間相連
配置思路
0 這一步至關重要,將vtp 改為transport模式(透明)
1 創建主VLAN 以及輔助VLAN
2 主VLAN關聯輔助VLAN
3 定義輔助VLAN的類型
4 創建混雜接口
5 混雜接口的主輔VLAN關聯
6 划分接口到輔助VLAN
如圖所示

Pc5,6,8同屬於community vlan 20
Pc7,9,10同屬於isolated vlan30
R1做為GW,R2做為server,同屬於主vlan
如何操作呢?
本實例主要講解pvlan的配置,其它部分不再贅述
R1 192.168.1.1
R2 192.168.1.2
下面的PC按照自己的編號設置IP地址,並指向GW 為192.168.1.1
SW1配置
Switch(config)#vtp mode transparent //vtp模式為透明
Switch(config)#vlan 10
Switch(config-vlan)#private-vlan primary //vlan10為主vlan,primary
Switch(config-vlan)#private-vlan association 20,30 //主VLAN下的輔助VLAN都是誰?寫一下
Switch(config)#vlan 20
Switch(config-vlan)#private-vlan community //定義VLAN20的輔助VLAN類型
Switch(config-vlan)#vlan 30
Switch(config-vlan)#private-vlan isolated //定義VLAN30的輔助VLAN類型
Switch(config)#inter range e0/0 - 1
Switch(config-if-range)#switchport mode private-vlan promiscuous //定義混雜接口
Switch(config-if-range)#switchport private-vlan mapping 10 20,30 //定義主和輔助的關系,通過主去找到輔助VLAN
Switch(config-if-range)#inter range e0/3 , e1/0
Switch(config-if-range)#switchport mode private-vlan host //設置接口為主機接口
Switch(config-if-range)#switchport private-vlan host-association 10 20 //主VLAN是10,把這個接口划分到主機接口的VLAN20 中
Switch(config-if-range)#inter e1/1
Switch(config-if)#sw m pri hos
Switch(config-if)#sw pri hos 10 30

第一台交換機就算是配置完成了
我們先來驗證一下
1) pc5-pc6屬於同一個community ,肯定是可以互通的

Pc5-pc6不管你是屬於哪種VLAN ,肯定是能和混雜接口下的主機進行互通的

那么他和isolated中的PC7可以互通嗎?

根本就無法聯系到
左側交換機完成,
下面來進行右側交換機配置,
需要注意有兩點
1 兩台交換機相連接口要使用trunk
2 只需要配置一個混雜接口即可,也就意味着第二台交換機不需要再配置混雜接口了
Switch(config-if)#inter e0/2
Switch(config-if)#sw tr en dot
Switch(config-if)#sw m t
SW2(config)#inter e0/0
SW2(config-if)#sw tr en dot
SW2(config-if)#sw m t
SW2(config)#vtp mode transparent
SW2(config)#vlan 10
SW2(config-vlan)#private-vlan primary
SW2(config-vlan)#private-vlan association 20,30
SW2(config-vlan)#vlan 20
SW2(config-vlan)#private-vlan community
SW2(config-vlan)#vlan 30
SW2(config-vlan)#private-vlan isolated
SW2(config-vlan)#inter e0/1
SW2(config-if)#switchport mode pri hos
SW2(config-if)#sw pri hos 10 20
SW2(config-if)#inter range e0/2 - 3
SW2(config-if-range)#sw mode pri host
SW2(config-if-range)#sw pri hos 10 30
這就是pvlan,也不難,就是相對而言明詞較多而已
總結一下,怎么說呢,這三種辦法在使用過程中要靈活,不能認死理兒,
遇到一個問題,至少你有三種辦法可以解決。這才是學技術,別死背,要理解,
要融會貫通.....
------------------------------------
CCIE成長之路 --- 梅利
