【分享】小型园区组网场景

小型园区组网图

 

图片

  • 在小型园区中,S2700&S3700通常部署在网络的接入层,S5700&S6700通常部署在网络的核心,出口路由器一般选用AR系列路由器。

  • 接入交换机与核心交换机通过Eth-Trunk组网保证可靠性。

  • 每个部门业务划分到一个VLAN中,部门间的业务在CORE上通过VLANIF三层互通。

  • 核心交换机作为DHCP Server,为园区用户分配IP地址。

  • 接入交换机上配置DHCP Snooping功能,防止内网用户私接小路由器分配IP地址;同时配置IPSG功能,防止内网用户私自更改IP地址。

数据规划

在配置之前,需按照下面的表格准备好数据。以下数据将在本文后续章节使用。

图片

登录设备

请使用Console通信电缆(产品随设备附带)连接交换机与PC。若PC无串口,需要使用USB接口转串口的转接线。

图片

配置管理IP和Telnet

配置设备管理IP地址后,可以通过管理IP远程登录设备,下面以交换机CORE为例说明配置管理IP和Telnet的方法。

  1. 配置管理IP地址。

    <HUAWEI> system-view 
    [HUAWEI] vlan 5               //创建交换机管理VLAN 5
    [HUAWEI-VLAN5] management-vlan
    [HUAWEI-VLAN5] quit
    [HUAWEI] interface vlanif 5
    [HUAWEI-vlanif5] ip address 10.10.1.1 24
    [HUAWEI-vlanif5] quit
    
  2. 将管理接口加入到管理VLAN 。

    [HUAWEI] interface GigabitEthernet 0/0/8       //假设连接网管的接口为GigabitEthernet 0/0/8
    [HUAWEI-GigabitEthernet0/0/8] port link-type trunk
    [HUAWEI-GigabitEthernet0/0/8] port trunk allow-pass vlan 5
    [HUAWEI-GigabitEthernet0/0/8] quit
    
  3. 配置Telnet。

    [HUAWEI] telnet server enable     //Telnet出厂时是关闭的
    [HUAWEI] telnet server-source -i vlanif 5     //V200R020及之后版本,必须执行该命令配置连接服务器端的端口,否则Telnet不可用
    [HUAWEI] user-interface vty 0 4    //Telnet常用于设备管理员登录,推荐使用AAA认证
    [HUAWEI-ui-vty0-4] protocol inbound telnet
    [HUAWEI-ui-vty0-4] authentication-mode aaa
    [HUAWEI-ui-vty0-4] idle-timeout 15 
    [HUAWEI-ui-vty0-4] quit
    [HUAWEI] aaa
    [HUAWEI-aaa] local-user admin password irreversible-cipher Helloworld@6789   //配置登录用户名和密码
    [HUAWEI-aaa] local-user admin privilege level 15        //将管理员的账号权限设置为15(最高)
    [HUAWEI-aaa] local-user admin service-type telnet
    
  4. 在维护终端上Telnet到交换机。出现用户视图的命令行提示符表示登录成功。

    C:\Documents and Settings\Administrator> telnet 10.10.1.1   //输入交换机管理IP,并回车
    Login authentication
    Username:admin                                      //输入用户名和密码
    Password:
     Info: The max number of VTY users is 5, and the number 
           of current VTY users on line is 1. 
           The current login time is 2014-05-06 18:33:18+00:00. 
    <HUAWEI>                                            //用户视图命令行提示符
    

配置接口与VLAN

配置接入层交换机

  1. 以接入交换机ACC1为例,创建ACC1的业务VLAN 10。

    <HUAWEI> system-view 
    [HUAWEI] sysname ACC1              //修改设备名称为ACC1
    [ACC1] vlan batch 10                //批量创建VLAN
    
  2. 配置ACC1连接CORE的Eth-Trunk1,透传部门A的VLAN。

    [ACC1] interface eth-trunk 1
    [ACC1-Eth-Trunk1] port link-type trunk              //配置为trunk模式,用于透传VLAN。
    [ACC1-Eth-Trunk1] port trunk allow-pass vlan 10     //配置Eth-Trunk1透传ACC1上的业务VLAN
    [ACC1-Eth-Trunk1] mode lacp                        //配置Eth-Trunk1为LACP模式
    [ACC1-Eth-Trunk1] quit
    [ACC1] interface GigabitEthernet 0/0/1             //将成员接口加入Eth-Trunk1
    [ACC1-GigabitEthernet0/0/1] eth-Trunk 1
    [ACC1-GigabitEthernet0/0/1] quit
    [ACC1] interface GigabitEthernet 0/0/2
    [ACC1-GigabitEthernet0/0/2] eth-Trunk 1
    [ACC1-GigabitEthernet0/0/2] quit
    
  3. 配置ACC1连接用户的接口,使用户加入VLAN,并将接口配置成边缘端口。

    [ACC1] interface Ethernet 0/0/2                //配置连接PC1的接口
    [ACC1-Ethernet0/0/2] port link-type access
    [ACC1-Ethernet0/0/2] port default vlan 10
    [ACC1-Ethernet0/0/2] stp edged-port enable
    [ACC1-Ethernet0/0/2] quit
    [ACC1] interface Ethernet 0/0/3                //配置连接PC2的接口
    [ACC1-Ethernet0/0/3] port link-type access
    [ACC1-Ethernet0/0/3] port default vlan 10
    [ACC1-Ethernet0/0/3] stp edged-port enable
    [ACC1-Ethernet0/0/3] quit
    [ACC1] interface Ethernet 0/0/4                //配置连接打印机的接口
    [ACC1-Ethernet0/0/4] port link-type access
    [ACC1-Ethernet0/0/4] port default vlan 10
    [ACC1-Ethernet0/0/4] stp edged-port enable
    [ACC1-Ethernet0/0/4] quit
    

    如果把ACC1下接入的用户都加入VLAN 10,为了配置简单,也可以ACC1上不配置VLAN,而是把CORE的Eth-Trunk1以access方式加入VLAN10,这样Eth-Trunk1接入的用户全部属于VLAN10。

  4. 配置BPDU保护功能,加强网络的稳定性。

    [ACC1] stp bpdu-protection
    

配置核心层交换机

  1. 批量创建CORE与ACC1、ACC2以及园区出口路由器互通的VLAN。

    <HUAWEI> system-view 
    [HUAWEI] sysname CORE                            //修改设备名称为CORE
    [CORE] vlan batch 10 20 100                      //批量创建VLAN
    
  2. 配置下行接口和VLANIF接口,VLANIF接口用于部门A与部门B之间互访。以CORE连接ACC1的Eth-Trunk1为例。

    [CORE] interface eth-trunk 1 
    [CORE-Eth-Trunk1] port link-type trunk          //配置为trunk模式,用于透传VLAN
    [CORE-Eth-Trunk1] port trunk allow-pass vlan 10   //配置Eth-Trunk1透传ACC1上的业务VLAN
    [CORE-Eth-Trunk1] mode lacp                    //配置为LACP模式
    [CORE-Eth-Trunk1] quit
    [CORE] interface GigabitEthernet 0/0/1         //将成员接口加入Eth-Trunk1
    [CORE-GigabitEthernet0/0/1] eth-Trunk 1
    [CORE-GigabitEthernet0/0/1] quit
    [CORE] interface GigabitEthernet 0/0/2
    [CORE-GigabitEthernet0/0/2] eth-Trunk 1
    [CORE-GigabitEthernet0/0/2] quit
    [CORE] interface Vlanif 10                    //配置VLANIF,使部门A与部门B之间三层互通
    [CORE-Vlanif10] ip address 10.10.10.1 24
    [CORE-Vlanif10] quit
    [CORE] interface Vlanif 20                   //配置VLANIF,使部门B与部门A之间三层互通
    [CORE-Vlanif20] ip address 10.10.20.1 24
    [CORE-Vlanif20] quit
    
  3. 配置上行接口和VLANIF接口,使园区网络与Internet互通。

    [CORE] interface GigabitEthernet 0/0/20
    [CORE-GigabitEthernet0/0/20] port link-type access          //配置为access模式
    [CORE-GigabitEthernet0/0/20] port default vlan 100  
    [CORE-GigabitEthernet0/0/20] quit
    [CORE] interface Vlanif 100            //配置VLANIF,使CORE与路由器之间三层互通
    [CORE-Vlanif100] ip address 10.10.100.1 24
    [CORE-Vlanif100] quit
    
  4. 完成接口和VLAN的配置后,可以通过以下命令查看配置结果。
    执行display eth-trunk 命令检查ACC1上的Eth-Trunk接口配置结果。可以看到,ACC1上, 接口GE0/0/1和GE0/0/2 加入了Eth-Trunk 1。[ACC1] display eth-trunk 1。

    Eth-Trunk1's state information is:
    Local:
    LAG ID: 1                   WorkingMode: LACP
    Preempt Delay: Disabled     Hash arithmetic: According to SA-XOR-DA
    System Priority: 32768      System ID: 00e0-fc12-6704
    Least Active-linknumber: 1  Max Active-linknumber: 8
    Operate status: up          Number Of Up Port In Trunk: 1
    --------------------------------------------------------------------------------
    ActorPortName          Status   PortType PortPri PortNo PortKey PortState Weight
    GigabitEthernet0/0/1   Selected 1000M     32768   2      289     10111100  1
    GigabitEthernet0/0/2   Selected 1000M     32768   3      289     10100010  1
    
    Partner:--------------------------------------------------------------------------------
    ActorPortName          SysPri   SystemID        PortPri PortNo PortKey PortState
    GigabitEthernet0/0/1   32768    00e0-fc12-2212  32768   2      289     10111100 
    GigabitEthernet0/0/2   32768    00e0-fc12-2212  32768   3      289     10111100 
    
    执行display vlan命令检查ACC1上的VLAN配置结果。可以看到,ACC1上,接口Eth0/0/2~Eth0/0/4以Untagged方式加入VLAN10,Eth-Trunk 1以Tagged方式加入VLAN10。
    [ACC1] display vlan
    The total number of VLANs is : 1
    --------------------------------------------------------------------------------
    U: Up;         D: Down;         TG: Tagged;         UT: Untagged;
    MP: Vlan-mapping;               ST: Vlan-stacking;
    #: ProtocolTransparent-vlan;    *: Management-vlan;
    --------------------------------------------------------------------------------
    VID  Type    Ports
    --------------------------------------------------------------------------------
    10  common  UT:Eth0/0/2(U)      Eth0/0/3(U)      Eth0/0/4(U)
                TG:Eth-Trunk1(U) 
    VID  Status  Property      MAC-LRN Statistics Description
    --------------------------------------------------------------------------------
    10   enable  default       enable  disable    VLAN 0010
    

    执行display eth-trunk命令检查CORE上Eth-Trunk接口配置结果。可以看到,CORE上, 接口GE0/0/1和GE0/0/2 加入了Eth-Trunk 1。

    [CORE] display eth-trunk 1
    Eth-Trunk1's state information is:
    Local:
    LAG ID: 1                   WorkingMode: LACP
    Preempt Delay: Disabled     Hash arithmetic: According to SA-XOR-DA
    System Priority: 32768      System ID: 00e0-fc12-6703
    Least Active-linknumber: 1  Max Active-linknumber: 8
    Operate status: up          Number Of Up Port In Trunk: 1
    --------------------------------------------------------------------------------
    ActorPortName          Status   PortType PortPri PortNo PortKey PortState Weight
    GigabitEthernet0/0/1   Selected 1000M     32768   2      289     10111100  1
    GigabitEthernet0/0/2   Selected 1000M     32768   3      289     10100010  1
    
    Partner:
    --------------------------------------------------------------------------------
    ActorPortName          SysPri   SystemID        PortPri PortNo PortKey PortState
    GigabitEthernet0/0/1   32768    00e0-fc12-2211  32768   2      289     10111100 
    GigabitEthernet0/0/2   32768    00e0-fc12-2211  32768   3      289     10111100 
    

    执行display vlan命令检查CORE上VLAN配置结果。可以看到,CORE上,接口Eth-Trunk1、Eth-Trunk2分别以Tagged方式加入VLAN10和VLAN20;GE0/0/20以Tagged方式加入VLAN100。

    [CORE] display vlan
    The total number of VLANs is : 3
    --------------------------------------------------------------------------------
    U: Up;         D: Down;         TG: Tagged;         UT: Untagged;
    MP: Vlan-mapping;               ST: Vlan-stacking;
    #: ProtocolTransparent-vlan;    *: Management-vlan;
    -------------------------------------------------------------------------------
    VID  Type    Ports
    --------------------------------------------------------------------------------
    10   common  TG:Eth-Trunk1(U)
    20   common  TG:Eth-Trunk2(U)
    100  common  TG:GE0/0/20(U)
    VID  Status  Property      MAC-LRN Statistics Description
    --------------------------------------------------------------------------------
    10   enable  default       enable  disable    VLAN 0010
    20   enable  default       enable  disable    VLAN 0020
    100  enable  default       enable  disable    VLAN 0100 
    

配置DHCP

在CORE上配置DHCP Server,使部门A(VLAN10)和部门B (VLAN20)的用户都能获取到正确的IP地址。

以下以部门A为例,说明DHCP Server的配置步骤。

本文以基于全局地址池的DHCP Server举例。还可以配置基于接口地址池的DHCP Server。

  1. 创建全局地址池,配置出口网关、租期(采用缺省值1天,不需配置)并配置为打印机(MAC地址为a-b-c)分配固定的IP地址10.10.10.254。<CORE>system-view

    [CORE] dhcp enable
    [CORE] ip pool 10
    [CORE-ip-pool-10] network 10.10.10.0 mask 24    //配置部门A的用户可分配的地址池范围
    [CORE-ip-pool-10] gateway-list 10.10.10.1       //配置部门A的用户的网关地址
    [CORE-ip-pool-10] static-bind ip-address 10.10.10.254 mac-address a-b-c    //配置为打印机分配固定的IP地址
    [CORE-ip-pool-10] quit
    
  2. 配置部门A的用户从全局地址池获取IP地址。

    [CORE] interface vlanif 10
    [CORE-Vlanif10] dhcp select global      //配置部门A的用户从全局地址池获取IP地址     
    [CORE-Vlanif10] quit
    
  3. 使用display ip pool命令,分别查看全局地址池10的配置和使用信息。

    [CORE] display ip pool name 10
    Pool-name      : 10
      Pool-No        : 0
      Lease          : 1 Days 0 Hours 0 Minutes
      Domain-name    : -
      DNS-server0    : -
      NBNS-server0   : -
      Netbios-type   : -
      Position       : Local           Status           : Unlocked
      Gateway-0      : 10.10.10.1
      Network        : 10.10.10.0
      Mask           : 255.255.255.0
      VPN instance   : --              
    -----------------------------------------------------------------------------
    Start           End     Total  Used  Idle(Expired)  Conflict  Disable
    ----------------------------------------------------------------------------- 
    10.10.10.1    10.10.10.254   253     4        249(0)         0        0
    -----------------------------------------------------------------------------
    

在DHCP服务器配置完成后,需要设置终端电脑网卡为自动获取地址,这样终端才能正常从DHCP服务器获取到地址,正常上网。

配置完动态分配地址之后,刚开电脑获取地址的时间比较长,这是因为对于开启了生成树协议的交换机,每当有电脑接入之后导致生成树重新收敛,所以需要的时间比较长;通过关闭接口的生成树协议或者把连接终端的交换机接口配置为边缘端口即可解决。

下面以ACC1为例,说明配置步骤。

# 关闭接口的生成树协议
[ACC1] interface Ethernet 0/0/2
[ACC1-Ethernet 0/0/2] stp disable  //undo stp enable命令也可完成该功能

# 配置连接终端设备的交换机接口为边缘端口[ACC1] interface Ethernet 0/0/2
[ACC1-Ethernet0/0/2] stp edged-port enable
[ACC1-Ethernet0/0/2] quit

以上两种方法选择一种进行配置,终端电脑刚开机获取地址速度慢的问题就可以有效解决。

 

配置核心交换机路由

  1. 在CORE上配置一条到园区出口网关的缺省静态路由,使内网数据可以发到出口路由器。

    [CORE] ip route-static 0.0.0.0 0 10.10.100.2
    
  2. 在CORE上使用display ip routing-table命令查看IP路由表。能够查看到有一条下一跳地址为10.10.100.2的缺省静态路由,表示静态路由配置完成。三条直连路由是链路发现自动生成。

    [CORE] display ip routing-table
    Route Flags: R - relay, D - download to fib
    ------------------------------------------------------------------------------
    Routing Tables: Public
    Destinations : 5        Routes : 5
    Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
    0.0.0.0/0   Static  60   0           RD  10.10.100.2     Vlanif100
    10.10.10.0/24  Direct  0    0           D   10.10.10.1      Vlanif10
    10.10.10.1/32  Direct  0    0           D   127.0.0.1       Vlanif10
    10.10.20.0/24  Direct  0    0           D   10.10.20.1      Vlanif20
    10.10.20.1/32  Direct  0    0           D   127.0.0.1       Vlanif20
    10.10.100.0/24  Direct  0    0          D   10.10.100.1     Vlanif100
    10.10.100.1/32  Direct  0    0          D   127.0.0.1       Vlanif100
    

配置出口路由器

在配置出口路由器之前需要准备如下数据:公网IP地址:1.1.1.2/30,公网网关地址:1.1.1.1,DNS地址:8.8.8.8,这些参数在申请宽带的时候由运营商提供,实际网络中请以运营商提供的数据为准。

  1. 配置出口路由器内网接口和公网接口的IP地址。

    [Router] interface GigabitEthernet 0/0/1
    [Router-GigabitEthernet0/0/1] ip address 1.1.1.2 30
    [Router] interface GigabitEthernet 1/0/0
    [Router-GigabitEthernet1/0/0] ip address 10.10.100.2 24
    
  2. 配置允许上网的acl,将所有允许访问Internet的用户网段写入该acl 。

    [Router] acl 2000
    [Router-acl-basic-2000] rule permit source 10.10.10.0 0.0.0.255
    [Router-acl-basic-2000] rule permit source 10.10.20.0 0.0.0.255
    [Router-acl-basic-2000] rule permit source 10.10.100.0 0.0.0.255
    
  3. 在连接公网的接口配置NAT转换实现内网用户访问Internet。

    [Router] interface GigabitEthernet 0/0/1
    [Router-GigabitEthernet0/0/1] nat outbound 2000
    
  4. 配置到内网的明细路由和到公网的静态缺省路由。

    [Router] ip route-static 10.10.10.0 255.255.255.0 10.10.100.1
    [Router] ip route-static 10.10.20.0 255.255.255.0 10.10.100.1
    [Router] ip route-static 0.0.0.0 0.0.0.0 1.1.1.1
    
  5. 配置DNS地址解析功能,DNS服务器地址为运营商给的。

    [Router] dns resolve
    [Router] dns server 8.8.8.8
    [Router] dns proxy enable
    

配置DHCP Snooping和IPSG

配置了DHCP功能之后,部门内用户主机可以自动获取地址。但是为了防止员工在内网私自接一个小路由器并开启DHCP自动分配地址的功能,导致内网合法用户获取到了私接的小路由器分配的地址而不能正常上网,还需要配置DHCP Snooping功能。

以下以部门A为例,说明DHCP Snooping的配置过程。

  1. 在接入交换机ACC1上开启DHCP Snooping功能。

    <ACC1> system-view
    [ACC1] dhcp enable  //使能DHCP功能
    [ACC1] dhcp snooping enable //使能DHCP Snooping功能
    
  2. 在连接DHCP服务器的接口上使能DHCP Snooping功能,并将此接口配置为信任接口。

    [ACC1] interface eth-trunk 1
    [ACC1-Eth-Trunk1] dhcp snooping enable   //使能DHCP Snooping功能
    [ACC1-Eth-Trunk1] dhcp snooping trusted  //配置为信任接口
    [ACC1-Eth-Trunk1] quit
    
  3. 在连接终端的接口上使能DHCP Snooping功能。

    [ACC1] interface ethernet 0/0/2               //配置连接PC1的接口
    [ACC1-Ethernet0/0/2] dhcp snooping enable 
    [ACC1-Ethernet0/0/2] quit
    [ACC1] interface ethernet 0/0/3              //配置连接PC2的接口
    [ACC1-Ethernet0/0/3] dhcp snooping enable 
    [ACC1-Ethernet0/0/3] quit
    [ACC1] interface ethernet 0/0/4              //配置连接打印机的接口
    [ACC1-Ethernet0/0/4] dhcp snooping enable 
    [ACC1-Ethernet0/0/4] quit
    

    完成上述配置之后,部门A的用户就可以从合法的DHCP服务器获取IP地址,内网私接的小路由器分配地址不会干扰到内网正常用户。为了防止部门内用户私自更改IP地址后攻击网络,在接入交换机开启DHCP Snooping功能后,还需要开启IP报文检查功能,具体配置以ACC1为例。

  4. 在接入交换机ACC1上开启VLAN10的IP报文检查功能。

    [ACC1] vlan10
    [ACC1-vlan10] ip source check user-bind enable //使能IP报文检查功能
    [ACC1-vlan10] quit
    
    这样ACC1从VLAN10收到报文后会将报文与动态绑定表的表项进行匹配,放行匹配的报文,丢弃不匹配的报文。如果不想对整个VLAN收到的报文进行检查,可以只在连接某个终端的接口上开启IP报文检查功能。

业务验证

  1. 部门内部选两台PC进行ping测试,验证部门内部二层互通是否正常。以部门A为例, PC1和PC2是通过ACC1实现二层互通的。如果PC1和PC2之间互ping测试正常则说明二层互通正常。

    <PC1> ping  10.10.10.100      //假设PC2通过DHCP自动获取的IP地址为10.10.10.100
     PING 10.10.10.100 data bytes, press CTRL_C to break
        Reply from 10.10.10.100  : bytes=56 Sequence=1 ttl=253 time=62 ms
        Reply from 10.10.10.100 : bytes=56 Sequence=2 ttl=253 time=16 ms 
        Reply from 10.10.10.100 : bytes=56 Sequence=3 ttl=253 time=62 ms
        Reply from 10.10.10.100 : bytes=56 Sequence=4 ttl=253 time=94 ms
        Reply from 10.10.10.100 : bytes=56 Sequence=5 ttl=253 time=63 ms
    
     --- 10.10.10.100 ping statistics --- 
        5 packet(s) transmitted 
        5 packet(s) received         //能Ping通,说明PC1与PC2之间二层互通正常
    
  2. 从两个部门内各选一台PC进行ping测试,验证部门之间通过VLANIF实现三层互通是否正常。部门A和部门B之间的用户是通过CORE上的VLANIF实现三层互通的。如果PC1和PC3之间互ping测试正常则说明两个部门之间通过VLANIF实现三层互通正常。ping测试命令与步骤1类似。

  3. 每个部门各选一台PC进行ping公网地址测试,验证公司内网用户访问Internet是否正常。以部门A为例,一般可以通过在PC1上ping公网网关地址(即与出口路由器对接的运营商设备的IP地址)来验证是否可以访问Internet,如果ping测试正常则说明内网用户访问Internet正常。ping测试命令与步骤1类似。

保存配置

通过命令行配置的数据是临时性的。如果不保存,交换机重启后这些配置都会丢失。

如果要使当前配置在交换机重启后仍然有效,需要将当前配置保存为配置文件。

保存配置。(以CORE举例)

<CORE> save
The current configuration will be written to the device. 
Are you sure to continue?[Y/N]y 
Now saving the current configuration to the slot 0.. 
Save the configuration successfully.

1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/98520.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何高效进行测试用例评审

1.用例评审的目的 为了减少测试人员执行阶段做无效工作&#xff0c;执行无效case&#xff0c;提交无效缺陷&#xff08;可以友情提醒研发同学&#xff0c;讲到自己负责的相关模块时&#xff0c;注意下是否存在异议点&#xff09;为了避免三方&#xff08;产品、研发、测试&…

使用C语言计算1/1-1/2+1/3-1/4+...+1/99-1/100

观察算式&#xff0c;发现分子都是1&#xff0c;分母从1~100&#xff0c;所以可以使用for循环产生1~100之间的数。 另一个问题是&#xff0c;如何产生正负交替的符号&#xff1f;很简单&#xff0c;这个符号本质上就是往每一项前面乘一个系数&#xff1a;一或者负一。所以只需…

【数据结构练习】单链表OJ题(二)

目录 一、相交链表二、环形链表1三、环形链表2四、链表分割五、复制带随机指针的链表 一、相交链表 题目&#xff1a; 示例&#xff1a; 注意&#xff1a;不能根据节点的值来比较是否相交&#xff0c;而是根据节点在内存中是否指向相同的位置。 例如以上图&#xff1a; 链表…

无涯教程-Android - RadioButton函数

RadioButton有两种状态:选中或未选中,这允许用户从一组中选择一个选项。 Radio Button 示例 本示例将带您完成一些简单的步骤,以展示如何使用Linear Layout和RadioButton创建自己的Android应用程序。 以下是修改后的主要Activity文件 src/MainActivity.java 的内容。 packa…

数学建模:数据的预处理

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 文章目录 数据预处理数据变换数据清洗缺失值处理异常值处理 数据预处理 数据变换 常见的数据变换的方式&#xff1a;通过某些简单的函数进行数据变换。 x ′ x 2 x ′ x x ′ log ⁡ ( x ) ∇ f ( x k )…

MATLAB中mod函数转化为C语言

背景 有项目算法使用matlab中mod函数进行运算&#xff0c;这里需要将转化为C语言&#xff0c;从而模拟算法运行&#xff0c;将算法移植到qt。 MATLAB中mod简单介绍 语法 b mod(a,m) 说明 b mod(a,m) 返回 a 除以 m 后的余数&#xff0c;其中 a 是被除数&#xff0c;m 是…

储能辅助电力系统调峰的容量需求研究(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《储能辅助电力系统调峰的容量需求研究》&#xff0c;是一个很常规很经典的matlab优化代码&#xff0c;主要是对火电、风电和储能等电力设备主体进行优化调度&#xff0c;在调峰能力达不到时采…

Java 面试 - Redis

Redis Redis 是基于键值对的非关系型数据库。Redis 拥有string、hash、list、set、zset等多种数据结构, redis具有惊人的读写性能, 其优秀的持久化机制是的它在断电和机械故障时也不会发生数据丢失, 可以用于热点数据存放, 还提供了键过期、发布订阅、食物、流水线、LUA脚本等多…

创建聊天机器人:产品专属ChatGPT智能问答机器人,可添加任意网站

ChatGPT智能问答机器人可以广泛应用于各种SaaS产品&#xff0c;通过创建聊天机器人可以快速反馈用户&#xff0c;并且针对性的提供解决方案&#xff0c;非常高效的完成客户问答反馈。 聊天机器人是生活中常见的一种交互方式&#xff0c;机器人根据用户输入的关键字&#xff0c;…

ChatGPT~Error1015You are being rate limited

目录 问题背景 问题的原因 下来说说解决方案 总结 问题背景 今天使用Chatgpt的时候突然出现"You are being rate limited"的错误提示。 问题的原因 小问题了&#xff0c;又不是第一次被弄出来了&#xff0c;莫慌。 让我们先看看Chatgpt自己是怎么解释这个问题…

JVM类加载器

一、类与类加载器 类加载器虽然只用于实现类的加载动作&#xff0c;但它在Java程序中起到的作用却远超类加载阶段。对于 任意一个类&#xff0c;都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性&#xff0c;每一个类加载器&#xff0c;都拥有一个独…

win | wireshark | 在win上跑lua脚本 解析数据包

前提说明&#xff1a;之前是在linux 系统上配置的&#xff0c;然后现在 在配置lua 脚本 &#xff0c;然后 分析指定协议 的 数据包 其实流程也比较简单&#xff0c;但 逻辑需要缕清来 首先要把你 预先准备的 xxx.lua 文件放到wireshark 的安装文件中&#xff0c;&#xff08;我…

并发编程的故事——共享模式之无锁

共享模式之无锁 文章目录 共享模式之无锁一、提出问题二、CAS和volatile三、原子整数四、原子引用五、原子数组六、原子更新器七、原子累加器八、unsafe 一、提出问题 关于对共享变量修改的多线程问题其实就是指令交错问题导致取值的时机相同&#xff0c;最后修改之后以最后一…

ChatGPT 制作可视化柱形图突出显示第1名与最后1名

对比分析柱形图的用法。在图表中显示最大值与最小值。 像这样的动态图表的展示只需要给ChatGPT,AIGC,OpenAI 发送一个指令就可以了, 人工智能会快速的写出HTML与JS代码来实现。 请使用HTML,JS,Echarts完成一个对比分析柱形图,在图表中突出显示第1名和最后1名用单独一种不…

数据结构--树4.2.2(二叉树--遍历)

目录 一、二叉树的建立 二、二叉树的遍历算法 一、二叉树的建立 CreateBitree(Bitree *t){char c;scanf("%c",&c);if( c){*t NULL;}else{*t(Bitnode*)malloc(sizeof(Bitnode));(*t)->data c;CreateBitree(&(*t)->lchild);CreateBitree(&(*t)-&…

C++ 手写实现类似lower_bound和upper_bound的二分功能

目录 lower_bound和upper_bound介绍手动实现类似的二分效果lower_boundupper_bound另一种常见的二分形式 对lower_bound函数使用lamda函数 lower_bound和upper_bound介绍 lower_bound函数的作用是查找范围内第一个大于等于目标元素的元素迭代器/指针 数组的简单使用&#xff…

vscode 与 C++

序 具体流程的话&#xff0c;官方文档里都有的&#xff1a;C programming with Visual Studio Code 浏览器下载一个mingw64&#xff0c;解压&#xff0c;配置环境变量vscode里安装c相关的插件没了 第一步只看文字&#xff0c;可能有点抽象&#xff0c;相关视频&#xff1a; …

科技云报道:AI+云计算共生共长,能否解锁下一个高增长空间?

科技云报道原创。 在过去近一年的时间里&#xff0c;AI大模型从最初的框架构建&#xff0c;逐步走到落地阶段。 然而&#xff0c;随着AI大模型深入到千行百业中&#xff0c;市场开始意识到通用大模型虽然功能强大&#xff0c;但似乎并不能完全满足不同企业的个性化需求。 大…

Three.js后处理后物体表面出现条纹

初始化 WebGLRenderer 时简单启用 logarithmicDepthBuffer: true 解决了问题。 根据文档&#xff0c;启用可能会导致性能下降&#xff0c;因此请根据您的性能预算考虑使用它。 缩小相机的near和far 后处理对于深度精度非常敏感。大视锥体很快就会使此类 AO 通道变得无法使用 th…

因果推断(六)基于微软框架dowhy的因果推断

因果推断&#xff08;六&#xff09;基于微软框架dowhy的因果推断 DoWhy 基于因果推断的两大框架构建&#xff1a;「图模型」与「潜在结果模型」。具体来说&#xff0c;其使用基于图的准则与 do-积分来对假设进行建模并识别出非参数化的因果效应&#xff1b;而在估计阶段则主要…