Linux上的基础网络设备详解

Linux上的基础网络设备详解

ID:43709553

大小:520.91 KB

页数:9页

时间:2019-10-13

Linux上的基础网络设备详解_第1页
Linux上的基础网络设备详解_第2页
Linux上的基础网络设备详解_第3页
Linux上的基础网络设备详解_第4页
Linux上的基础网络设备详解_第5页
资源描述:

《Linux上的基础网络设备详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、tobridgenetdev_rx_handler_registerdev,brhandleframe,attachdevtobridgebr_deliver()丿skb-push()LinuxprotocolstackLinuxhandlerbr_handle」rame()rhookO->ebtbroutef)br_dev_xmit()

2、盃br_handleJ^meJinishO

3、packetpreceAirewhenJstp=0;bndge_mode二forward;non-bcoardcasttrafficbrpassJrameup()Linuxprot

4、ocolstackLinux上的基础网络设备详解网络虚拟化是Cloud中的一个重要部分。作为基础知识,本文详细讲述Linux抽象岀来的各种网络设备的原理、用法、数据流向。使读者知道如何使用Linux的基础网络设备进行配置以达到特定的目的,分析出Linux可能的网络故障原因。Linux抽象网络设备简介和磁盘设备类似,Linux用八想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个Linux为我们抽象出来的设备,既通用的Linux网络设备来完成。一个常见的惜况是,系统里装有一个硬件网卡,Linux会在系统里为其生成一个网络设备实例,如ethO,

5、用户需要对ethO发出命令以配置或使用它了。更多的硬件会带來更多的设备实例,熄拟的硕件也会带来更多的设备实例。随着网络技术,虚拟化技术的发展,更多的高级网络设备被加入了到了Linux中,使得情况变得更加复杂。在以下章节中,将一一分析在虚拟化技术屮经常'使用的儿种Linux网络设备抽象类型:Bridge、802」.qVLANdeviceVETH>TAP,详细解释如何用它们配合Linux中的Routetable>IPtable简单的创建出本地虚拟网络。相关网络设备工作原理BridgeBridge(桥)是Linux上用来做TCP/IP二层协议交换的设备,与现实世界屮

6、的交换机功能相似。Bridge设备实例可以和Linux上其他网络设备实例连接,既attach一个从设备,类似丁•在现实世界中的交换机和一个用户终端Z间连接一根网线。当有数据到达吋,Bridge会根据报文中的MAC信息进行广播、转发、丢弃处理。图1.Bridge设备工作过程kernelprocedureaneidew^>4dev^xmrtcaltoackIPaddrIPaddrnotvakdLinuxbadgelimitlogicalviewnon-broardcasetraffic—♦recvpathlinuxlogicalnetdev►xmltpathlin

7、uxsoftbndge如图所示,Bridge的功能主耍在内核里实现。当一个从设备被attach到Bridge上吋,相当于现实世界里交换机的端口被插入了一根连冇终端的网线。这时在内核程序里,netdev_rx_handler_register()被调川,一个丿IJ丁•接受数据的回调函数被注册。以后每当这个从设备收到数据吋都会调用这个函数可以把数据转发到Bridge上。当Bridge接收到此数据时,br_handlc_framc()被调用,进行一个和现实世界中的交换机类似的处理过程:判断包的类别(广播/单点),查找内部MAC端口映射表,定位目标端口号,将数据转发到

8、冃标端口或丢弃,自动更新内部MAC端口映射表以自我学习。Bridge和现实世界屮的二层交换机有一个区别,图屮左侧画出了这种情况:数据被直接发到Bridge上,而不是从一个端口接受。这种情况可以看做Bridge自己有-•个MAC可以主动发送报文,或者说Bridge自带了一个隐藏端口和寄主Linux系统自动连接,Linux上的程序可以接从这个端口向Bridge上的其他端口发数据。所以当一个Bridge拥有-一个网络设备时,如bridgeO加入了ethO时,实际上bridgeO拥有两个有效MAC地址,一个是bridgeO的,一个是ethO的,他们Z间可以通讯。由此带

9、来一个有意思的事情是,Bridge可以设置IP地址。通常来说IP地址是三层协议的内容,不应该出现在二层设备Bridge上。但是Linux里Bridge是通用网络设备抽象的一种,只要是网络设备就能够设定IP地址。当一个bridgeO拥有IP后,Linux便可以通过路由表或者IP表规则在三层定位bridgeO,此时相当于Linux拥冇了另外一个隐藏的虚拟网卡和Bridge的隐藏端口相连,这个网卡就是名为bridgeO的通川网络设备,IP可以看成是这个网卡的。当有符合此IP的数据到达bridge。时,内核协议栈认为收到了一包目标为木机的数据,此时应用程序可以通过So

10、cket接收到它。一个更好的对比例子是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。