RSTP协议的原理

RSTP (Rapid STP),传统的STP协议收敛的时间分为两部分
1. 选角色时间
2. 选角色之后的等待时间(时长为2倍的Forwarding Delay time)
2倍 Forwarding Delay time的由来:
1. 第一个Forwarding Delay Time,在网络拓扑变化时,各个桥需要重新选举Root Port和 Backup Port。如果在各桥没有选出新的Root Port和Backup Port时,将新的Root Port设置为Forwarding,这样就导致整个网络有瞬间的环路。
2. 第二个Forwarding Dealy Time,在网络拓扑变化后,各个桥都选举出了对应的 RootPort和Backup Port,并且进行了MAC地址的调整(flush某些端口上的mac地址),此时如果直接放通新的RootPort,会导致一瞬间的未知名单播泛洪,对整个网络造成冲击。所以需要保持learning状态15s,待MAC收敛后,再Forwarding RootPort。

STP的收敛主要是靠定时器维持,而RSTP不同。RSTP采用Proposal/Agree机制来实现快速的收敛。

Proposal/Agree机制:

原网络topo中,AP处于DISABLE状态,EP为Forward,但仅连接用户,不会造成环路。DP处于FORWARDING状态,RP亦处于FORWARDING状态。

新网络中,由于新的链路UP起来,网络的TOPO发生了变化。刚UP起来,双方STP状态均为BLOCK。假设最上方交换机为 “根桥” ,由于新的RP(此时还没成为RP)距离根桥的路径更短,根桥从DP向下发交换机发送一封BPDU报文, 建议 其将自己设置为 “指定交换机” ,将直连端口设置为RP。下方交换机收到建议后,将直连端口设置为RP,BLOCK自己的DP,并FORWARDING新RP,通过新RP向上方交换机发送一封Agree报文,上方交换机收到后,设置DP为FORWARDING。这样,从拓扑变化的交换机开始,一级一级向叶子节点收敛。


关注公众号,了解更多it技术(it问答网

RSTP中Alternate和Backup端口的区别

端口和指定端口的作用同STP协议中定义,Alternate端口和Backup端口的描述如下:

配置BPDU报文发送角度来看:
Alternate端口是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。
Backup端口是由于学习到自己发送的配置BPDU报文而阻塞的端口。

用户流量角度来看:
  Alternate端口作为根端口的备份端口,提供了从指定桥到根的另一条可切换路径。
Backup端口作为指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。

RSTP端口状态

Forwarding

在这种状态下,端口既转发用户流量又接收/发送BPDU报文。

Learning

这是一种过渡状态。在Learning下,交换设备会根据收到的用户流量,构建MAC地址表,但不转发用户流量,所以叫做学习状态。
Learning状态的端口接收/发送BPDU报文,不转发用户流量。

Discarding

Discarding状态的端口只接收BPDU报文。


关注公众号,了解更多it技术(it问答网

Windows 命令行启动MySQL数据库

要想从命令行启动mysqld服务器,应当启动控制台窗口(或“DOS window”)并输入命令:

C:\> C:\MySQL\MySQL Server 5.0\bin\mysqld

根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。

在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,应当可以看见后面的命令提示。

如果用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。

下述命令可以停止MySQL服务器:

C:\> C:\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown

该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL的root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。

如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld –console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。

最后选项是用–standalone –debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。

使用mysqld –verbose –help显示mysqld的所有选项。


关注公众号,了解更多it技术(it问答网

阿里云服务器FTP无法连接怎么解决

这台云服务器到手以后,我就立马装上了lnmp,安装上了FTP,准备上去把默认主页给删掉,可是发现FTP始终连不上,一直卡在最后一步

 

看到最后一行的端口号,我就明白了,这是端口没开吧,阿里云的端口必须自己去安全组设置启动呢。

设置安全组允许通过的端口号也很简单。进入服务器实例以后,点击网络与安全,再选择安全组。点进你的安全组ID

在安全组中创建两个规则,端口范围分别设置为20/21、1024/65535,授权对象均为0.0.0.0/0,优先级为1,如下图:

然后再去试试吧。是不是FTP能用啦~


关注公众号,了解更多it技术(it问答网

SublimeText 批量清除空行

sublimeText 编辑器批量清除空行:

1、CTRL+H 打开 replace 功能

 

2、选择 Regular expression 功能

3、批两替换  点击replace All

https://www.bbsmax.com/A/WpdKvreZ5V/


关注公众号,了解更多it技术(it问答网

VMware虚拟机三种网络模式:桥接模式,NAT模式,仅主机模式

目录

一、桥接模式

二、NAT模式

三、仅主机模式

 

VMnet0:用于桥接模式下的虚拟交换机

VMnet1:用于仅主机模式下的虚拟交换机

VMnet8:用于NAT模式下的虚拟交换机

一、桥接模式

桥接模式就是将主机网卡与虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。

所以,桥接模式下的所有虚拟机都是和主机是在同一网段的,可以把它们看成是”平等”的关系,这就会带来一些麻烦,比如192.168.1段下只有254个主机地址,所以桥接模式下虚拟机和物理的总数不能超过这个数字!

配置方法

1、在系统的虚拟机设置中将网络连接模式选择为桥接模式:

2、因为桥接模式虚拟机与宿主机在同一网段下,我们先查看下宿主机的网络信息:

3、接下来在虚拟机中配置网卡(/etc/sysconfig/network-scripts/ifcfg-etho0文件):

注意,网关与DNS需要与主机相同,因为他们在同一网段下~

4、重启网络服务,测试:

二、NAT模式

上面说过,桥接模式可能会导致一定的ip资源紧缺,这时候NAT模式时最佳选择。

先看网络结构图:

在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。VMware Network Adapter VMnet8网卡是为了实现主机与虚拟机之间的通信。

可见NAT模式下主机更像是虚拟机们的”路由器”,通过VMnet8虚拟网卡为虚拟机分发地址。所以虚拟机和主机不再同一网段下,可以理解为主机是虚拟机的”上级”,这也就是为什么桥接模式没有VMnet0这个虚拟网卡,因为桥接模式下的虚拟机和主机是”平等”的,共用同一个路由器。所以啊,NAT模式下的虚拟机时通过真实主机的ip访问外网。

三、仅主机模式

仅主机模式可有看成是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

如果你懂了NAT模式,那理解仅主机模式起来就很简单了~

 

查看VMnet1

所以肯定ping不同外网

有趣的是

主机能ping通虚拟机,而虚拟机不能ping通外机

所以我们可以推测,虚拟机ping主机很可能是通过NAT模式下的NAT虚拟设备,而仅主机模式没有这个设备;而主机ping虚拟机是通过VMnet1网卡。而禁用NAT虚拟设备有些困难,我们也不太好验证。

 

https://blog.csdn.net/qq_39192827/article/details/85872025


关注公众号,了解更多it技术(it问答网

windows域的域和组的区别

工作组是一群计算机的集合,它仅仅是一个逻辑的集合,各自计算机还是各自管理的,你要访问其中的计算机,还是要到被访问计算机上来实现用户验证的。而域不同,域是一个有安全边界的计算机集合,在同一个域中的计算机彼此之间已经建立了信任关系,在域内访问其他机器,不再需要被访问机器的许可了。为什么是这样的呢?因为在加入域的时候,管理员为每个计算机在域中(可和用户不在同一域中)建立了一个计算机帐户,这个帐户和用户帐户一样,也有密码保护的。可是大家要问了,我没有输入过什么密码啊,是的,你确实没有输入,计算机帐户的密码不叫密码,在域中称为登录凭据,它是由2000的DC(域控制器)上的KDC服务来颁发和维护的。为了保证系统的安全,KDC服务每30天会自动更新一次所有的凭据,并把上次使用的凭据记录下来。周而复始。也就是说服务器始终保存着2个凭据,其有效时间是60天,60天后,上次使用的凭据就会被系统丢弃。如果你的GHOST备份里带有的凭据是60天的,那么该计算机将不能被KDC服务验证,从而系统将禁止在这个计算机上的任何访问请求(包括登录),解决的方法呢,简单的方法使将计算机脱离域并重新加入,KDC服务会重新设置这一凭据。或者使用2000资源包里的NETDOM命令强制重新设置安全凭据。因此在有域的环境下,请尽量不要在计算机加入域后使用GHOST备份系统分区,如果作了,请在恢复时确认备份是在60天内作的,如果超出,就最好联系你的系统管理员,你可以需要管理员重新设置计算机安全凭据,否则你将不能登录域环境。
域和工作组适用的环境不同,域一般是用在比较大的网络里,工作组则较小,在一个域中需要一台类似服务器的计算机,叫域控服务器,其他电脑如果想互相访问首先都是经过它的,但是工作组则不同,在一个工作组里的所有计算机都是对等的,也就是没有服务器和客户机之分的,但是和域一样,如果一台计算机想访问其他计算机的话首先也要找到这个组中的一台类似组控服务器,组控服务器不是固定的,以选举的方式实现,它存储着这个组的相关信息,找到这台计算机后得到组的信息然后访问.

 


关注公众号,了解更多it技术(it问答网

虚拟机的备份(快照、复制、克隆)

方法一:打开VMware,单击“虚拟机”——“克隆”——“下一步”……注意克隆类型选择“创建一个完整的克隆”。其它根据提示操作就可以了。(此方法比较慢!)

方法二:直接在你存放虚拟机文件的地方把它复制一份虚拟机文件夹副本。打开虚拟机时用“文件”——“打开”,在弹窗中“浏览”到你刚刚复制的虚拟机文夹件副本,找到vmx文件(如Windows XP Professional.vmx)就打开可以了。
这种方法打开克隆的虚拟机,vmware会提示“你复制了它还是移动了它”,选“复制”就可以了。

另:如果想创建备用虚拟机而又不想浪费磁盘资源的话,建议使用“快照功能”。步骤:
“虚拟机”——“快照”——“从当前状态创建快照”,就可以保存当前的虚拟机状态,之后无论你在虚拟机中做任何的操作,如把虚拟系统弄得稀巴烂等等,只要在“快照管理器”中“恢复到上一快照”(或其它已有的快照),一切恢复如常!


关注公众号,了解更多it技术(it问答网

获得客户端真实ip

$ip=FALSE;

    //客户端IP 或 NONE

    if(!empty($_SERVER["HTTP_CLIENT_IP"])){

        $ip = $_SERVER["HTTP_CLIENT_IP"];

    }

    //多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空

    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

        $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

        if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

        for ($i = 0; $i < count($ips); $i++) {

            if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {

                $ip = $ips[$i];

                break;

            }

        }

    }

    //客户端IP 或 (最后一个)代理服务器 IP

    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);

PHP获取客户端真实IP地址的方法 https://www.php.cn/php-weizijiaocheng-406174.html


关注公众号,了解更多it技术(it问答网