NaNi_Z
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(8月18日更新)

嗯知道了,多谢你的回复,期待后续文章~~~

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(8月18日更新)

多谢你提问,唔该晒。

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(8月18日更新)

网络基本功(三):细说VLANTrunk

转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese image001.gif

介绍

网络性能是影响业务效率的一个重要因素。将大型广播域分段是提高网络性能的方法之一。路由器能够将广播包阻隔在一个接口上,但是,路由器的LAN接口数量有限,它的主要功能是在网络间传输数据,而不是对终端设备提供网络接入。访问LAN的功能还是由接入层交换机来实现。与三层交换机相类似,通过在二层交换机上创建VLAN来减少广播域。现代交换机就是通过VLAN来构造的,因此在某种程度上,学习交换机就是学习VLAN

更多信息

问题的产生:

上一节已经讲过广播域的概念:即广播帧传播覆盖的范围。如下图所示,当网络上的所有设备在广播域产生大量的广播以及多播帧,就会与数据流竞争带宽。这是由网络管理数据流组成,如:ARPDHCPSTP等。如下图所示,假设PC 1产生ARPWindows登录,DHCP等请求:

image002.jpg

这些广播帧到达交换机1之后,遍历整个网络并到达所有节点直至路由器。随着网络节点增加,开销的总数也在增长,直至影响交换机性能。通过实施VLAN断开广播域将数据流隔离开来,能够解决这一问题。

什么是VLAN

VLANvirtual local area network)是一组与位置无关的逻辑端口VLAN就相当于一个独立的三层网络VLAN的成员无需局限于同一交换机的顺序或偶数端口。下图显示了一个常规的部署,左边这张图节点连接到交换机,交换机连接到路由器。所有的节点都位于同一IP网络,因为他们都连接到路由器同一接口。

image003.jpg

图中没有显示的是,缺省情况下,所有节点实际上都是同一VLAN。因此,这种拓扑接口可看作是基于同一VLAN的,如上面右图所示。例如,Cisco设备默认VLANVLAN 1,也称为管理VLAN。默认配置下包含所有的端口,体现在源地址表(source address tableSAT)中。该表用于交换机按照目的MAC地址将帧转发至合适的二层端口。引入VLAN之后,源地址表按照VLAN将端口与MAC地址相对应起来,从而使得交换机能够做出更多高级转发决策。下图显示了show mac address tableshow vlan命令的显示输出。所有端口(FA0/1 – FA0/24)都在VLAN 1

image004.jpg

另一种常用的拓扑结构是两个交换机被一个路由器分离开来,如下图所示。这种情况下,每台交换机各连接一组节点。每个交换机上的各节点共享一个IP地址域,这里有两个网段:192.168.1.0192.168.2.0

image005.jpg

注意到两台交换机的VLAN相同。非本地网络数据流必须经过路由器转发。路由器不会转发二层单播,多播以及广播帧。这种拓扑逻辑在两个地方类似于多VLAN:同一VLAN下的节点共享一个通用地址域,非本地数据流(对应多VLAN情况不同VLAN的节点)需通过路由器转发。在一台交换机上添加一个VLAN,去掉另一台交换机的话,结构如下所示:

image006.jpg

每一个VLAN相当于一个独立的三层IP网络,因此,192.168.1.0上的节点试图与192.168.2.0上的节点通信时,不同VLAN通信必须通过路由器即使所有设备都连接到同一交换机。二层单播,多播和广播数据只会在同一VLAN内转发及泛洪,因此VLAN 1产生的数据不会为VLAN 2节点所见。只有交换机能看得到VLAN,节点和路由器都感觉不到VLAN的存在。添加了路由决策之后,可以利用3层的功能来实现更多的安全设定,更多流量以及负载均衡。

VLAN的作用:

安全性:每一个分组的敏感数据需要与网络其他部分隔离开,减少保密信息遭到破坏的可能性。如下图所示,VLAN 10上的教职工主机完全与学生和访客数据隔离。

image007.jpg

节约成本:无需昂贵的网络升级,并且带宽及上行链路利用率更加有效。

性能提高:将二层网络划分成多个逻辑工作组(广播域)减少网络间不必要的数据流并提升性能。

缩小广播域:减少一个广播域上的设备数量。如上图所示:网络上有六台主机但有三个广播域:教职工,学生,访客。

提升IT管理效率:网络需求相似的用户共享同一VLAN,从而网络管理更为简单。当添加一个新的交换机,在指定端口VLAN时,所有策略和步骤已配置好。

简化项目和应用管理VLAN将用户和网络设备汇集起来,以支持不同的业务或地理位置需求。

每一个VLAN对应于一个IP网络,因此,部署VLAN的时候必须结合考虑网络地址层级的实现情况。

交换机间VLAN

多交换机的情况下,VLAN是怎么工作的呢?下图所示的这种情况,两个交换机VLAN相同,都是默认VLAN 1,即两个交换机之间的联系同在VLAN 1之内。路由器是所有节点的出口。

这时单播,多播和广播数据自由传输,所有节点属于同一IP地址。这时节点之间的通信不会有问题,因为交换机的SAT显示它们在同一VLAN

image008.jpg

而下面这种连接方式就会有问题。由于VLAN在连接端口的主机之间创建了三层边界,它们将无法通信。

image009.png

仔细看上图,这里有很多问题。第一,所有主机都在同一IP网,尽管连接到不同的VLAN。第二,路由器在VLAN 1,因此与所有节点隔离。最后,两台交换机通过不同的VLAN互连。每一点都会造成通信阻碍,合在一起,网络各元素之间会完全无法通信。

交换机用满或同一管理单元物理上彼此分离的情形是很常见的。这种情况下,VLAN需要通过trunk延伸至相邻交换机。trunk能够连接交换机,在网络间传载VLAN信息。如下图所示:

image010.png

对之前的拓扑的改进包括:

·         PC 1PC 2分配到192.168.1.0网段以及VLAN 2

·         PC 3PC 4分配到192.168.2.0网段以及VLAN 3

·         路由器接口连接到VLAN 2VLAN 3

·         交换机间通过trunk线互连。

注意到trunk端口出现在VLAN 1,他们没有用字母T来标识。trunk在任何VLAN都没有成员。现在VLAN跨越多交换机,同一VLAN下的节点可以物理上位于任何地方。

什么是Trunk

Trunk是在两个网络设备之间承载多于一种VLAN的端到端的连接,将VLAN延伸至整个网络。没有VLAN TrunkVLAN也不会非常有用。VLAN Trunk允许VLAN数据流在交换机间传输,所以设备在同一VLAN,但连接到不同交换机,能够不通过路由器来进行通信。

一个VLAN trunk不属于某一特定VLAN,而是交换机和路由器间多个VLAN的通道。如下图所示,交换机S1S2,以及S1S3之间的链路,配置为传输从VLAN10,20,30以及90的数据流。该网络没有VLAN trunk就无法工作。

image011.jpg

当安装好trunk线之后,帧在trunk线传输是就可以使用trunk协议来修改以太网帧。这也意味着交换机端口有不止一种操作模式。缺省情况下,所有端口都称为接入端口。当一个端口用于交换机间互连传输VLAN信息时,这种端口模式改变为trunk,节点也路由器通常不知道VLAN的存在并使用标准以太网帧或“untagged”帧。trunk线能够使用“tagged”帧来标记VLAN或优先级。

因此,在trunk端口,运行trunk协议来允许帧中包含trunk信息。如下图所示:

image012.jpg

PC 1在经过路由表处理后向PC 2发送数据流。这两个节点在同一VLAN但不同交换机。步骤如下:

·         以太网帧离开PC 1到达Switch 1

·         Switch 1SAT表明目的地是trunk线的另一端。

·         Switch 1使用trunk协议在以太网帧中添加VLAN id

·         新帧离开Switch 1trunk端口被Switch 2接收。

·         Switch 2读取trunk id并解析trunk协议。

·         源帧按照Switch 2SAT转发至目的地(端口4)。

VLAN tag如下图所示,包含类型域,优先级域,CFICanonical Format Indicator)指示MAC数据域,VLAN ID

image013.jpg

0 项奖励
NaNi_Z
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

感谢你的分享

照例我又来提问了

关于trunk我可以这么理解吗?

trunk将端口较少的两个交换机连接成一个端口较多的交换机,使得VLAN中可以接入的机器更多。

另外,关于VLAN我的理解是

带有VLAN功能的交换机仍然属于二层设备,交换机上对VLAN的划分实际上是对交换机上端口的划分,属于不同VLAN的端口间不能通信而无关这些端口连接的机器是否在一个网段上。

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

关于trunk我可以这么理解吗?

trunk将端口较少的两个交换机连接成一个端口较多的交换机,使得VLAN中可以接入的机器更多。

欢迎

trunk主要目的是为了交换机之间能够方便传递多个VLAN的信息,(通过打上标签来判断信息属于哪个VLAN),将VLAN延伸至整个网络,也可以认为使得接入的机器更多。

Capture.PNG.png

另外,关于VLAN我的理解是

带有VLAN功能的交换机仍然属于二层设备,交换机上对VLAN的划分实际上是对交换机上端口的划分,属于不同VLAN的端口间不能通信而无关这些端口连接的机器是否在一个网段上。

是的,即使同一台交换机不同的VLAN端口,也无法通信。

NaNi_Z
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

嗯,又学到了很多,再次期待你的后续文章

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

谢谢一直以来的支持~

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

在上一条回复中补充一个图,方便理解trunk的作用。

0 项奖励
NaNi_Z
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

这个图很棒,瞬间加深认识!

Highlighted
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(8月25日更新)

网络基本功(四):细说路由(上)

转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese image001.gif

介绍

以太网交换机工作在第二层即数据链路层,用于在同一网络内部转发以太网帧。但是,当源和目的IP地址位于不同网络时,以太网帧必须发送给路由器。路由器负责在不同网络间传输报文,通过路由表来决定最佳转发路径。当主机将报文发送至不同IP地址时,由于主机无法直接与本地网络以外的设备通信,报文被转发至默认网关。默认网关就是数据流从本地网络路由至远端设备的目的地。它通常用来连接本地网与公共网。


更多信息

报文转发过程:

路由器在一个接口接收报文并将它从另一个接口转发出去,这一过程的关键步骤是为输出链路将报文封装在适当的数据链路帧中。路由器主要执行以下三个步骤:

1. 将第二层的帧头和帧尾移除,解析出第三层报文。

2. 检查IP报文的目的IP地址,在路由表中查找最佳路由。

3. 如果路由器找到一条最佳路径,则将三层报文封装到新的二层帧中,并将帧转发到输出端口。

如下图所示:设备有三层IPv4地址,以太网接口有二层数据链路地址。例如PC 1IPv4地址192.168.1.10,示例MAC地址0A-10在报文从原设备传输至目的设备的过程中,三层IP地址不会改变但是,每一跳随着报文在路由器中被解封装和重新封装,二层数据链路地址都会改变。很可能报文被封装成与接收时不同的另一种类型的二层帧。

image002.jpg

发送报文:

PC 1发送报文给PC 2时,首先必须确定目的IPv4地址是否位于同一网络。PC 1通过将自己的IPv4地址与子网掩码做与操作,来判断PC 1所属的网段。接下来,PC 1对目的IPv4地址与PC 1的子网掩码做同样的与操作。如果目的网络地址与PC 1网络相同,则PC 1不使用默认网关,而是在ARP缓存中查找目的IPv4地址的设备MAC地址。如果MAC地址不在缓存中,则PC 1产生一个ARP请求来获取地址并将报文发给目的地址。如果目的网络地址位于另一网络,则PC 1将报文转发至默认网关。

要确定默认网关的MAC地址,PC 1在它的ARP表中查找默认网关的IPv4地址以及相应的MAC地址。如果ARP表中没有默认网关的对应表项,则PC 1发送ARP请求。路由器R1回复ARP响应。之后PC 1将报文转发至默认网关的MAC地址,即路由器R1Fa0/0接口。

转发至下一跳:

R1PC 1接收到以太网帧后执行以下步骤:

1. R1检查目的MAC地址,与接收端口FastEthernet 0/0相匹配,因此,将帧复制到buffer

2. R1识别以太网类型为0x800,意味着以太网帧的数据部分包含IPv4报文。

3. R1解封装该以太网帧。

4. 由于目的IPv4地址与R1直连的任何网络都不相符,R1在路由表中查找包含该目的IPv4地址主机的网络地址。本例中,路由表中有192.168.4.0/24网络的路由。目的IPv4地址为192.168.4.10,即该网络上的主机IPv4地址。

R1找到192.168.4.0/24路由的下一条IPv4地址为192.168.2.2以及输出端口FastEthernet 0/1,这意味着IPv4报文封装到一个新的以太网帧中,目标MAC地址是下一跳路由器的MAC地址。

由于下一个接口是在以太网上,所以R1必须用ARP解析出下一跳IPv4地址的MAC地址。

1. R1ARP cache中查找下一跳IPv4地址192.168.2.2。如果表项不在ARP cache中,R1会从FastEthernet 0/1 接口发送ARP请求,R2会返回ARP响应。R1之后在ARP cache中更新192.168.2.2MAC地址。

2. IPv4报文封装到新的以太网帧中并从R1FastEthernet 0/1 接口转发出去。

到达目的地:

当帧到达R3时执行以下步骤:

1. R3将数据链路帧复制到它的buffer

2. R3解封装该数据链路帧。

3. R3在路由表中查找该目的IPv4地址。R3路由表中有直接连接到该网络的路由。这表示报文可直接发送到目的设备而无需发送至路由器。

由于输出接口是一个直连以太网,所以R3必须用ARP解析出目的IPv4地址的MAC地址。

1. R3在它的ARP cache中查找目的IPv4地址,如果此ARP cache中没有此表项,R3会从FastEthernet 0/0 接口发送ARP请求。PC 2回复ARP响应告知它的MAC地址。R3之后在ARP cache中更新192.168.4.10MAC地址。

2. IPv4报文封装到新的以太网帧中并从R3FastEthernet 0/0 接口发出。

3. PC 2接收到该帧,检查帧的目的MAC地址,与网卡接收端口的MAC地址相匹配,PC 2于是将帧的剩余部分复制到自己的buffer

4. PC 2识别到以太网类型为0x800,也就是帧的数据部分包含IPv4报文。

5. PC 2解封装以太网帧,将IPv4报文传递给操作系统的IPv4进程。

路由表:

路由表存储的信息包括:

直连路径:来自活动路由接口的路径。当接口为活动状态并配置了IP地址时,路由器添加一条直连路径。

远端路径:远端的网络连接到其他路由。通过静态配置或动态路由协议到达该网络。

路由表是存储在RAM中的一份数据文件,用于存储直连以及远端网络的路由信息。路由表中包含网络或下一跳地址的信息。这些信息告知路由器可以通过将报文发送至代表下一跳地址的路由器以最佳路劲到达目的地址。下一跳信息也可以是到下一个目的地的输出接口。

路由表内容:

Cisco IOS路由器可用show IP route命令显示IPv4路由表。路由器还提供一些额外的路由信息,包括路径是怎样学习到的,路径在表中有多长时间,使用哪一接口去到达预定义的目的地。

路由表中的表项可作为以下内容添加:

本地路径接口:当接口配置并激活时添加。

直连接口:当接口配置并激活时添加。

静态路径:当手动配置路径并且输出接口激活时。

动态路由协议:当路由协议动态学习到网络时添加,如EIGRPOSPF

路由表项的来源通过代码来标识,代码表明路径是怎样学习到的。例如,常用代码包括:

L路由器接口地址。当路由器接收到报文时发送至本地接口而无需转发。

C直连网段。

O通过OSPF从另一个路由器动态学习到的网络。

D通过EIGRP从另一个路由器动态学习到的网络。

下图显示了R1的路由表:

image003.jpg

远端网络路由表项:

下图显示了R1到远端网络10.1.1.0的表项:

image004.jpg

Route source:路径是怎样学习到的。

Destination network:远端网络地址。

Administrative distance:路由来源的可信度。较低值表明优先选择。

Metric:是路由算法用以确定到达目的地的最佳路径的计量标准。较低值表明优先选择。

Next hop:转发报文的下一个路由器的IP地址。

Route timestamp:自学习到路径以来过了多少时间。

Outgoing interface:用以转发报文的输出接口。

直连路由表项:

下图显示了R1到直连网络192.168.10.0的路由表项:

image005.jpg

在一个接口状态为up/up并添加到IPv4路由表之前,接口必须:

·         指定有效的IPv4IPv6地址。

·         通过no shutdown命令激活。

·         从另一设备(路由器,交换机,主机等)接收到载体信号。

当接口up之后,该接口的网络作为直连网络添加到路由表中。