链路聚合 DHCP
链路聚合
链路聚合
华为默认为手工模式: 两个线同时工作 LACP:主备模式 可以指定那个线是工作模式,那个线再备份模式
- 链路聚合是把两台设备之间的多条物理链路聚合在一起,当做一条逻辑链路来使用。这两台设备可以是一对路由器,一对交换机,或者是一台路由器和一台交换机。一条聚合链路可以包含多条成员链路,在ARG3系列路由器和X7系列交换机上默认最多为8条。
- 链路聚合能够提高链路带宽。理论上,通过聚合几条链路,一个聚合口的带宽可以扩展为所有成员口带宽的总和,这样就有效地增加了逻辑链路的带宽。
- 链路聚合为网络提供了高可靠性。配置了链路聚合之后,如果一个成员接口发生故障,该成员口的物理链路会把流量切换到另一条成员链路上。
- 链路聚合还可以在一个聚合口上实现负载均衡,一个聚合口可以把流量分散到多个不同的成员口上,通过成员链路把流量发送到同一个目的地,将网络产生拥塞的可能性降到最低。
链路聚合模式
- 链路聚合包含两种模式:手动负载均衡模式和LACP(Link Aggregation Control Protocol)模式。
- 手工负载分担模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式。ARG3系列路由器和X7系列交换机可以基于目的MAC地址,源MAC地址,或者基于源MAC地址和目的MAC地址,源IP地址,目的IP地址,或者基于源IP地址和目的IP地址进行负载均衡。
- 在LACP模式中,链路两端的设备相互发送LACP报文,协商聚合参数。协商完成后,两台设备确定活动接口和非活动接口。在LACP模式中,需要手动创建一个Eth-Trunk口,并添加成员口。LACP协商选举活动接口和非活动接口。LACP模式也叫M:N模式。M代表活动成员链路,用于在负载均衡模式中转发数据。N代表非活动链路,用于冗余备份。如果一条活动链路发生故障,该链路传输的数据被切换到一条优先级最高的备份链路上,这条备份链路转变为活动状态。
- 两种链路聚合模式的主要区别是:在LACP模式中,一些链路充当备份链路。在手动负载均衡模式中,所有的成员口都处于转发状态。
数据流控制
- 在一个聚合口中,聚合链路两端的物理口(即成员口)的所有参数必须一致,包括物理口的数量,传输速率,双工模式和流量控制模式。成员口可以是二层接口或三层接口。
- 数据流在聚合链路上传输,数据顺序必须保持不变。一个数据流可以看做是一组MAC地址和IP地址相同的帧。例如,两台设备间的SSH或SFTP连接可以看做一个数据流。如果未配置链路聚合,只是用一条物理链路来传输数据,那么一个数据流中的帧总是能按正确的顺序到达目的地。配置了链路聚合后,多条物理链路被绑定成一条聚合链路,一个数据流中的帧通过不同的物理链路传输。如果第一个帧通过一条物理链路传输,第二个帧通过另外一条物理链路传输,这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
- 为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
- 负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型。
- 根据报文的源MAC地址进行负载分担;
- 根据报文的目的MAC地址进行负载分担;
- 根据报文的源IP地址进行负载分担;
- 根据报文的目的IP地址进行负载分担;
- 根据报文的源MAC地址和目的MAC地址进行负载分担;
- 根据报文的源IP地址和目的IP地址进行负载分担;
- 根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。
二层链路聚合配置
- 本例中,通过执行interface Eth-trunk 命令配置链路聚合。这条命令创建了一个Eth-Trunk口,并且进入该Eth-Trunk口视图。trunk-id用来唯一标识一个Eth-Trunk口,该参数的取值可以是0到63之间的任何一个整数。如果指定的Eth-Trunk口已经存在,执行interface eth-trunk命令会直接进入该Eth-Trunk口视图。
- 配置Eth-Trunk口和成员口,需要注意以下规则:
- 只能删除不包含任何成员口的Eth-Trunk口。
- 把接口加入Eth-Trunk口时,二层Eth-Trunk口的成员口必须是二层接口,三层Eth-Trunk口的成员口必须是三层接口。
- 一个Eth-Trunk口最多可以加入8个成员口。
- 加入Eth-Trunk口的接口必须是hybrid接口(默认的接口类型)。
- 一个Eth-Trunk口不能充当其他Eth-Trunk口的成员口。
- 一个以太接口只能加入一个Eth-Trunk口。如果把一个以太接口加入另一个Eth-Trunk口,必须先把该以太接口从当前所属的Eth-Trunk口中删除。
一个Eth-Trunk口的成员口类型必须相同。例如,一个快速以太口(FE口)和一个千兆以太口(GE口)不能加入同一个Eth-Trunk。 - 位于不同接口板(LPU)上的以太口可以加入同一个Eth-Trunk口。如果一个对端接口直接和本端Eth-Trunk口的一个成员口相连,该对端接口也必须加入一个Eth-Trunk口。否则两端无法通信。
- 如果成员口的速率不同,速率较低的接口可能会拥塞,报文可能会被丢弃。
- 接口加入Eth-Trunk口后,Eth-Trunk口学习MAC地址,成员口不再学习。
- 执行display interface eth-trunk 命令,可以确认两台设备间是否已经成功实现链路聚合。也可以使用这条命令收集流量统计数据,定位接口故障。如果Eth-Trunk口处于UP状态,表明接口正常运行。如果接口处于Down状态,表明所有成员口物理层发生故障。如果管理员手动关闭端口,接口处于Administratively DOWN状态。可以通过接口状态的改变发现接口故障,所有接口正常情况下都应处于Up状态。
三层链路聚合配置
- 如果要在路由器上配置三层链路聚合,需要首先创建Eth-Trunk接口,然后在Eth-Trunk逻辑口上执行undo portswitch命令,把聚合链路从二层转为三层链路。执行undo portswitch命令后,可以为Eth-Trunk逻辑口分配一个IP地址。
配置命令
//创建一个Eth-Trunk 再端口下响应加入创建的这个Trunk
[SW1]interface Eth-Trunk 1
[SW1-GigabitEthernet0/0/11]eth-trunk 1
[SW1-GigabitEthernet0/0/10]eth-trunk 1
//添加聚合链路的物理链路
[SW1-Eth-Trunk5]trunkport GigabitEthernet 0/0/1 to 0/0/3
//负载分担方式使用手工分担,默认配置不会显示
[SW1-Eth-Trunk5]mode manual load-balance
//查看Eth-Trunk
[SW1]display eth-trunk
//查看二层接口状态
[SW1]dis interface brief
//切换为我lacp模式状态 必须再初始的情况下才可以配置
[SW1-Eth-Trunk1]mode lacp-static
//清除接口下的配置
[SW1]clear configuration interface Eth-Trunk 1
//交换机与路由器之间聚合配置.
//把这个接口变成三层接口
[AR1-Eth-Trunk1]undo portswitch
DHCP
DHCP应用场景
- 在大型企业网络中,一般会有大量的主机等终端设备。每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址。但是在大中型网络中,终端数量很多,手动配置IP地址工作量大,而且配置时容易导致IP地址冲突等错误。
- DHCP可以为网络终端动态分配IP地址,解决了手工配置IP地址时的各种问题。
DHCP报文类型
DHCP DISCOVER:客户端以广播的形式去请求 寻找dhcp服务器 DHCP OFFER: 服务器端 响应客户端发来的DHCP
DISCOVER ,携带了各种配置信息 (类似面试发送了一公司简历,工资,工作内容等) DHCP REQUESR:客户端 看了DHCP
OFFER 发来的信息自己可以接受服务器发来的配置信息,然后去确认请求这个配置(看了公司简历说我可以接收这份工作) DHCP ACK:
服务器端确认下发给客户端REQUEST的请求 DHCP NAK:服务器端拒绝下发给客户端REQUEST的请求 DHCP RELEASE
客户端提前通知服务器自己要释放地址
- DHCP客户端初次接入网络时,会发送DHCP发现报文(DHCP Discover),用于查找和定位DHCP服务器。
- DHCP服务器在收到DHCP发现报文后,发送DHCP提供报文(DHCP Offer),此报文中包含IP地址等配置信息。
- 在DHCP客户端收到服务器发送的DHCP提供报文后,会发送DHCP请求报文(DHCP Request),另外在DHCP客户端获取IP地址并重启后,同样也会发送DHCP请求报文,用于确认分配的IP地址等配置信息。DHCP客户端获取的IP地址租期快要到期时,也发送DHCP请求报文向服务器申请延长IP地址租期。
- 收到DHCP客户端发送的DHCP请求报文后,DHCP服务器会回复DHCP确认报文(DHCP ACK)。客户端收到DHCP确认报文后,会将获取的IP地址等信息进行配置和使用。
- 如果DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法分配合适IP地址。
- DHCP客户端通过发送DHCP释放报文(DHCP Release)来释放IP地址。收到DHCP释放报文后,DHCP服务器可以把该IP地址分配给其他DHCP客户端。
地址池
- ARG3系列路由器和X7系列交换机都可以作为DHCP服务器,为主机等设备分配IP地址。DHCP服务器的地址池是用来定义分配给主机的IP地址范围,有两种形式。
-
- 1 接口地址池为连接到同一网段的主机或终端分配IP地址。可以在服务器的接口下执行dhcp select interface命令,配置DHCP服务器采用接口地址池的DHCP服务器模式为客户端分配IP地址。
-
- 2 全局地址池为所有连接到DHCP服务器的终端分配IP地址。可以在服务器的接口下执行dhcp select global命令,配置DHCP服务器采用全局地址池的DHCP服务器模式为客户端分配IP地址。
- 接口地址池的优先级比全局地址池高。配置了全局地址池后,如果又在接口上配置了地址池,客户端将会从接口地址池中获取IP地址。在X7系列交换机上,只能在VLANIF逻辑接口上配置接口地址池。
DHCP工作原理
- 为了获取IP地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。
- 首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。DHCP服务器会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。
- 如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文,报文中包含请求的IP地址。收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文,包含提供的IP地址和其他配置信息。DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个IP地址。
IP地址释放
- 租期定时器是地址失效进程中的最后一个定时器,超时时间为IP地址的租期时间。如果DHCP客户端在租期失效定时器超时前没有收到服务器的任何回应,DHCP客户端必须立刻停止使用现有IP地址,发送DHCP Release报文,并进入初始化状态。然后,DHCP客户端重新发送DHCP发现报文,申请IP地址。
DHCP接口地址池配置
- DHCP支持配置两种地址池,包括全局地址池和接口地址池。
- dhcp enable命令用来使能DHCP功能。在配置DHCP服务器时,必须先执行dhcp enable命令,才能配置DHCP的其他功能并生效。
- dhcp select interface命令用来关联接口和接口地址池,为连接到接口的主机提供配置信息。在本示例中,接口GigabitEthernet 0/0/0被加入接口地址池中。
- dhcp server dns-list命令用来指定接口地址池下的DNS服务器地址。
- dhcp server excluded-ip-address命令用来配置接口地址池中不参与自动分配的IP地址范围。
- dhcp server lease命令用来配置DHCP服务器接口地址池中IP地址的租用有效期限功能。缺省情况下,接口地址池中IP地址的租用有效期限为1天。
- 每个DHCP服务器可以定义一个或多个全局地址池和接口地址池。本例中执行display ip pool命令查看接口地址池的属性。display信息中包含地址池的IP地址范围,还包括IP网关,子网掩码等信息。
DHCP全局地址池配置
- 在本示例中,配置了一个DHCP全局地址池。
- ip pool命令用来创建全局地址池。
- network命令用来配置全局地址池下可分配的网段地址。
- gateway-list命令用来配置DHCP服务器全局地址池的出口网关地址。
- lease命令用来配置DHCP全局地址池下的地址租期。缺省情况下,IP地址租期是1天。
- dhcp select global命令用来使能接口的DHCP服务器功能。
DHCP命令配置
//打开DHCP功能
[DHCP]dhcp enable
[DHCP]ip pool VLAN10
//创建一个地址池
[DHCP-ip-pool-VLAN10]network 192.168.10.0 mask 24
//创建网关
[DHCP-ip-pool-VLAN10]gateway-list 192.168.10.254
//DNS 第一个为主 第二个为备
[DHCP-ip-pool-VLAN10]dns-list 1.1.1.1 2.2.2.2
//再dhcp出接口上配置 意思就是再这个接口上可以接收discover报文的
[DHCP-GigabitEthernet0/0/0]dhcp select global
dhcp服务器(路由器)需要写一条默认静态路由,下一跳指向中继的网关
//DHCP中继 设备
[DHCP]dhcp enable
//开启中继
[GW-GigabitEthernet0/0/0.10]dhcp select relay
//指定dhcp服务器的地址
[GW-GigabitEthernet0/0/0.10]dhcp relay server-ip 192.168.100.1
//排除地址池的某些个地址不会被分配出去 这是一个范围
[R1-ip-pool-VLAN10]excluded-ip-address 192.168.10.200 192.168.10.252
//查看地址池中已经被分配的地址
[R1]dis ip pool name VLAN10 used
//释放地址池中正在使用的IP地址
//服务器释放IP地址后,PC上的IP地址不会马上被释放,要么手动释放,要么就是等待租期到了之后才会被释放
ipconfig /renew //释放PC的IP地址
<R1>reset ip pool name VLAN10 192.168.10.253
//绑定IP地址对应的MAC地址
[R1-ip-pool-VLAN10]static-bind ip-address 192.168.10.188 mac-address 5489-9825-790a
接口下配置DHCP
//网关不需要写 这个接口下的地址默认为网关
//他会根据这个接口下的IP地址 来分配IP地址
[R1-GigabitEthernet0/0/0]dhcp select interface
[R1-GigabitEthernet0/0/0]dhcp server dns-list 1.1.1.1 2.2.2.2
[R1-GigabitEthernet0/0/0]dhcp ser lease day 8
[R1-GigabitEthernet0/0/0]dhcp server static-bind ip-address 192.168.10.201 mac-a
ddress xxxx-xxxx-xxxx
[R1-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.10.1 192.168.10.200
//后面的名称必须写全,不可以用缩写
[R1]display ip pool interface GigabitEthernet0/0/0