梅利333

从无到有,自有至精

导航

VLAN acl ,端口隔离 ,private vlan

VLAN acl ,端口隔离 ,private vlan

 

VLAN acl

针对于VLANACL,访问控制列表,

Access-map

 

技术背景

VLAN有着分割广播域的作用,通常情况下一个VLAN 内部的主机可以无条件的进行互访,(因为在一个广播域里)

但是会有这个的需求,如何能够使一个VLAN 下的主机不可以通信呢?

 

技术实现

1ip access-list负责抓取数据

2vlan access-map负责执行动作(这一点是不是和route-map很像?别急,后面会更新关于route-map的内容)

//那么既然是ACL负责抓取,肯定就是以permit为动作喽

 

 

 

 

需求如下,

使PC2PC3之间不能通信,但是都可以和VPCserver)通信

三台设备同属于一个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

 

最终效果如下,PC2192.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

 

 

但看到这里你有没有发现一个问题,就是VLANACL原理简单,但是配置起来相对麻烦

有没有一种更简单的方法,实现单台交换机上不同接口不通信吗?

端口隔离(你值得拥有)

技术背景

在不划分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做为GWR2做为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为主vlanprimary

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    //VLAN10,把这个接口划分到主机接口的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成长之路 --- 梅利

 

posted on 2020-07-12 22:32  梅利333  阅读(1455)  评论(0编辑  收藏  举报