MSTP+VRRP组合组网

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。MSTP+VRRP组合组网,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

组网图形

 MSTP+VRRP组合组网      MSTP+VRRP组合组网

 

 

 MSTP+VRRP组合简介

  • 网络中部署VRRP负载分担时,多台设备同时承担业务,每个虚拟设备都包括一个Master设备和若干个Backup设备。如果为了接入备份需要同时部署冗余链路,则需要部署MSTP消除网络中的环路,保证流量的负载分担。

组网需求

  • 如图1所示,主机通过SwitchC接入网络,SwitchC通过双上行连接SwitchA和SwitchB来接入Internet。由于接入备份的需要,用户部署了冗余链路。冗余备份链路的存在导致出现环网,可能会引起广播风暴和MAC地址表项被破坏。
  • 用户希望在存在冗余备份链路的同时消除网络中的环路,在一条上行链路断开的时候,流量能切换到另外一条上行链路转发,还能合理利用网络带宽。
  • 此时可以在网络中部署MSTP解决环路问题。MSTP可阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的。同时在SwitchA和SwitchB上配置VRRP,HostA以SwitchA为默认网关接入Internet,SwitchB作为备份网关;HostB以SwitchB为默认网关接入Internet,SwitchA作为备份网关,以实现可靠性及流量的负载分担。

配置思路

  • 1.在处于环形网络中的交换设备上配置MSTP基本功能,包括:
    • a.配置MST域并创建多实例,配置VLAN2映射到MSTI1,VLAN3映射到MSTI2,实现流量的负载分担。
    • b.在MST域内,配置各实例的根桥与备份根桥。
    • c.配置各实例中某端口的路径开销值,实现将该端口阻塞。
    • d.使能MSTP,实现破除环路,包括:
      • •设备全局使能MSTP。
      • •除与终端设备相连的端口外,其他端口使能MSTP。
  • 2.配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口配置根保护功能。
  • 3.配置设备的二层转发功能。
  • 4.配置各设备端口IP地址及路由协议,使各设备间网络层连通。
  • 5.在SwitchA和SwitchB上创建VRRP备份组1和VRRP备份组2,在备份组1中,配置SwitchA为Master设备,SwitchB为Backup设备;在备份组2中,配置SwitchB为Master设备,SwitchA为Backup设备。

操作步骤

  配置MSTP基本功能

  a.配置SwitchA、SwitchB、SwitchC到域名为RG1的域内,创建实例MSTI1和实例MSTI2

  # 配置SwitchA的MST域。

[HUAWEI] sysname SwitchA
[SwitchA] stp region-configuration  //进入MST域视图。
[SwitchA-mst-region] region-name RG1  //配置域名为RG1。
[SwitchA-mst-region] instance 1 vlan 2  //将VLAN 2映射到实例1上。
[SwitchA-mst-region] instance 2 vlan 3  //将VLAN 3映射到实例2上。
[SwitchA-mst-region] active region-configuration  //激活MST域的配置。
[SwitchA-mst-region] quit

   # 配置SwitchB的MST域。

[HUAWEI] sysname SwitchB
[SwitchB] stp region-configuration  //进入MST域视图。
[SwitchB-mst-region] region-name RG1  //配置域名为RG1。
[SwitchB-mst-region] instance 1 vlan 2  //将VLAN 2映射到实例1上。
[SwitchB-mst-region] instance 2 vlan 3  //将VLAN 3映射到实例2上。
[SwitchB-mst-region] active region-configuration  //激活MST域的配置。
[SwitchB-mst-region] quit

   # 配置SwitchC的MST域。

[HUAWEI] sysname SwitchC
[SwitchC] stp region-configuration  //进入MST域视图。
[SwitchC-mst-region] region-name RG1  //配置域名为RG1。
[SwitchC-mst-region] instance 1 vlan 2  //将VLAN 2映射到实例1上。
[SwitchC-mst-region] instance 2 vlan 3  //将VLAN 3映射到实例2上。
[SwitchC-mst-region] active region-configuration  //激活MST域的配置。
[SwitchC-mst-region] quit

   b.在域RG1内,配置MSTI1与MSTI2的根桥与备份根桥

  配置MSTI1的根桥与备份根桥

  # 配置SwitchA为MSTI1的根桥。

[SwitchA] stp instance 1 root primary

   # 配置SwitchB为MSTI1的备份根桥。

[SwitchB] stp instance 1 root secondary

   配置MSTI2的根桥与备份根桥

  # 配置SwitchB为MSTI2的根桥。

[SwitchB] stp instance 2 root primary

   # 配置SwitchA为MSTI2的备份根桥。

[SwitchA] stp instance 2 root secondary

   c.配置实例MSTI1和MSTI2中将要被阻塞端口的路径开销值大于缺省值

  # 配置SwitchA的端口路径开销。

[SwitchA] stp pathcost-standard legacy

   # 配置SwitchB的端口路径开销。

[SwitchB] stp pathcost-standard legacy

   # 配置SwitchC的端口路径开销计算方法为华为计算方法,将端口GE1/0/1在实例MSTI2中的路径开销值配置为20000,将端口GE1/0/4在实例MSTI1中的路径开销值配置为20000。

[SwitchC] stp pathcost-standard legacy
[SwitchC]  interface gigabitethernet 1/0/1
[SwitchC-GigabitEthernet1/0/1] stp instance 2 cost 20000
[SwitchC-GigabitEthernet1/0/1] quit
[SwitchC]  interface gigabitethernet 1/0/4
[SwitchC-GigabitEthernet1/0/4] stp instance 1 cost 20000
[SwitchC-GigabitEthernet1/0/4] quit

   d.使能MSTP,实现破除环路

  设备全局使能MSTP

  # 在SwitchA/B/C上启动MSTP。

[SwitchA] stp enable

[SwitchB] stp enable

[SwitchC] stp enable

   将与Host相连的端口配置为边缘端口并配置BPDU过滤

[SwitchC]  interface gigabitethernet 1/0/2
[SwitchC-GigabitEthernet1/0/2] stp disable
[SwitchC-GigabitEthernet1/0/2] stp edged-port enable
[SwitchC-GigabitEthernet1/0/2] stp bpdu-filter enable
[SwitchC-GigabitEthernet1/0/2] quit
[SwitchC]  interface gigabitethernet 1/0/3
[SwitchC-GigabitEthernet1/0/3] stp edged-port enable
[SwitchC-GigabitEthernet1/0/3] stp bpdu-filter enable
[SwitchC-GigabitEthernet1/0/3] quit

   将与Router相连的端口配置为边缘端口并配置BPDU过滤

  # 配置SwitchA端口。

[SwitchA]  interface gigabitethernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] stp edged-port enable
[SwitchA-GigabitEthernet1/0/3] stp bpdu-filter enable
[SwitchA-GigabitEthernet1/0/3] quit

   # 配置SwitchB端口。

[SwitchB]  interface gigabitethernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] stp edged-port enable
[SwitchB-GigabitEthernet1/0/3] stp bpdu-filter enable
[SwitchB-GigabitEthernet1/0/3] quit
  •  配置保护功能,如在各实例的根桥设备的指定端口配置根保护功能

  # 在SwitchA端口GE1/0/1上启动根保护。

[SwitchA]  interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] stp root-protection
[SwitchA-GigabitEthernet1/0/1] quit

   # 在SwitchB端口GE1/0/1上启动根保护。

[SwitchB]  interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] stp root-protection
[SwitchB-GigabitEthernet1/0/1] quit
  •  配置处于环网中的设备的二层转发功能

  在交换设备SwitchA、SwitchB、SwitchC上创建VLAN2~3

  # 在SwitchA/B/C上创建VLAN2~3。

[SwitchA] vlan batch 2 to 3

[SwitchB] vlan batch 2 to 3

[SwitchC] vlan batch 2 to 3

   将交换设备上接入环路中的端口加入VLAN

  # 将SwitchA端口GE1/0/1加入VLAN。

[SwitchA]  interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 3
[SwitchA-GigabitEthernet1/0/1] quit

   # 将SwitchA端口GE1/0/2加入VLAN。

[SwitchA]  interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 to 3
[SwitchA-GigabitEthernet1/0/2] quit

   # 将SwitchB端口GE1/0/1加入VLAN。

[SwitchB]  interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] port link-type trunk
[SwitchB-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 3
[SwitchB-GigabitEthernet1/0/1] quit

   # 将SwitchB端口GE1/0/2加入VLAN。

[SwitchB]  interface gigabitethernet 1/0/2
[SwitchB-GigabitEthernet1/0/2] port link-type trunk
[SwitchB-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 to 3
[SwitchB-GigabitEthernet1/0/2] quit

   # 将SwitchC端口GE1/0/1加入VLAN。

[SwitchC]  interface gigabitethernet 1/0/1
[SwitchC-GigabitEthernet1/0/1] port link-type trunk
[SwitchC-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 3
[SwitchC-GigabitEthernet1/0/1] quit

   # 将SwitchC端口GE1/0/2加入VLAN。

[SwitchC]  interface gigabitethernet 1/0/2
[SwitchC-GigabitEthernet1/0/2] port link-type access
[SwitchC-GigabitEthernet1/0/2] port  default vlan 2
[SwitchC-GigabitEthernet1/0/2] quit

   # 将SwitchC端口GE1/0/3加入VLAN。

[SwitchC]  interface gigabitethernet 1/0/3
[SwitchC-GigabitEthernet1/0/3] port link-type access
[SwitchC-GigabitEthernet1/0/3] port  default vlan 3
[SwitchC-GigabitEthernet1/0/3] quit

   # 将SwitchC端口GE1/0/4加入VLAN。

[SwitchC]  interface gigabitethernet 1/0/4
[SwitchC-GigabitEthernet1/0/4] port link-type trunk
[SwitchC-GigabitEthernet1/0/4] port trunk allow-pass vlan 2 to 3
[SwitchC-GigabitEthernet1/0/4] quit
  •  验证配置结果

  # 在SwitchA上执行display stp brief命令,查看端口状态和端口的保护类型,结果如下:

[SwitchA] display stp brief
 MSTID      Port                        Role  STP State       Protection
   0        GigabitEthernet1/0/1        DESI  FORWARDING      ROOT
   0        GigabitEthernet1/0/2        DESI  FORWARDING      NONE
   1        GigabitEthernet1/0/1        DESI  FORWARDING      ROOT
   1        GigabitEthernet1/0/2        DESI  FORWARDING      NONE
   2        GigabitEthernet1/0/1        DESI  FORWARDING      ROOT
   2        GigabitEthernet1/0/2        ROOT  FORWARDING      NONE

   在MSTI1中,由于SwitchA是根桥,SwitchA的端口GE1/0/2和GE1/0/1成为指定端口。在MSTI2中,SwitchA的端口GE1/0/1成为指定端口,端口GE1/0/2成为根端口。

  # 在SwitchB上执行display stp brief命令,结果如下:

[SwitchB] display stp brief
 MSTID      Port                        Role  STP State       Protection
   0        GigabitEthernet1/0/1        DESI  FORWARDING      ROOT
   0        GigabitEthernet1/0/2        ROOT  FORWARDING      NONE
   1        GigabitEthernet1/0/1        DESI  FORWARDING      ROOT
   1        GigabitEthernet1/0/2        ROOT  FORWARDING      NONE
   2        GigabitEthernet1/0/1        DESI  FORWARDING      ROOT
   2        GigabitEthernet1/0/2        DESI  FORWARDING      NONE

   在MSTI2中,由于SwitchB是根桥,端口GE1/0/1和GE1/0/2在MSTI2中成为指定端口。在MSTI1中,SwitchB的端口GE1/0/1成为指定端口,端口GE1/0/2成为根端口。

  # 在SwitchC上执行display stp interface brief命令,结果如下:

[SwitchC] display stp  interface gigabitethernet 1/0/1 brief
 MSTID      Port                        Role  STP State       Protection
   0        GigabitEthernet1/0/1        ROOT  FORWARDING      NONE
   1        GigabitEthernet1/0/1        ROOT  FORWARDING      NONE
   2        GigabitEthernet1/0/1        ALTE  DISCARDING      NONE
[SwitchC] display stp  interface gigabitethernet 1/0/4 brief
 MSTID      Port                        Role  STP State       Protection
   0        GigabitEthernet1/0/4        ALTE  DISCARDING      NONE
   1        GigabitEthernet1/0/4        ALTE  DISCARDING      NONE
   2        GigabitEthernet1/0/4        ROOT  FORWARDING      NONE

   SwitchC的端口GE1/0/1在MSTI1中为根端口,在MSTI2中被阻塞。SwitchC的另一个端口GE1/0/4,在MSTI1中被阻塞,在MSTI2中为根端口。

  • 配置设备间的网络互连

  # 配置设备各端口的IP地址,以SwitchA为例。SwitchB的配置与SwitchA类似,不再赘述。

[SwitchA] vlan batch 4
[SwitchA]  interface gigabitethernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] port link-type trunk
[SwitchA-GigabitEthernet1/0/3] port trunk allow-pass vlan 4
[SwitchA-GigabitEthernet1/0/3] quit
[SwitchA]  interface vlanif 2
[SwitchA-Vlanif2] ip address 10.1.2.102 24
[SwitchA-Vlanif2] quit
[SwitchA]  interface vlanif 3
[SwitchA-Vlanif3] ip address 10.1.3.102 24
[SwitchA-Vlanif3] quit
[SwitchA]  interface vlanif 4
[SwitchA-Vlanif4] ip address 10.1.4.102 24
[SwitchA-Vlanif4] quit

   # 配置SwitchA、SwitchB和路由器间采用OSPF协议进行互连。以SwitchA为例,SwitchB的配置与SwitchA类似,不再赘述。

[SwitchA] ospf 1
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.4.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
  •  配置VRRP备份组

  # 在SwitchA和SwitchB上创建VRRP备份组1,配置SwitchA的优先级为120,抢占延时为20秒,作为Master设备;SwitchB的优先级为缺省值,作为Backup设备。

[SwitchA]  interface vlanif 2 
[SwitchA-Vlanif2] vrrp vrid 1  virtual -ip 10.1.2.100  //创建组号为1的VRRP备份组并为备份组指定虚拟IP地址10.1.2.100。
[SwitchA-Vlanif2] vrrp vrid 1 priority 120  //配置VRRP备份组1的优先级为120。
[SwitchA-Vlanif2] vrrp vrid 1 preempt-mode timer delay 20  //配置VRRP备份组1抢占延时为20秒。
[SwitchA-Vlanif2] quit
[SwitchB]  interface vlanif 2
[SwitchB-Vlanif2] vrrp vrid 1  virtual -ip 10.1.2.100  //创建组号为1的VRRP备份组并为备份组指定虚拟IP地址10.1.2.100。
[SwitchB-Vlanif2] quit

   # 在SwitchA和SwitchB上创建VRRP备份组2,配置SwitchB的优先级为120,抢占延时为20秒,作为Master设备;SwitchA的优先级为缺省值,作为Backup设备。

[SwitchB]  interface vlanif 3
[SwitchB-Vlanif3] vrrp vrid 2  virtual -ip 10.1.3.100  //创建组号为2的VRRP备份组并为备份组指定虚拟IP地址10.1.3.100。
[SwitchB-Vlanif3] vrrp vrid 2 priority 120  //配置VRRP备份组1的优先级为120。
[SwitchB-Vlanif3] vrrp vrid 2 preempt-mode timer delay 20  //配置VRRP备份组2抢占延时为20秒。
[SwitchB-Vlanif3] quit
[SwitchA]  interface vlanif 3
[SwitchA-Vlanif3] vrrp vrid 2  virtual -ip 10.1.3.100  //创建组号为2的VRRP备份组并为备份组指定虚拟IP地址10.1.3.100。
[SwitchA-Vlanif3] quit

   # 配置主机HostA的缺省网关为备份组1的虚拟IP地址10.1.2.100,配置主机HostB的缺省网关为备份组2的虚拟IP地址10.1.3.100。

  • 验证配置结果

  # 完成上述配置后,在SwitchA上执行display vrrp命令,可以看到SwitchA在备份组1中作为Master设备,在备份组2中作为Backup设备。

[SwitchA] display vrrp
  Vlanif2 | Virtual Router 1
    State : Master
    Virtual IP : 10.1.2.100
    Master IP : 10.1.2.102
    PriorityRun : 120
    PriorityConfig : 120                                                        
    MasterPriority : 120                                                        
    Preempt : YES   Delay Time : 20 s                                           
    TimerRun : 1 s                                                              
    TimerConfig : 1 s                                                           
    Auth type : NONE                                                            
    Virtual MAC : 0000-5e00-0101                                                
    Check TTL : YES                                                             
    Config type : normal-vrrp                                                   
    Backup-forward : disabled
    Create time : 2018-05-11 11:39:18                                           
    Last change time : 2018-05-26 11:38:58

  Vlanif3 | Virtual Router 2
    State : Backup
    Virtual IP : 10.1.3.100
    Master IP : 10.1.3.103
    PriorityRun : 100
    PriorityConfig : 100                                                        
    MasterPriority : 120                                                        
    Preempt : YES   Delay Time : 0 s                                            
    TimerRun : 1 s                                                              
    TimerConfig : 1 s                                                           
    Auth type : NONE                                                            
    Virtual MAC : 0000-5e00-0102                                                
    Check TTL : YES                                                             
    Config type : normal-vrrp                                                   
    Backup-forward : disabled
    Create time : 2018-05-11 11:40:18                                           
    Last change time : 2018-05-26 11:48:58

   # 在SwitchB上执行display vrrp命令,可以看到SwitchB在备份组1中作为Backup设备,在备份组2中作为Master设备。

[SwitchB] display vrrp
  Vlanif2 | Virtual Router 1
    State : Backup
    Virtual IP : 10.1.2.100
    Master IP : 10.1.2.102
    PriorityRun : 100
    PriorityConfig : 100                                                        
    MasterPriority : 120                                                        
    Preempt : YES   Delay Time : 0 s                                            
    TimerRun : 1 s                                                              
    TimerConfig : 1 s                                                           
    Auth type : NONE                                                            
    Virtual MAC : 0000-5e00-0101                                                
    Check TTL : YES                                                             
    Config type : normal-vrrp                                                   
    Backup-forward : disabled
    Create time : 2018-05-11 11:39:18                                           
    Last change time : 2018-05-26 11:38:58

  Vlanif3 | Virtual Router 2
    State : Master
    Virtual IP : 10.1.3.100
    Master IP : 10.1.3.103
    PriorityRun : 120
    PriorityConfig : 120                                                        
    MasterPriority : 120                                                        
    Preempt : YES   Delay Time : 20 s                                            
    TimerRun : 1 s                                                              
    TimerConfig : 1 s                                                           
    Auth type : NONE                                                            
    Virtual MAC : 0000-5e00-0102                                                
    Check TTL : YES                                                             
    Config type : normal-vrrp                                                   
    Backup-forward : disabled
    Create time : 2018-05-11 11:40:18                                           
    Last change time : 2018-05-26 11:48:58 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/206110.html

(1)

及时掌握行业动态,欢迎加入几百人的后端技术交流群:


相关推荐

  • 孤尽班第十次课程-单元测试与系统安全规约

    导读:本篇文章讲解 孤尽班第十次课程-单元测试与系统安全规约,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年1月16日
    0027
  • 《Effective Java》笔记

    不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。《Effective Java》笔记,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    技术随笔 2023年8月22日
    0044
  • 【SpringBoot】篇一:SpringBoot入门

    有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

    导读:本篇文章讲解 【SpringBoot】篇一:SpringBoot入门,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    技术随笔 2023年5月29日
    0039
  • JAVA 导出excel(三):导出zip压缩包

    不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。JAVA 导出excel(三):导出zip压缩包,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    技术随笔 2023年8月23日
    00170
  • 【数据库】序列(Sequence)

    导读:本篇文章讲解 【数据库】序列(Sequence),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月22日
    0088
  • 数据结构与算法——插入排序

    导读:本篇文章讲解 数据结构与算法——插入排序,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年1月12日
    0029
  • 20min带你学习——HTTP协议、以及经典面试问题

    追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

    导读:本篇文章讲解 20min带你学习——HTTP协议、以及经典面试问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    技术随笔 2023年4月2日
    0031
  • 性能指标–下篇

    导读:本篇文章讲解 性能指标–下篇,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月13日
    0036
  • 设计模式-单例和工厂详解

    导读:本篇文章讲解 设计模式-单例和工厂详解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年1月15日
    0038
  • 跳槽!阿里工作100+天,菜鸡职业生涯的一点记录

    如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。跳槽!阿里工作100+天,菜鸡职业生涯的一点记录,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    技术随笔 2024年1月21日
    0042