zoukankan      html  css  js  c++  java
  • 利用单臂路由实现VLAN间路由

    理概述

    以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响,并增强网络的安全性和可管理性。其缺点是同时也严格地隔离了不同VLAN之间的任何二层流量,使分属于不同VLAN的用户不能直接互相通信。在现实中,经常会出现某些用户需要跨越VLAN实现通信的情况,单臂路由技术就是解决VLAN间通信的一种方法。

    单臂路由的原理是通过一台路由器,使VLAN间互通数据通过路由器进行三层转发。如果在路由器上为每个VLAN分配一个单独的路由器物理接口,随着VLAN数量的增加,必然需要更多的接口,而路由器能提供的接口数量比较有限,所以在路由器的一个物理接口上通过配置子接口(即逻辑接口)的方式来实现以一当多的功能,将是一种非常好的方式。路由器同一物理接口的不同子接口作为不同VLAN的默认网关,当不同VLAN间的用户主机需要通信时,只需将数据包发送给网关,网关处理后再发送至目的主机所在VLAN,从而实现VLAN间通信。由于从拓扑结构图上看,在交换机与路由器之间,数据仅通过一条物理链路传输,故被形象地称之为“单臂路由”。

    实验目的

    ●理解单臂路由的应用场景

    ●掌握路由器子接口的配置方法

    ●掌握子接口封装VLAN的配置方法

    ●理解单臂路由的工作原理

    实验内容

    本实验模拟公司网络场景。路由器R1是公司的出口网关,员工PC通过接入层交换机(如S2和S83)接入公司网络,接入层交换机又通过汇聚交换机S1与路由器RI相连。公司内部网络通过划分不同的VLAN隔离了不同部门之间的二层通信,保证各部门间的信息安全,但是由于业务需要,经理、市场部和人事部之间需要能实现跨VLAN通信,网络管理员决定借助路由器的三层功能,通过配置单臂路由来实现。

    实验拓扑

     实验步骤

    1.创建VLAN并配置Access, Trunk接口

    公司为保障各部门的信息安全,需保证隔离不同部门间的二层通信,规划各部门的终端属于不同的VLAN,并为PC配置相应IP地址。

    在S2.上创建VLAN 10和VLAN 20,把连接PC-1的E 0/0/1和连接PC-2的E 0/0/2接口配置为Access类型接口,并分别划分到相应的VLAN中。

    在S3上创建VLAN 30,把连接PC-3的E 0/0/1接口配置为Access类型接口,并划分到VLAN 30。

    [fengnuoS3]vlan 30

    [fengnuoS3-vlan30]description Manager

    [fengnuoS3-vlan30]int e0/0/1

    [fengnuoS3-Ethernet0/0/1]port link-type access

    [fengnuoS3-Ethernet0/0/1]port default vlan 30

    交换机之间或交换机和路由器之间相连的接口需要传递多个VLAN信息,需要配置成Trunk接口。

    将S2和S3的GE0/0/2接口配置成Trunk类型接口,并允许所有VLAN通过。

     

    在SI上创建VLAN 10、VLAN 20和VLAN 30,并配置交换机和路由器相连的接口为Trunk,允许所有VLAN通过。

    2.配置路由器子接口和IP地址
       由于路由器R1只有一个实际的物理接口与交换机S1相连,可以在路由器上配置不同的逻辑子接口来作为不同VLAN的网关,从而达到节省路由器接口的目的。

    在R1上创建子接口GE 0/0/1.1,配置IP地址192.168.1.254/24,作为人事部网关地址。

    在R1上创建子接口GE 0/0/1.2,配置IP地址192.168.2.254/24,作为市场部网关地址。

    在R1上创建子接口GE 0/0/1.3,配置IP地址192.168.3.254/24,作为经理的网关地址。

    在PC-1、PC-2和PC-3上配置IP和相应的网关地址后,在PC-1上测试与PC-2和PC-3间的连通性。

     

    可以观察到,通信仍然无法建立。

    3.配置路由器子接口封装VLAN

        虽然目前已经创建了不同的子接口,并配置了相关IP地址,但是仍然无法通信。这是由于处于不同VLAN下,不同网段的PC间要实现互相通信,数据包必须通过路由器进行中转。由S1发送到R1的数据都加上了VLAN标签,而路由器作为三层设备,默认无法处理带了VLAN标签的数据包。因此需要在路由器上的子接口下配置对应VLAN的封装,使路由器能够识别和处理VLAN标签,包括剥离和封装VLAN标签。

        在R1的子接口GE 0/0/1.1上封装VLAN 10,在子接口GE 0/0/1.2上封装VLAN 20,在子接口GE 0/0/1.3上封装VLAN30,并开启子接口的ARP广播功能。

    使用 dot1q termination vid 命令配置子接口对一层tag报文的终结功能。即配置该命令后,路由器子接口在接收带有VLAN tag的报文时,将剥掉tag进行三层转发,在发送报文时,会将与该子接口对应VLAN的VLAN tag添加到报文中。

    使用arp broadcast enable命令开启子接口的ARP广播功能。如果不配置该命令,将会导致该子接口无法主动发送ARP广播报文,以及向外转发IP报文。

    同理配置R1的子接口GE 0/0/1.2和GE 0/0/1.3。

    配置完成后,在路由器R1上查看接口状态。

    可以观察到,3个子接口的物理状态和协议状态都正常。

    查看路由器R1的路由表。

    可以观察到,路由表中已经有了192.168.1.0/24、192.168.2.0/24、192.168.3.0/24的路由条目,并且都是路由器R1的直连路由,类似于路由器上的直连物理接口。
        在PC-1上分别测试与网关地址192.168.1.254和PC-2间的连通性。

    可以观察到,通信正常。在PC-1上Tracert PC-2。

    可以观察到PC-1先把ping包发送给自身的网关192.168.1.254,然后再由网关发送到PC-2.
        现以PC-1 ping PC-2为例,分析单臂路由的整个运作过程。
        两台PC由于处于不同的网络中,这时PC-1会将数据包发往自己的网关,即路由器R1的子接口GE 0/0/1.1的地址192.168.1.254。
        数据包到达路由器R1后,由于路由器的子接口GE 0/0/1.1已经配置了VLAN封装,当接收到PC-1发送的VLAN 10的数据帧时,发现数据帧的VLAN ID跟自身GE0/0/1.1接口配置的VLAN ID一样,便会剥离掉数据帧的VLAN标签后通过三层路由转发。
        通过查找路由表后,发现数据包中的目的地址192.168.2.1 所属的192.168.2.0/24网段的路由条目,已经是路由器RI.上的直连路由,且出接口为GE 0/0/1.2,便将该数据包发送至GE 0/0/1.2接口。
        当GE 0/0/1.2接口接收到-一个没有带VLAN标签的数据帧时,便会加上自身接口所配置的VLAN ID 20后再进行转发,然后通过交换机将数据帧顺利转发给PC-2。
    思考
        VLAN间的通信可以利用单臂路由的方式实现,那么利用单臂路由实现数据转发会存在哪些潜在问题?该如何解决?

  • 相关阅读:
    Python时间戳
    vux x-input 清除按钮不起作用
    MySQL连接查询流程源码
    Linux下用的脚本
    TableCache设置过小造成MyISAM频繁损坏 与 把table_cache适当调小mysql能更快地工作
    批量导入数据到InnoDB表速度优化
    DBA面对新mysql环境
    (进阶篇)PHP+Mysql+jQuery找回密码
    (进阶篇)PHP实现用户注册后邮箱验证,激活帐号
    (实用篇)php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
  • 原文地址:https://www.cnblogs.com/Biebernuo/p/11912830.html
Copyright © 2011-2022 走看看