深信服翔鹰计划第二周

上周是详解的基础网络问题,VLAN定义,二层trunk通信相关问题(access/trunk模式和其报文格式),二层交换的主要原理,MAC地址学习功能,ARP实现过程,ARP帧的格式,IP五元组。

主要的问题提出过,trunk模式下的端口能否使用默认vlan通信,答案是可以的,默认的vlan通过的时候不会被打tag

这周提出的问题是PAT转换时外部端口能否被内部不同IP共用,上线比较晚,只听到了一半的解答,按我的理解是不行的~

STP生成树协议 ,会将特定的端口block避免环路,每个广播域选举出一个root bridge(依靠BPDU),每个非root-bridge选举一个root port(需要考虑root bridgeID,路径开销,路径以及端口ID,新的10G网络协议(?应该是吧)中优化了1G以上开销均为1的问题),选举完成后会block掉非指定端口保证链路唯一,不形成环路,若链路故障则触发更新,再次收敛后即可更新路径,获得冗余性能。

单臂路由,通过trunk实现,降低链接所需的端口数量,缺点是需要支持trunk,不过trunk与否与客户端不发生关系,仅在交换-交换/交换-路由链接的时候需要考虑~

链路聚合,EthTrunk相关,二层三层ethtrunk配置, 注意如果成员口的速率不同,速率较低的接口可能会拥塞,报文可能会被丢弃。

在一个聚合口中,聚合链路两端的物理口(即成员口)的所有参数必须一致,包括物理口的数量,传输速率,双工模式和流量控制模式。成员口可以是二层接口或三层接口。

数据流在聚合链路上传输,数据顺序必须保持不变。一个数据流可以看做是一组MAC地址和IP地址相同的帧。例如,两台设备间的SSH或SFTP连接可以看做一个数据流。如果未配置链路聚合,只是用一条物理链路来传输数据,那么一个数据流中的帧总是能按正确的顺序到达目的地。配置了链路聚合后,多条物理链路被绑定成一条聚合链路,一个数据流中的帧通过不同的物理链路传输。如果第一个帧通过一条物理链路传输,第二个帧通过另外一条物理链路传输,这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。

为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。

负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型。 1.根据报文的源MAC地址进行负载分担; 2.根据报文的目的MAC地址进行负载分担; 3.根据报文的源IP地址进行负载分担; 4.根据报文的目的IP地址进行负载分担; 5.根据报文的源MAC地址和目的MAC地址进行负载分担; 6.根据报文的源IP地址和目的IP地址进行负载分担; 7.根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。

NAT/PAT,网络地址转换,不同点是NAT是单IP对单IP的转换,一般用于地址伪装,或者处于安全原因不暴露内网地址所做,PAT一般是运营商级的,单IP对多IP的转换,端口复用,主要是解决IP地址不足的问题。

ACL,访问控制列表,提供流量控制和过滤功能,能根据IP五元组进行允许或者过滤,需要注意ACL的排序,ACL执行允许或者过滤后,便不会匹配下一条规则,所以应该把最严格的规则放在最前面。ACL不会过滤router自身产生的数据包。


0 评论
留言