当前位置:文档之家› IP通信实验报告——VLAN间路由

IP通信实验报告——VLAN间路由

IP通信实验报告——VLAN间路由
IP通信实验报告——VLAN间路由

IP通信基础实验报告

VLAN间路由实验

一、实验目的

掌握三层交换机静态路由的配置方法

二、实验内容(仿真程序‘静态路由switcher.pkt’)

三层交换机静态路由的配置

三、实验设备

三层交换机 3台

PC机 2台

交叉网线 2条

直通网线 2条

四、实验拓扑图

五、配置步骤

====底层配置

RS1

Switch>enable

Switch#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Switch(config)#hostname RS1

RS1(config)#vlan 10

RS1(config-vlan)#exit

RS1(config)#vlan 12

RS1(config-vlan)#exit

RS1(config)#interface fastEthernet 0/1

RS1(config-if)#no shutdown

RS1(config-if)#switchport mode access

RS1(config-if)#switchport access vlan 10

RS1(config-if)#exit

RS1(config)#interface vlan 10

%LINK-5-CHANGED: Interface Vlan10, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up

RS1(config-if)#ip address 192.168.10.254 255.255.255.0 RS1(config-if)#exit

RS1(config)#interface fastEthernet 0/10

RS1(config-if)#no shutdown

RS1(config-if)#switchport mode access

RS1(config-if)#switchport access vlan 12

RS1(config-if)#exit

RS1(config)#interface vlan 12

%LINK-5-CHANGED: Interface Vlan12, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan12, changed state to up

RS1(config-if)#no shutdown

RS1(config-if)#ip address 12.12.12.1 255.255.255.0

RS1(config-if)#exit

RS1(config)#

RS2=================================================== ===========

Switch>enable

Switch#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Switch(config)#hostname RS2

RS2(config)#vlan 12

RS2(config-vlan)#exit

RS2(config)#vlan 23

RS2(config-vlan)#exit

RS2(config)#interface fastEthernet 0/10

RS2(config-if)#no shutdown

RS2(config-if)#switchport mode access

RS2(config-if)#switchport access vlan 12

RS2(config-if)#exit

RS2(config)#interface vlan12

%LINK-5-CHANGED: Interface Vlan12, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan12, changed state to up

RS2(config-if)#no shutdown

RS2(config-if)#ip address 12.12.12.2 255.255.255.0

RS2(config-if)#exit

RS2(config)#interface fastEthernet 0/20

RS2(config-if)#no shutdown

RS2(config-if)#switchport mode access

RS2(config-if)#switchport access vlan 23

RS2(config-if)#exit

RS2(config)#interface vlan23

RS2(config-if)#

%LINK-5-CHANGED: Interface Vlan23, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan23, changed state to up

RS2(config-if)#no shutdown

RS2(config-if)#ip address 23.23.23.2 255.255.255.0

RS2(config-if)#exit

RS2(config)#

RS3=================================================== ==============

Switch>enable

Switch#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Switch(config)#hostname RS3

RS3(config)#vlan 23

RS3(config-vlan)#exit

RS3(config)#vlan 20

RS3(config-vlan)#exit

RS3(config)#interface fastEthernet 0/20

RS3(config-if)#no shutdown

RS3(config-if)#switchport mode access

RS3(config-if)#switchport access vlan 23

RS3(config-if)#exit

RS3(config)#interface vlan 23

%LINK-5-CHANGED: Interface Vlan23, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan23, changed state to up

RS3(config-if)#no shutdown

RS3(config-if)#ip address 23.23.23.1 255.255.255.0

RS3(config-if)#exit

RS3(config)#interface fastEthernet 0/1

RS3(config-if)#no shutdown

RS3(config-if)#switchport mode access

RS3(config-if)#switchport access vlan 20

RS3(config-if)#exit

RS3(config)#interface vlan20

%LINK-5-CHANGED: Interface Vlan20, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up

RS3(config-if)#no shutdown

RS3(config-if)#ip address 192.168.20.254 255.255.255.0 RS3(config-if)#exit

RS3(config)#

====静态路由配置

RS1

RS1(config)#ip route 192.168.20.0 255.255.255.0 12.12.12.2

RS1(config)#ip route 23.23.23.0 255.255.255.0 12.12.12.2

RS2

RS2(config)#ip route 192.168.20.0 255.255.255.0 23.23.23.1

RS2(config)#ip route 192.168.10.0 255.255.255.0 12.12.12.1

RS3

RS3(config)#ip route 192.168.10.0 255.255.255.0 23.23.23.2

RS3(config)#ip route 12.12.12.0 255.255.255.0 23.23.23.2 六、验证方法及验证结果

sw2#show ip route %可以查看路由表

验证结果如下:

七、实验结论

路由器能够通过配置,学习到网络的路由信息,创建路由表。同样,三层交换机也具有这样的功能。三层交换机可以通过创建VLAN的方式,对其端口进行IP配置,然后通过路由配置,得到网络的路由表,实现VLAN间路由。

实验三通过配置路由器或三层交换机实现VLAN间的通信

实验三实现VLAN间的通信 一、通过路由器实现vlan间通信(单臂路由) 实验拓扑图 【准备知识】 在路由器与交换机的端口上配置子接口,每个子接口的IP地址是每个VLAN的网关地址(也可以理解为下一跳地址),并在子接口上封装802.1Q协议。也可以封装ISL协议(cisco专用协议,不兼容802.1Q)。 【实验步骤】 1、交换机配置如下: Switch>en Switch#conf t Switch(config)#vlan 2 Switch(config-vlan)#vlan 3 Switch(config-vlan)#exit Switch(config)#int fa0/2 Switch(config-if)#sw ac vlan 2 //switchport access vlan 2的简写,端口fa0/2划到vlan 2中Switch(config-if)#int fa0/3 Switch(config-if)#sw ac vlan 3 Switch(config-if)#exit Switch(config)#int fa0/1 Switch(config-if)#switchport mode trunk //设置f0/1端口为trunk模式 2、路由器配置如下:

Router>en Router#conf t Router(config)#int fa0/0 Router(config-if)#no shutdown Router(config-if)#exit Router(config)#int f0/0.1 Router(config-subif)#encapsulation dot1q 2 //封装协议802.1Q,2为vlan 2 Router(config-subif)#ip address 192.168.1.1 255.255.255.0 Router(config-subif)#exit Router(config)#int f0/0.2 Router(config-subif)#encapsulation dot1q 3 //封装协议802.1Q,3为vlan 3 Router(config-subif)#ip address 192.168.2.1 255.255.255.0 Router(config-subif)#exit Router(config)# 【检测实验结果】 VLAN 2中的pc1能ping 通VLAN 3中的pc2。 二、通过路由器实现跨交换机vlan间通信 实验拓扑图 【实验步骤】 1、交换机BJ上的配置如下: BJ>en BJ#conf t

三层交换机路由配置实例

三层交换机路由配置 一、三层交换机VLAN间路由建立 某公司有两个主要部门:技术部和销售部,分处于不同的办公室,为了安全和便于管理对两个部门的主机进行了VLAN划分,技术部和销售部分处于不同VLAN。现由于业务需要销售部和技术部的主机能够相互访问,获得相应资源,两个部门的交换机通过一台三层交换机进行连接。 在交换机上建立2个Vlan:Vlan10分配给技术部及Vlan20分配给销售部。为了实现两部门的主机能够相互访问,在三层交换机上开启路由功能,并在Vlan10中设置IP地址为192.168.10.1;在Vlan20中设置IP地址为192.168.20.1,查看三层交换机路由表,会发现在三层交换机路由表内有2条直连路由信息,实现在不同网络之间路由数据包,从而达到2个部门的主机可以相互访问,拓朴图如图所示。 第1步:开启三层交换机路由功能 Switch#configure terminal Switch(config)#hostname s3550

S3550(conifg)#ip routing 第2步:建立Vlan,并分配端口 S3550(conifg)#vlan 10 S3550(config-vlan)#name sales S3550(config-vlan)#exit S3550(conifg)#vlan 20 S3550(config-vlan)#name technical S3550(config-vlan)#exit S3550(conifg)# S3550(conifg)#interface fastethernet 0/10 S3550(conifg-if)#switchport mode access S3550(conifg-if)#switchport access vlan 10 S3550(conifg-if)#exit S3550(conifg)# interface fastethernet 0/20 S3550(conifg-if)#switchport mode access S3550(conifg-if)#switchport access vlan 20 S3550(config-vlan)#exit S3550(config)# 第3步:配置三层交换机端口的路由功能 S3550(config)#interface vlan 10 S3550(conifg-if)#ip address 192.168.10.1 255.255.255.0 S3550(conifg-if)#no shutdown

Linux系统编程实验六进程间通信

实验六:进程间通信 实验目的: 学会进程间通信方式:无名管道,有名管道,信号,消息队列, 实验要求: (一)在父进程中创建一无名管道,并创建子进程来读该管道,父进程来写该管道(二)在进程中为SIGBUS注册处理函数,并向该进程发送SIGBUS信号(三)创建一消息队列,实现向队列中存放数据和读取数据 实验器材: 软件:安装了Linux的vmware虚拟机 硬件:PC机一台 实验步骤: (一)无名管道的使用 1、编写实验代码pipe_rw.c #include #include #include #include #include #include int main() { int pipe_fd[2];//管道返回读写文件描述符 pid_t pid; char buf_r[100]; char* p_wbuf; int r_num; memset(buf_r,0,sizeof(buf_r));//将buf_r初始化 char str1[]=”parent write1 “holle””; char str2[]=”parent write2 “pipe”\n”; r_num=30; /*创建管道*/ if(pipe(pipe_fd)<0) { printf("pipe create error\n"); return -1; } /*创建子进程*/ if((pid=fork())==0) //子进程执行代码 {

//1、子进程先关闭了管道的写端 close(pipe_fd[1]); //2、让父进程先运行,这样父进程先写子进程才有内容读sleep(2); //3、读取管道的读端,并输出数据 if(read(pipe_fd[0],buf_r, r_num)<0) { printf(“read error!”); exit(-1); } printf(“%s\n”,buf_r); //4、关闭管道的读端,并退出 close(pipe_fd[1]); } else if(pid>0) //父进程执行代码 { //1、父进程先关闭了管道的读端 close(pipe_fd[0]); //2、向管道写入字符串数据 p_wbuf=&str1; write(pipe_fd[1],p_wbuf,sizof(p_wbuf)); p_wbuf=&str2; write(pipe_fd[1],p_wbuf,sizof(p_wbuf)); //3、关闭写端,并等待子进程结束后退出 close(pipe_fd[1]); } return 0; } /*********************** #include #include #include #include #include #include int main() { int pipe_fd[2];//管道返回读写文件描述符 pid_t pid; char buf_r[100]; char* p_wbuf; int r_num;

【实训3.4】用三层交换机实现VLAN间路由

【实训3.4】用三层交换机实现VLAN间路由 一、实训目的 1.了解VLAN间路由的意义 2.掌握使用三层交换机实现vlan间路由的解决方法 3.模拟并解决小型企业或分公司的VLAN间路由问题 二、实训逻辑图 图3.4-1 实训逻辑图 三、实训内容及步骤 1.进入交换机(先不要按逻辑图连接交换机),查看是否已有Vlan配置 (1)查看Vlan配置(show vlan brief) (2)查看Vtp状态(show vtp status) (3)若Vtp模式不是Server,请将其改为Server(vtp mode server) (4)删除默认Vlan以外的所有Vlan信息(no vlan vlan_id) (5)查看所有端口是否都在Vlan 1下(show vlan brief) (6)若有端口不是Vlan 1下,请将其加入到Vlan 1下 做完以上步骤后,再查看一次Vlan信息,检查是否所有端口已绑定在Vlan 1下,并且没有其他Vlan设置;若仍有端口没有处于Vlan 1下,或有其他Vlan信息,请重复以上项目,否则可能影响下面的实训数据。 2.创建Vlan并将端口绑定到Vlan

SW2950# vlan data SW2950 (vlan)# vlan 2 name v2 SW2950 (vlan)# vlan 3 name v3 SW2950 (config) # int f0/3 SW2950 (config-if) # switchport mode access SW2950 (config-if) # switchport access vlan 2 SW2950 (config) # int f0/4 SW2950 (config-if) # switchport mode access SW2950 (config-if) # switchport access vlan 3 SW2950 (config-if) #end SW2950#show vlan brief VLAN Name Status Ports 1 default active Fa0/1, Fa0/2, Fa0/5, Fa0/6, Fa0/7,Fa0/8, Fa0/9, Fa0/10, Fa0/11,Fa0/12, Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21, Fa0/22, Fa0/23, Fa0/24, Gig1/1, Gig1/2 2 v2 active Fa0/3 3 v3 active Fa0/4 3.将F0/24端口设定为中继端口 SW2950 (config) # int f0/24 SW2950 (config-if) # switchport mode trunk SW3550 (config) # int f0/24 SW3550 (config-if) # switchport trunk encapsulation dot1q SW3550 (config-if) # switchport mode trunk SW3550#show int trunk Port Mode Encapsulation Status Native vlan Fa0/24 on 802.1q trunking 1 Port Vlans allowed on trunk Fa0/24 1-1005 Port Vlans allowed and active in management domain Fa0/24 1,2,3 Port Vlans in spanning tree forwarding state and not pruned Fa0/24 1,2,3 若两台交换机上的F0/24端口模式“mode”都为“on”,表明Trunk状态已正常工作。4.在三层交换机上配置每个VLAN的管理地址 SW3550# conf t SW3550(config)# int vlan 2 //配置VLAN 2管理地址 SW3550(config-if)# ip add 192.168.2.1 255.255.255.0 SW3550(config-if)# no shut SW3550(config-if)# exit

VLAN间路由配置心得体会

VLAN间路由配置心得体会 众所周知,第二层平面网络的扩展性不佳,各站点发送数据包前要广播查询目的地的MAC地址。由于大量应用层软件需要广播传送某些数据包,而这些数据广播包只需发向某一组用户,如果此时没有VLAN(Virtual Local Area Network),这些数据包会占用大量网络资源,使正常数据包无法获得带宽,从而严重影响网络效率及性能。VLAN依靠用户的逻辑设定将原来物理上互联的一个局域网络划分为多个虚拟网段,即在两层交换机的逻辑上划分若干LAN(广播域),将广播信息、组播信息等限制在特定的一组端口上,从而为限制全网范围的广播和多点广播提供有效手段。在网络设计中,应选择切实可行的技术进行VLAN的灵活划分。划分可依据设备所连的端口、用户节点的MAC地址等,划分的结果是使同一个VLAN 内的数据可自由通信。不同VLAN间的数据交流需要通过第三层交换完成。即通过跨越交换机划分VLAN,从而高性能地实现VLAN之间的路由,提高带宽利用率和网络性能,增强网络应用的灵活性和安全性。二、VLAN在网络中的典型划分VLAN在网络中的典型划分如图1所示。VLAN通常与IP网络是相关联的,例如特定IP子网中的所有工作端属于同一个VLAN,不同VLAN之间必须通过路由器或具有路由器功能的模块才能通信。VLAN可以是动态的,也可以是静态的。所谓动态VLAN就是基于工作站的MAC地址,即根据工作站上网卡的48位硬件地址划分的VLAN。动态VLAN主要是通过每台交换机所连接工作站的MAC地址,它将一组MAC地址划分在同一逻辑组中,其中的成员不会因地理位置的改变而改变(这种方法仅用于局域网)。静态VLAN是一种具有固定地理位置的划分方法,它基于交换机端口的划分,可以通过对交换机的适当设置,将同一个交换机或不同交换机上的一组端口划分在同一个VLAN中。VTP(VLAN Trunk Protocol)协议主要用于多台局域网交换机互联情况下有效管理VLAN的配置。VTP Domain 也叫VLAN的管理域,它由具有相同管理域名称的交换机组成,每个交换机只能位于一个VTP域中,这样便可以通过命令行(CLI)方式或简单的网络管理协议(SNMP)来完成整个Domain中VLAN的设置(在缺省状态下,交换机处于非管理域中)。由于一个端口只能同时属于一个VLAN,那么当两台交换机联机后,属于不同VLAN的数据包如何通过级联端口到达另一台交换机,数据包到达另一台交换机后又如何交换呢?我们可以使用交换机中的Trunk功能。两台交换机之间的Trunk关系以及Trunk中所使用的ISL和802.1Q 协议是可以通过双方协商建立的,总共有5种工作方式:On、Off、Desirable、Auto(Trunk 端口缺省模式)和Nonegotiate(交换机与路由器之间的Trunk)。VLAN的配置实现交换机可以分为基于Set命令的和基于IOS的两类。交换机的平台不同,具体设置命令也有所不同,但各种配置的基本原理及设置思路都是一样的。就VLAN的设置来讲,其基本步骤包括:配置VTP 域、建立新的VLAN、将端口分配到目标的VLAN之中。

Linux进程间通信(2)实验报告

实验六:Linux进程间通信(2)(4课时) 实验目的: 理解进程通信原理;掌握进程中信号量、共享内存、消息队列相关的函数的使用。实验原理: Linux下进程通信相关函数除上次实验所用的几个还有: 信号量 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是前一节的共享内存方式的进程间通信。要调用的第一个函数是semget,用以获得一个信号量ID。 int semget(key_t key, int nsems, int flag); key是IPC结构的关键字,flag将来决定是创建新的信号量集合,还是引用一个现有的信号量集合。nsems是该集合中的信号量数。如果是创建新集合(一般在服务器中),则必须指定nsems;如果是引用一个现有的信号量集合(一般在客户机中)则将nsems指定为0。 semctl函数用来对信号量进行操作。 int semctl(int semid, int semnum, int cmd, union semun arg); 不同的操作是通过cmd参数来实现的,在头文件sem.h中定义了7种不同的操作,实际编程时可以参照使用。 semop函数自动执行信号量集合上的操作数组。 int semop(int semid, struct sembuf semoparray[], size_t nops); semoparray是一个指针,它指向一个信号量操作数组。nops规定该数组中操作的数量。 ftok原型如下: key_t ftok( char * fname, int id ) fname就是指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽然为int,但是只有8个比特被使用(0-255)。 当成功执行的时候,一个key_t值将会被返回,否则-1 被返回。 共享内存 共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。首先要用的函数是shmget,它获得一个共享存储标识符。 #include #include #include int shmget(key_t key, int size, int flag); 当共享内存创建后,其余进程可以调用shmat()将其连接到自身的地址空间中。 void *shmat(int shmid, void *addr, int flag); shmid为shmget函数返回的共享存储标识符,addr和flag参数决定了以什么方式来确定连接的地址,函数的返回值即是该进程数据段所连接的实际地

华为路由器交换VLAN配置实例

华为路由器交换VLAN配置实例 华为路由器交换VLAN配置实例 配置说明:使用4台PC,华为路由器(R2621)、交换机(S3026e)各一台,组建一VLAN,实现虚拟网和物理网之间的连接。实现防火墙策略,和访问控制(ACL)。 网络结构如图:四台PC的IP地址、掩码如下列表:P1 192.168.1.1 255.255.255.0网关IP为192.168.1.5P2 192.168.1.2 255.255.255.0网关IP为192.168.1.5P3 192.168.1.3 255.255.255.0网关IP为192.168.1.6P4 192.168.1.4 255.255.255.0网关IP为192.168.1.6路由器上Ethernet0的IP为192.168.1.5 Ethernet1的IP为192.168.1.6 firewall设置默认为deny 实施命令列表: 交换机上设置,划分VLAN: sys //切换到系统视图 [Quidway]vlan enable [Quidway]vlan 2 [Quidway-vlan2]quit //默认所有端口都属于VLAN1,指定交换机的到八个端口属于VLAN2 [Quidway]vlan 3 [Quidway-vlan3]quit //指定交换机的到八个端口属于VLAN3[Quidway]dis vlan all [Quidway]dis cu

路由器上设置,实现访问控制: [Router]interface ethernet 0 [Router-Ethernet0]ip address 192.168.1.5 255.255.255.0[Router-Ethernet0]quit //指定ethernet 0的ip [Router]interface ethernet 1 [Router-Ethernet1]ip address 192.168.1.6 255.255.255.0[Router-Ethernet1]quit //开启firewall,并将默认设置为deny [Router]fire enable [Router]fire default deny //允许192.168.1.1访问192.168.1.3 //firewall策略可根据需要再进行添加 [Router]acl 101 [Router-acl-101]rule permit ip source 192.168.1.1 255.255.255.0 destination 192.168.1.3 255.255.255.0 [Router-acl-101]quit //启用101规则 [Router-Ethernet0]fire pa 101 [Router-Ethernet0]quit [Router-Ethernet1]fire pa 101 [Router-Ethernet1]quit

实验6 进程及进程间的通信之共享内存

实验6 进程及进程间的通信 ●实验目的: 1、理解进程的概念 2、掌握进程复制函数fork的用法 3、掌握替换进程映像exec函数族 4、掌握进程间的通信机制,包括:有名管道、无名管道、信 号、共享内存、信号量和消息队列 ●实验要求: 熟练使用该节所介绍fork函数、exec函数族、以及进程间通信的相关函数。 ●实验器材: 软件: 1.安装了Ubunt的vmware虚拟机 硬件:PC机一台 ●实验步骤: 1、用进程相关API 函数编程一个程序,使之产生一个进程 扇:父进程产生一系列子进程,每个子进程打印自己的PID 然后退出。要求父进程最后打印PID。 进程扇process_fan.c参考代码如下:

2、用进程相关API 函数编写一个程序,使之产生一个进程 链:父进程派生一个子进程后,然后打印出自己的PID,然后退出,该子进程继续派生子进程,然后打印PID,然后退出,以此类推。

要求:1) 实现一个父进程要比子进程先打印PID 的版本。(即 打印的PID 一般是递增的) 2 )实现一个子进程要比父进程先打印PID 的版本。(即打印的PID 一般是递减的) 进程链1,process_chain1.c的参考代码如下:

进程链2,process_chain2.c的参考代码如下:

3、编写程序execl.c,实现父进程打印自己的pid号,子进程调用 execl函数,用可执行程序file_creat替换本进程。注意命令行参数。 参考代码如下: /*execl.c*/ #include #include #include

cisco三层交换机vlan间路由配置实例

cisco三层交换机vlan间路由配置实例 下面以cisco3560实例说明如何在一个典型的快速以太局域网中实现VLAN。所谓典型局域网就是指由一台具备三层交换功能的核心交换机接几台分支交换机(不一定具备三层交换能力)。我们假设核心交换机名称为:COM;分支交换机分别为:PAR1、PAR2、PAR3,分别通过Port 1的光线模块与核心交换机相连;并且假设VLAN名称分别为COUNTER、MARKET、MANAGING…… 需要做的工作: 1、设置VTP DOMAIN(核心、分支交换机上都设置) 2、配置中继(核心、分支交换机上都设置) 3、创建VLAN(在server上设置) 4、将交换机端口划入VLAN 5、配置三层交换 1、设置VTP DOMAIN。 VTP DOMAIN 称为管理域。 交换VTP更新信息的所有交换机必须配置为相同的管理域。如果所有的交换机都以中继线相连,那么只要在核心交换机上设置一个管理域,网络上所有的交换机都加入该域,这样管理域里所有的交换机就能够了解彼此的VLAN列表。 COM#vlan database 进入VLAN配置模式 COM(vlan)#vtp domain COM 设置VTP管理域名称 COM COM(vlan)#vtp server 设置交换机为服务器模式 PAR1#vlan database 进入VLAN配置模式 PAR1(vlan)#vtp domain COM 设置VTP管理域名称COM PAR1(vlan)#vtp Client 设置交换机为客户端模式 PAR2#vlan database 进入VLAN配置模式 PAR2(vlan)#vtp domain COM 设置VTP管理域名称COM PAR2(vlan)#vtp Client 设置交换机为客户端模式 PAR3#vlan database 进入VLAN配置模式 PAR3(vlan)#vtp domain COM 设置VTP管理域名称COM PAR3(vlan)#vtp Client 设置交换机为客户端模式 注意:这里设置核心交换机为Server模式是指允许在该交换机上创建、修改、删除VLAN 及其他一些对整个VTP域的配置参数,同步本VTP域中其他交换机传递来的最新的VLAN 信息;Client模式是指本交换机不能创建、删除、修改VLAN配置,也不能在NVRAM中存储VLAN配置,但可同步由本 VTP域中其他交换机传递来的VLAN信息。 2、配置中继为了保证管理域能够覆盖所有的分支交换机,必须配置中继。Cisco交换机能够支持任何介质作为中继线,为了实现中继可使用其特有的ISL标签。ISL (Inter-Switch Link)是一个在交换机之间、交换机与路由器之间及交换机与服务器之间传递多个VLAN信息及VLAN数据流的协议,通过在交换机直接相连的端口配置 ISL封装,即可跨越交换机进行整个网络的VLAN分配和进行配置。 在核心交换机端配置如下: COM(config)#interface gigabitEthernet 2/1 COM(config-if)#switchport COM(config-if)#switchport trunk encapsulation isl 配置中继协议 COM(config-if)#switchport mode trunk COM(config)#interface gigabitEthernet 2/2 COM(config-if)#switchport COM(config-if)#switchport trunk encapsulation isl 配置中继协议 COM(config-if)#switchport mode trunk COM(config)#interface gigabitEthernet 2/3 COM(config-if)#switchport COM(config-if)#switchport trunk encapsulation isl 配置中继协议 COM(config-if)#switchport mode trunk 在分支交换机端配置如下: PAR1(config)#interface gigabitEthernet 0/1

实验三 进程间通信

实验三进程间通信(2学时) 一、实验目的 (1)了解什么是信号。 (2)熟悉LINUX系统中进程之间软中断通信的基本原理。 (3)熟悉LINUX支持的管道通信方式。 二、实验内容 (1)编写一段程序,使其现实进程的软中断通信。 即:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按 ctrl+c 键);当捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后,分别输出下列信息后终止: Child Process11 is killed by Parent! Child Process12 is killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Parent Process is killed! 要求:运行以下参考程序并分析结果。 <参考程序> #include #include #include #include void waiting(),stop(),alarming(); int wait_mark; main() { int p1,p2; if(p1=fork()) /*创建子进程p1*/ { if(p2=fork()) /*创建子进程p2*/ { //父进程 wait_mark=1; signal(SIGINT,stop); /*接收到^c信号,转stop*/

signal(SIGALRM,alarming);/*接受SIGALRM*/ waiting(); kill(p1,16); /*向p1发软中断信号16*/ kill(p2,17); /*向p2发软中断信号17*/ wait(0); /*同步*/ wait(0); printf("parent process is killed!\n"); exit(0); //会暂时停止目前进程的执行,直到有信号来到或子进程结束。 } else { wait_mark=1; signal(17,stop); signal(SIGINT,SIG_IGN); /*忽略 ^c信号*/ while (wait_mark!=0); lockf(1,1,0); printf("child process2 is killed by parent!\n"); lockf(1,0,0); exit(0); } } else { wait_mark=1; signal(16,stop); signal(SIGINT,SIG_IGN); /*忽略^c信号*/ while (wait_mark!=0); lockf(1,1,0); printf("child process1 is killed by parent!\n"); lockf(1,0,0); exit(0); } } void waiting() { sleep(5); if (wait_mark!=0) kill(getpid(),SIGALRM); } void alarming()

进程间通信实验报告

进程间通信实验报告 班级:10网工三班学生姓名:谢昊天学号:1215134046 实验目的和要求: Linux系统的进程通信机构 (IPC) 允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉Linux支持的消息通讯机制及信息量机制。 实验内容与分析设计: (1)消息的创建,发送和接收。 ①使用系统调用msgget (), msgsnd (), msgrev (), 及msgctl () 编制一长度为1k 的消息的发送和接收程序。 ②观察上面的程序,说明控制消息队列系统调用msgctl () 在此起什么作用? (2)共享存储区的创建、附接和段接。 使用系统调用shmget(),shmat(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。(3)比较上述(1),(2)两种消息通信机制中数据传输的时间。 实验步骤与调试过程: 1.消息的创建,发送和接收: (1)先后通过fork( )两个子进程,SERVER和CLIENT进行通信。 (2)在SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER 。SERVER每接收到一个消息后显示一句“(server)received”。 (3)CLIENT端使用Key为75的消息队列,先后发送类型从10到1的消息,然后退出。最后的一个消息,既是 SERVER端需要的结束信号。CLIENT每发送一条消息后显示一句“(client)sent”。 (4)父进程在 SERVER和 CLIENT均退出后结束。 2.共享存储区的创建,附接和断接: (1)先后通过fork( )两个子进程,SERVER和CLIENT进行通信。 (2)SERVER端建立一个KEY为75的共享区,并将第一个字节置为-1。作为数据空的标志.等待其他进程发来的消息.当该字节的值发生变化时,表示收到了该消息,进行处理.然后再次把它的值设为-1.如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER.SERVER 每接收到一次数据后显示”(server)received”. (3)CLIENT端建立一个为75的共享区,当共享取得第一个字节为-1时, Server端空闲,可发送请求. CLIENT 随即填入9到0.期间等待Server端再次空闲.进行完这些操作后, CLIENT退出. CLIENT每发送一次数据后显示”(client)sent”. (4)父进程在SERVER和CLIENT均退出后结束。 实验结果: 1.消息的创建,发送和接收: 由 Client 发送两条消息,然后Server接收一条消息。此后Client Server交替发送和接收消息。最后一次接收两条消息。Client 和Server 分别发送和接收了10条消息。message 的传送和控制并不保证完全同步,当一个程序不再激活状态的时候,它完全可能继续睡眠,造成上面现象。在多次send message 后才 receive message.这一点有助于理解消息转送的实现机理。

VLAN间路由配置

第15章 VLAN间路由 在交换机上划分VLAN后,VLAN间的计算机就无法通信了。VLAN间的通信需要借助第三层设备,我们可以使用路由器来实现这个功能,如果使用路由器通常会采用单臂路由模式。实践上,VLAN间的路由大多是通过三层交换机实现的,三层交换机可以看成是路由器加交换机,然而因为采用了特殊的技术,其数据处理能力比路由器要大得多。本章将分别介绍两种方法的具体配置。 15.1 VLAN间路由简介 15.1单臂路由 处于不同VLAN的计算机即使它们是在同一交换机上,它们之间的通信也必须使用路由器。可以在每个VLAN上都有一个以太网口和路由器连接。采用这种方法,如果要实现N个VLAN间的通信,则路由器需要N个以太网接口,同时也会占用了N个交换上的以太网接口。单臂路由提供另外一种解决方案。路由器只需要一个以太网接口和交换机连接,交换机的这个接口设置为Trunk接口。在路由器上创建多个子接口和不同的VLAN连接,子接口是路由器物理接口上的逻辑接口。工作原理如图15-1,当交换机收到VLAN1的计算机发送的数据帧后,从它的Trunk接口发送数据给路由器,由于该链路是Trunk链路,帧中带有VLAN1的标签,帧到了路由器后,如果数据要转发到VLAN2上,路由器将把数据帧的VLAN1标签去掉,重新用VLAN2的标签进行封装,通过Trunk链路发送到交换机上的Trunk接口;交换机收到该帧,去掉VLAN2标签,发送给VLAN2上的计算机,从而实现了VLAN间的通信。 图 15-1 路由器的子接口工作原理 15.2 三层交换 单臂路由实现VLAN间的路由时转发速率较慢,实际上在局域网内部多采用三层交换。三层交换机通常采用硬件来实现,其路由数据包的速率是普通路由器的几十倍。 从使用者的角度可以把三层交换机看成是二层交换机和路由器的组合,如图15-2,这个虚拟的路由器和每个VLAN都有一个接口进行连接,不过这个接口是VLAN1或VLAN2接口。Cisco早些年采用的基于NetFlow的三层交换技术;现在Cisco主要采用CEF技术。CEF技术中,交换机利用路由表形成转发信息库(FIB),FIB和路由表是同步的,关键的是它的查询是硬件化,查询速度快得多。除了FIB,还有邻接表(Adjacency Table),该表和ARP表有些类似,主要放置了第二层的封装信息。FIB和邻接表都是在数据转发之前就已经建立准备好了,这样一有数据要转发,交换机就能直接利用它们进行数据转发和封装,不需要查询路由表和发送ARP请求,所以VLAN间的路由速率大大提高。

VLAN+路由器典型配置实例

详解:VLAN+路由器典型配置实例 近期看到有些朋友问交换机划 VLAN 后接路由器如何配置访问外网,其实这是个比较简单,也比较典型的配置。网上也很容易找到,但都不系统很零散。这里针对几种常见的情况,分别做了配置: 1、拓扑结构图: 1)本例中的路由器均为华为 AR28-10,交换机 SW1为华为的 S3526 带3 层交换功能,SW2为华为 2403H-EI二层交换机。 2)图模拟了常见的拓扑结构。也没有用到任何厂商特性,因此也适用于其他厂商的设备,只是命令行有所不同。 2、基础配置: ISP: interface Serial0/0 #配置和RA相连的接口 clock DTECLK1 link-protocol ppp ip address 10.0.1.1 255.255.255.252 interface LoopBack0 #配置该接口模拟 internet 的一个 IP。 ip address 1.1.1.1 255.255.255.255 ip route-static 59.61.94.144 255.255.255.248 10.0.1.2 preference 60 #将该地址段指向 RA,也即分配地址池给 RA。 RA:

nat address-group 0 59.61.94.145 59.61.94.150 #配置NAT 地址池,也即ISP分配的地址段。(如果外网接口类型为广播,则最好把这些地址配置给LOOPBACK接口,否则可能不同,但此例是点对点接口,无此问题) acl number 2000 #配置NA T 用的ACL列表 rule 0 permit source 172.16.0.0 0.0.0.255 rule 1 permit source 172.16.1.0 0.0.0.255 rule 2 permit source 10.0.0.0 0.0.0.3 interface Ethernet0/0 #配置内网口 ip address 10.0.0.1 255.255.255.252 interface Serial0/0 #配置外网口 link-protocol ppp ip address 10.0.1.2 255.255.255.252 nat outbound 2000 address-group 0 #做NA T,采用先前配置的地址池。 ip route-static 0.0.0.0 0.0.0.0 10.0.1.1 preference 60 配置默认路由 SW1: gvrp #启用GVRP 注册协议,用于动态创建SW2的VLAN,实现VLAN 的集中管理。 vlan 2 #创建各VLAN vlan 3 vlan 24#因为S3526 不支持被路由接口,因此将E0/24 划到VLAN24,给VLAN24 配置虚接口IP用于路由。(cisco 则可以在e0/24接口用no switchport 配置为被路由接口,直接配置IP即可) interface Vlan-interface2 #配置VLAN 虚接口IP ip address 172.16.0.254 255.255.255.0 interface Vlan-interface3 配置VLAN 虚接口IP ip address 172.16.1.254 255.255.255.0 interface Vlan-interface24 配置VLAN 虚接口IP ip address 10.0.0.2 255.255.255.252 interface Ethernet0/1 #划分接口到VLAN port access vlan 2 interface Ethernet0/10 #配置和SW2 互联的E0/10接口为Trunk 接口,并启用GVRP协议。port link-type trunk port trunk permit vlan 2 to 3 gvrp registration fixed

实验4-进程间通信―共享存储区的创建、附接和断接

操作系统实验报告 课程名称:操作系统 开课学期: 班级: 指导老师: 实验题目:共享存储区的创建、附接和断接学号: 姓名: 提交时间:

一、实验目的和要求 了解和熟悉共享存储机制 二、实验内容 编制一长度为1k的共享存储区发送和接收的程序。 程序设计 (1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。 (2)SERVER端建立一个key为75的共享区,并将第一个字节设置为-1,。作为数据空的标志。等待其他进程发来的消息。当字节的值发生变化时,表示收到了信息,进行处理。然后再次把它的值设为-1。如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。SERVER每接收到一个数据后显示“(server)receive”。 (3)CLIENT端建立一个key 为75的共享区,当共享取得第一个字节为-1时,Server端空闲,可发送请求。CLIENT随即填入9到0。期间等待server 端的再次空闲。进行完这些操作后,CLIENT退出。CLIENT每发出一次数据后显示“(client)sent”。 (4)父进程在SERVER和CLIENT均退出后结束。 三、实验运行结果 1.涉及的系统调用 (1)shmget( ) 创建、获得一个共享存储区。 系统调用格式:shmid=shmget(key,size,flag) (2)、shmat( ) 共享存储区的附接。从逻辑上将一个共享存储区附接到进程的虚拟地址 空间上。 系统调用格式:virtaddr=shmat(shmid,addr,flag) (3)3、shmdt( ) 把一个共享存储区从指定进程的虚地址空间断开。 系统调用格式:shmdt(addr) (4)、shmctl( ) 共享存储区的控制,对其状态信息进行读取和修改。 系统调用格式:shmctl(shmid,cmd,buf) 2.实验源代码:

实验6 进程间通信

实验6 进程间通信 一、实验目的: 通过本实验了解和掌握进程间通讯的相关知识, (1)了解进程通信的基本原理。 (2)了解和熟悉管道通信,消息传送机制及共享存储机制。二.实验内容 1.进程的管道通信 阅读下列程序,完成实验任务。 #include #include #include int pid1,pid2; main() { int fd[2]; char outpipe[100],inpipe[100]; pipe(fd); //将fd装入管道中 while((pid1=fork())==-1); //如果进程没有创建成功,则一直循环 if(pid1==0) //如果是子进程 { lockf(fd[1],1,0); sprintf(outpipe,"chile 1 process a message!");//将字符串读入到oupipe中去 write(fd[1],outpipe,50); //将outpipe写入到fd[1]中 sleep(5); //睡眠5秒 lockf(fd[1],0,0); exit(0); } else //是父进程 { while((pid2=fork())==-1); if(pid2 == 0) //进程创建成功,并且是子进程 { lockf(fd[1],1,0); sprintf(outpipe,"child 2 process is sending a message!"); write(fd[1],outpipe,50); sleep(5); lockf(fd[1],0,0);

相关主题
文本预览
相关文档 最新文档