Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux内核VLAN学习笔记

一、前言前几天做协议划分vlan的时候看了一些Linux内核,了解不深,整理了下vlan相关部分的学习笔记,如果有理解上的错误,欢迎指正,以下代码来自于2.6.14-triny(PPC架构)。VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。IEEE于1999年颁布了用以标准化VLAN实现方案的802.1Q协议标准草案。二、概述看代码的时候发现Linux网络内核基本就是按照分层模型来设计的,于是把内核的网络框架按照分层模型来理解:物理层L1对应网卡驱动模块(driver/net),主要负责从物理介质接受和发送数据。当然,在内核外还有switch,因此switch上的配置是凌驾于一切的,如果switch上没有设置vlan tag属性,一切对vlan的修改都无从谈起。链路层L2对应网络核心接口模块(net/core/),与具体设备无关。core核心负责了大量接口之间的连接和调度,统一不同网卡的驱动程序与网络协议层的接口,而实际上很多L2层以太网头的打包剥离过程是在L1驱动层做的。网络层L3,传输层L4对应协议栈模块(net),负责对报文的层层解析,逐部剥离IP层,TCP/UDP层等等。其中ipv4的主要代码是net/ipv4/af_inet.c。会话层L5对应socket模块,与协议无关,是为用户提供网络服务的编程接口,提供了系列系统调用,主要文件是net/socket.c。vlan模块工作在L2核心接口和L3协议栈之间,遵循802.1Q协议,是通过构造一个虚拟的网口来触发vlan功能的,主要文件在net/8021q下。三、内核vlan实现方式1.    通过Vconfig配置一个虚拟的vlan设备,并进行基本的配置。vconfig add eth0 y ;y为需要设置的vlan tag id.vconfig set_flag eth0.y 1 1 ;设置一些vlan属性.2.    通过ifconfig接口为该虚拟设备配置ip,实际上就是修改路由表,让报文从该设备发送或者从该设备接收。Ifconfig eth0.y 192.168.xx.xxx3.    OK了,接下来通过该eth0.y发送的报文均被打上了vlan tag y,接收到的报文均会被去除vlan tag。下面分别通过分析8032环境下发送和接受的案例模型,理清各层间的架构关系。
  • 1
  • 2
  • 3
  • 4
  • 下一页
3种Linux Shell自动交互的方法Linux内核引导参数精选相关资讯      Linux内核 
  • IT人员必须了解的六项Linux内核变  (今 12:05)
  • Linux 内核更新:3.10.98、3.14.62  (02月26日)
  • Linux:让手机运行主线内核  (11/26/2015 22:16:17)
  • Linux内核自防护项目  (05月24日)
  • Linux 内核架构的理解  (12/09/2015 09:01:01)
  • Linux内核被指缺乏安全性  (11/07/2015 08:28:47)
本文评论 查看全部评论 (3)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 3 楼 InBi 发表于 2011/7/23 19:19:56文章不错,我写了一份操作实例文章:http://www.itwhy.***/2011/07-23/645.html回复 支持 (0) 反对 (0)第 2 楼 InBi 发表于 2011/7/23 19:17:40学习啦!