交换机中网络环路常见问题详解
以太网中的交换机之间存在不恰当的端口相连会造成网络环路,如果相关的转发转交换机没有打开STP功能,这种环路会引发数据包的源码源码无休止重复转发,形成广播风暴,端口端口从而造成网络故障。循环循环金融借贷系统源码一天,转发转我们在校园网的源码源码网络运行性能监控平台上发现某栋搂的VLAN有问题——其接入交换机与校园网的连接中断。检查放置在网络中心的端口端口汇聚交换机,测得与之相连的循环循环BASE-FX端口有大量的入流量,而出流量却非常少,转发转显得很不正常。源码源码然而这台汇聚交换机的端口端口性能似乎还行,感觉不到有什么问题。循环循环于是转发转,我们在这台汇聚交换机上镜像这个异常端口,用协议分析工具Sniffer来抓包,最多时每秒钟居然能抓到万多个。对这些数据包进行简单分析,我们发现其中一些共同特征。
当时,我们急于尽快抢修网络,没去深究这些数据包的特征,只看到第1点就以为网络受到不明来历的Syn Flood攻击,估计是由一种新网络病毒引起,马上把这台汇聚交换机上该端口禁用掉,以免造成网络性能的下降。
故障排除
为了能在现场测试网络的连通性,在网络中心,我们把连接那栋大楼接入交换机的多模尾纤经光电转换器用双绞线连到一台PC上,并将其模拟成那个问题 VLAN的网关。然后,到现场找来大楼网管员,想让他协助我们尽快把感染了未知病毒的主机查到并隔离。据大楼网管员反映,昨天网络还算正常,不过,当时本大楼某部门正在做网络调整,今天上班就发现网络不行了,qq钓鱼源码 2018不知跟他们有没有关系。我们认为调整网络应该跟感染病毒关系不大。在大楼主配线间,我们把该接入交换机上的网线都拔掉,接上手提电脑,能连通网络中心的测试主机。我们确认链路没问题后,每次将剩余网线数量的一半插回该交换机,经测试没问题则如是继续下去,否则换插另一半,逐渐缩小怀疑有问题网线的数量。我们最终找到一条会引起问题的网线,只要插上这根网线,该大楼网络就会与模拟网关中断连接。经大楼网管员辨认,这条网线是连接昨天在做网络调整的那个部门的。他还说以前该部们拉了一主一备两条网线,应该还有一条,并亲自在那台交换机上把另一条找了出来。随意插上这两条网线中的一条,网络没问题,但只要同时插上,就有问题,哪有在一台交换机上同时插上两条网
线才会激活网络病毒的SYN Flood攻击的?这时我们倒是觉得这种现象更像是网络中有环路。我们到了那个部门发现有三台非管理型交换机,都是串在一起的,然而其中两台又分别通过那两条网线与接入交换机相连,从而导致了网络环路。显然是施工人员对网络拓扑不清楚,当时大楼网管员有事外出,就自以为是地把线接错了,从而造成了这起网络事故。原因找到就好办了,只需拔掉其中一条上联网线即可恢复网络连通。 经过一番周折,网络恢复了正常,但我们还一直在想,是pb 软件注册源码什么干扰了我们的判断呢?
故障分析
一起典型的网络环路故障,用协议分析工具Sniffer抓了这么多的数据包,经过一番分析却没看出问题来。显然,第一眼看到大量的SYN包让我们产生了错觉,想当然地就以为是SYN Flood攻击。事后,我们就这起网络环路故障排除过程做了检讨,重新仔细地分析抓回来的这些数据包,据此解释一下前面提到这些数据包所具有的5个共同特征,以便今后遇到同类问题时能及时作出正确的反应。先看前4个特征:汇聚交换机是网络层设备,该大楼所属VLAN的网络层接口就设置在这台汇聚交换机上,出于实施网络管理策略的需要,对已注册或没注册的 IP地址都进行了MAC地址的绑定。TCP连接要经过3次握手才能建立起来,在这里发起连接的SYN包长度为个字节,加上个字节的以太帧头部和 个字节的IP报头,由Sniffer捕获到的帧长度共为个字节(不包含4字节的差错检测FCS域)。恰巧当时访问该VLAN的单播帧是来自外网的 TCP请求包,根据以太网桥的转发机制,通过CRC正确性检测后,因已做静态ARP配置,这台汇聚交换机会将该单播帧的源MAC地址转换成本机的MAC地址,其目的MAC地址依据绑定参数来更换,并重新计算CRC值,更新FCS域,经过这样重新封装后,再转发到那栋楼的接入交换机。
再看最后1个特征:网桥是一种存储转发设备,用来连接相似的局域网。这些网桥在所有端口上监听着传送过来的每一个数据帧,利用桥接表作为该数据帧的转发依据。桥接表是MAC地址和用于到达该地址的端口号的一个“MAC地址-端口号”列表,它利用数据帧的源MAC地址和接收该帧的端口号来刷新。网桥是这样来使用桥接表的:当网桥从一个端口接收到一个数据帧时,会先刷新桥接表,再在其桥接表中查找该帧的目的MAC地址。如果找到,表白整蛊源码就会从对应这个MAC地址的端口转发该帧(如果这个转发端口与接收端口是相同,就会丢弃该帧)。
如果找不到,就会向除了接收端口以外的其他端口转发该帧,即广播该帧。这里假定在整个转发过程中,网桥A、B、C和D都在其桥接表中查找不到该数据帧的目的MAC地址,即这些网桥都不知道应该从哪个端口转发该帧。当网桥A从上联端口接收到一个来自上游网络的单播帧时,会广播该帧,网桥B、C收到后也会广播该帧,网桥D收到分别来自网桥B、C的这个单播帧,并分别经网桥C、B传送回网桥 A,到此网桥A收到了该单播帧的两个副本。在这样的循环转发过程中,网桥A不停地在不同端口(这时已经不涉及上联端口了)接收到相同的帧,由于接收端口在改变,桥接表也在改变“源MAC-端口号”的列表内容。前面已经假定网桥的桥接表中没有该帧的目的MAC地址,网桥A在分别收到这两个单播帧后,都只能再次向除了接收端口以外的其他端口广播该帧,故该帧也会向上联端口转发。
就每个单播帧而言,网桥A重复前面提到的过程,理论上,广播一次会收到个帧,广播两次就会收到个帧,…,广播到第n次就会收到2n个帧。总之,网桥A照这样转发下去,很快就会形成广播风暴,这个单播帧的macd红色指标源码副本最终会消耗完BASE-X端口带宽。尽管在这期间上联端口会有许多数据帧在相互碰撞而变的不完整,令Sniffer捕获不到,但可以想象得到这个单播帧的重复出现次数仍然会非常多。我们再次检查那些抓回来的数据包,几乎都发现有当时没有注意到的重复标志。按字节包长来计算,以太网交换机的BASE-FX端口转发线速可达pps。在这种网络环路状态下, Sniffer完全有可能每秒抓到万多个包长为字节的数据包。
基于上述理由,由于当时那4台交换机的桥接表中都没有该包的目的MAC地址,处于上游网络的这台汇聚交换机向该大楼发送了一个TCP请求包后,就会不断地收到由该大楼接入交换机转发回来的该TCP包的副本,而且数量非常地多(形成大流量),然而,它并不会把接收到的这些包重发回去;Internet 的网络应用是基于请求/应答模式的,只有发送/接收两条信道都畅通,才能进行端到端的通信。一旦本次网络应用中有一条信道被堵塞了,就会使得该应用因无法进行而结束。网络应用结束后,一般来说,发起请求一方不会就本次应用再次自动发出请求包。于是,在网络环路状态中普遍会有一条信道有大流量,另一条信道几乎没有流量的现象。因为VLAN有隔离广播域的功能,这些大流量不会穿越网络层,所以不会对汇聚交换机造成很大压力。事实上,由于这种网络环路是数据链路层上的故障,只涉及到源MAC地址和目的MAC地址,不管高层封装的是什么类型的包都有可能引起广播风暴。也就是说,当时用Sniffer抓到各种各样的数据包都是有可能的。
故障预防
校园网的接入层是面向用户的网络界面,有许多不可控的成分,情况很复杂,应由专人管理,也应在设备上给予可靠性保证。本搂接入交换机是可管理型的,有STP功能,其他交换机都是非管理型交换机,没有STP功能。本来事先在该接入交换机上配置了STP功能,这起网络事故是完全可以避免的,但不知何故没有这样做,事后再做只能权当“亡羊补牢”了。由此可见,即使接入交换机打开了STP功能,下游网络也会因某种原因构成环路,产生广播风暴,造成对上游网络本VLAN的冲击,故该接入交换机还应有广播包抑制功能,以便能将影响限制在局部范围内。对于下游网络的交换机同样有这些需求,只是成本问题而已。一句话,在网络故障排除时,技术和经验固然重要,但在平时就要注意维护网络的规范连接、落实基本的防范措施更为重要。
实现lcx功能的参考方法
深入探索LCX:内网渗透的得力助手与自定义实现 LCX,一款备受内网渗透者青睐的端口转发工具,以其强大功能和灵活操作而著称。其核心原理是通过命令行或Webshell创建端口回路,实现对内网资源的高效访问。让我们来详细了解如何在不同操作系统上实现LCX功能,以及自定义Python实现的巧妙之处。Windows下的DNAT命令
对于Windows用户,DNAT(动态网络地址转换)是实现LCX的关键。使用`netsh interface portproxy`命令,你可以轻松地添加、删除和查看端口映射,如:netsh interface portproxy add v4tov4 listenport= listenaddress=..1. connectport= connectaddress=.0.0.1
Linux下的iptables命令
Linux用户则可以利用iptables,通过临时或永久修改配置,设置PREROUTING和POSTROUTING链来开启转发功能:iptables -t nat -A PREROUTING -p tcp --dport -j DNAT --to-destination ..1.:
自定义实现:Python LCX工具
然而,标准LCX工具的命令行限制(如杀毒软件拦截和权限问题)促使开发者寻求更灵活的解决方案。一个基于Python的LCX工具,如PortForwarder,通过asyncore模块实现了异步I/O,突破了这些局限。关键代码段如下:class PortForwarder(asyncore.dispatcher):
def __init__(self, ...):
...
self.handle_accept = lambda: Sender(Receiver(conn), remote_ip, remote_port)
通过`PortForwarder`监听本地并转发,接收来自`Receiver`的请求,然后由`Sender`发送到远程主机。运行实例并启动监听循环:PortForwarder(local_host, local_port, remote_host, remote_port)
asyncore.loop()
这样,LCX的核心功能便在Python中优雅呈现。 尽管Python编译器可能带来较大的EXE文件,但通过优化代码可以减小体积。然而,目前尚无完美的解决方案来解决这一问题。 总的来说,LCX不仅是一款强大的工具,而且其自定义实现展示了技术的创新和灵活性。对于那些追求高效和安全的内网渗透者来说,LCX的潜力无穷无尽。十六个小灯循环闪烁为什么每个端口到最后不灭,要等到另一个端口循环完接着循环
程序有些问题,可以做如下修改。
main()
{
unsigned int led;
int i;
while(1)
{
led=0x;
for(i=0;i<;i++)
{
P1=led;
P2=led>>8;
delay();
P1=0x;
P2=0x;
delay();
led<<=1;
}
}
三层交换的路由表中的.0.0.1是怎么转发数据包的?
首先,不会死循环,到lookback口的数据,不会打转,因为路由到Loopback的包,会被重新路由回路由器的Loopback口,并不会被真正地转发,因此也可以被作为一个路由的“黑洞”,现在也有用Null端口来实现,可视为回收站。
.0.0.1这个地址主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。
你的问题源不重要,目的IP是..5..那么在路由表中
..5.0/ DIRECT 0 0 ..5.1 Vlan-interface5 这一列,这个IP是路由表中已经存在的,但是下一跳指向的是5端口,具体优先级不清楚,我觉得是转发出5端口。没弄太明白,互相讨论吧
利用autossh工具实现端口转发
AutoSSH用途
AutoSSH 是一种用于安全自动化的SSH登录工具。适用于当在 host 机器上部署了服务,但无法直接SSH访问,而host服务器可以访问host服务器及其上服务的情况。这时,通过设置SSH可以进行服务访问。然而,需要保持终端开启防止SSH进程关闭,以及在遇到网络故障或波动导致SSH连接中断时无法自动重连。
介绍
AutoSSH是一个命令行应用程序,用于启动SSH服务并进行监控,能在程序问题或网络问题时重启SSH服务。自1.2版本,AutoSSH使用SSH构造本地到远程和远程到本地的重定向循环,发送测试数据并获取返回结果。在1.3版本,新增了指定远程echo服务端口用于返回测试数据发送结果的方法,避免了握手阶段和远程机器端口冲突问题。
使用内网主机主动连接外网主机称为反向连接(Reverse Connection)。这种连接建立后,NAT路由/防火墙会维护内网主机与外网主机间的映射,实现相互通信。然而,这种映射在连接中断或网络不稳定时会失效,这时需要自动重连机制。AutoSSH正是用于保持此连接或进行重连的工具。
安装环境
在client只能访问host,不能访问host;host可以访问host。
安装AutoSSH
在host上安装AutoSSH,通过系统原生的SSH端口映射功能,性能开销极小。
使用方法
在client上访问host的端口,实际访问的是host的端口。具体步骤包括:在host上安装AutoSSH、修改host的SSH服务配置、设置免密码登录、检查端口使用情况、执行转发命令、在client上进行SSH登录测试。
后台启动转发操作
执行命令前检查端口使用情况,然后在host上执行转发命令,该命令可以后台运行。检查端口启动情况,在host上已经启动了对应端口。
设置开机启动
创建启动文件和脚本,将服务设置为开机启动,以便在重启后自动恢复连接。
测试重启host
验证AutoSSH是否可以自动恢复连接。通过测试确认AutoSSH可以成功自动恢复连接。
总结
使用AutoSSH进行端口转发,则必须建立SSH连接通道。AutoSSH有助于将内网服务器通过外网主机/路由器对外提供服务,不限于SSH的端口。SSH命令本身可以实现反向代理,但无法解决断连问题,而利用AutoSSH命令可以解决这一问题。
RSTP端口状态
在.1d交换机环境中,端口状态有五种:阻塞(Blocking)、监听(Listening)、学习(Learning)、转发(Forwarding)和关闭(Disabled)。阻塞状态的端口不参与数据转发,接收配置消息并交给CPU处理,但不发送配置消息且不学习地址。监听状态的端口同样不转发数据,接收并发送配置消息,但不学习地址。 当端口由阻塞状态转变为监听,然后经过秒的转发延迟进入学习状态,经过MAC地址学习后进入转发状态。如果监听状态后发现不应转发数据,将直接返回阻塞状态。为了防止拓扑变化时产生临时环路,生成树协议设置了转发延迟,即学习阶段再转发数据,这样确保了网络的稳定性。 .1w STP和RSTP对端口状态进行了简化。RSTP中仅保留Discarding、Learning和Forwarding三种状态,将STP的禁止、监听和阻塞合并为禁止状态。RSTP的端口类型包括根端口、指定端口、替换端口和备份端口,这些角色通过比较BPDU决定。根端口是到根桥开销最小的端口,指定端口是每个网段内优先级最高的端口,而替换和备份端口则根据BPDU优先级和连接情况确定。扩展资料
RSTP:快速生成树协议(rapid spanning Tree Protocol ):.1w由.1d发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。它比.1d多了两种端口类型:预备端口类型(alternate port)和备份端口类型。 STP(Spanning Tree Protocol )是生成树协议的英文缩写。该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。2024-11-14 12:50
2024-11-14 12:27
2024-11-14 11:11
2024-11-14 11:11
2024-11-14 10:51