这里有一个简单的拓扑图
交换机配置命令如下
The device is running! <Huawei> <Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sysname SW [SW] Sep 7 2023 15:00:57-08:00 SW DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25. 191.3.1 configurations have been changed. The current change number is 4, the ch ange loop count is 0, and the maximum number of records is 4095. [SW]undo info-center enable Info: Information center is disabled. [SW]vlan batch 10 20 Info: This operation may take a few seconds. Please wait for a moment...done. [SW]display vlan summary static vlan: Total 3 static vlan. 1 10 20 dynamic vlan: Total 0 dynamic vlan. reserved vlan: Total 0 reserved vlan. [SW]interface vlanif 10 [SW-Vlanif10]ip address 192.168.10.254 24 [SW-Vlanif10]quit [SW]interface vlanif 20 [SW-Vlanif20]ip address 192.168.20.254 24 [SW-Vlanif20]quit [SW]interface GigabitEthernet 0/0/1 [SW-GigabitEthernet0/0/1]port link-type access [SW-GigabitEthernet0/0/1]port default vlan 10 [SW-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2 [SW-GigabitEthernet0/0/2]port link-type access [SW-GigabitEthernet0/0/2]port default vlan 20 [SW-GigabitEthernet0/0/2]quit [SW]ping 192.168.20.1 PING 192.168.20.1: 56 data bytes, press CTRL_C to break Reply from 192.168.20.1: bytes=56 Sequence=1 ttl=128 time=30 ms Reply from 192.168.20.1: bytes=56 Sequence=2 ttl=128 time=30 ms Reply from 192.168.20.1: bytes=56 Sequence=3 ttl=128 time=30 ms Reply from 192.168.20.1: bytes=56 Sequence=4 ttl=128 time=40 ms Reply from 192.168.20.1: bytes=56 Sequence=5 ttl=128 time=40 ms --- 192.168.20.1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 30/34/40 ms [SW]display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 6 Routes : 6 Destination/Mask Proto Pre Cost Flags NextHop Interface 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 192.168.10.0/24 Direct 0 0 D 192.168.10.254 Vlanif10 192.168.10.254/32 Direct 0 0 D 127.0.0.1 Vlanif10 192.168.20.0/24 Direct 0 0 D 192.168.20.254 Vlanif20 192.168.20.254/32 Direct 0 0 D 127.0.0.1 Vlanif20
pc1的配置
IP地址:192.168.10.1
子网掩码:255.255.255.0
网关:192.168.10.254
pc2的配置
IP地址:192.168.20.1
子网掩码:255.255.255.0
网关:192.168.20.254
接下来我们用DHCP自动获取ip地址
1.DHCP的接口(interface)配置
interface Vlanif10 dhcp select interface dhcp server excluded-ip-address 192.168.10.101 192.168.10.253 //排除这些ip地址 dhcp server lease day 8 hour 0 minute 0//租期为8天 dhcp server dns-list 8.8.8.8
对pc1使用ipconfig
获得的是最大的地址192.168.10.100,因为101~253已经被我们排除,254为网关,最大的能分配的就是100
注:华为默认从最大的地址开始获取,思科默认从最小的地址开始获取
尝试抓包:这里可以结合DHCP的知识点进行学习
DHCP discover(广播)
DHCP offer(单播)
DHCP request(广播)
DHCP ack(单播)
注:这里的Gratuitous ARP(免费ARP)是请求自己的ip地址的mac地址,如果有响应,则表示ip地址冲突,如果无响应,则表示ip地址无冲突
2.DHCP的全局(global)配置
[SW]interface vlanif 20 [SW-Vlanif20]dhcp select global [SW-Vlanif20]quit [SW]ip pool 20 Info:It's successful to create an IP address pool. [SW-ip-pool-20]network 192.168.20.0 mask 24 //宣告地址池 [SW-ip-pool-20]gateway-list 192.168.20.254//设置网关 [SW-ip-pool-20]dns-list 9.9.9.9 [SW-ip-pool-20]lease 10 [SW-ip-pool-20]excluded-ip-address 192.168.20.151 192.168.20.253 [SW-ip-pool-20]quit
pc2的地址 :和前面同理,最大的地址为150
如果要撤销之前的DHCP操作
#就可以清除之前配置的地址池 interface vlan 10 undo dhcp select interface [SW]ip pool 10 Info:It's successful to create an IP address pool. [SW-ip-pool-20]network 192.168.10.0 mask 24 //宣告地址池 [SW-ip-pool-20]gateway-list 192.168.10.254//设置网关 [SW-ip-pool-20]dns-list 8.8.8.8 [SW-ip-pool-20]lease 10 [SW-ip-pool-20]excluded-ip-address 192.168.10.151 192.168.10.253 [SW-ip-pool-20]quit PC>ipconfig/renew //刷新
全局配置和接口配置最主要的区别在于
全局配置需要配置网关(gateway),接口配置则不需要
3.dhcp relay
dhcp relay是解决DHCP与PC不在同一个网段的问题
如下图所示,路由AR是会隔离广播的,所以DHCP的广播不能传到LSW2
这时候就要用到dhcp relay
DHCP Relay允许位于一个网络段(源网络段)的DHCP客户端通过中继设备发送DHCP请求到另一个网络段(目标网络段)上的DHCP服务器。
中继设备会接收DHCP请求消息,并将其转发到目标网络段上的DHCP服务器。DHCP服务器接收到请求后,将为客户端分配所需的IP地址和其他网络配置信息,并将响应消息通过中继设备返回给客户端。这样,DHCP Relay实现了跨网络段的DHCP功能。
DHCP Relay通常以两种方式进行配置:
代理模式(Agent mode):在代理模式下,中继设备拦截客户端的DHCP请求,并将其转发到目标网络段上的DHCP服务器。然后,将DHCP服务器的响应消息转发给客户端。
辅助模式(Helper mode):在辅助模式下,中继设备会将DHCP请求消息广播到目标网络段上的特定UDP端口,从而使DHCP服务器能够接收到该广播消息并提供响应。
4.dhcp snooping
DHCP Snooping(DHCP监听)是一种网络安全机制,用于保护本地网络免受恶意或未经授权的DHCP服务器攻击。DHCP Snooping通过监视和验证网络中的DHCP交互,阻止和过滤不受信任的DHCP消息,有效地防止恶意DHCP服务器攻击,如DHCP劫持或假冒。它提供了一层额外的安全性,确保网络中的DHCP交互仅限于受信任的DHCP服务器和客户端之间的通信。
在启用DHCP Snooping功能后,网络设备(通常是交换机)会监听在网络中传输的DHCP消息。它会记录并验证DHCP请求和响应消息的源MAC地址、IP地址、租期等信息,并与事先定义的合法DHCP服务器绑定进行比较。
dhcp snooping enable
DHCP Snooping工作原理如下:
启用DHCP Snooping:在交换机或网络设备上启用DHCP Snooping功能。
DHCP消息检查:交换机会监视所有通过其端口流过的DHCP消息。
DHCP消息分类:交换机根据DHCP消息的类型将其分类为“trusted”(可信)或“untrusted”(不可信)。通常,上联端口连接的是服务器,被认为是可信端口;其他端口被认为是不可信端口。
DHCP绑定表:当客户端通过DHCP请求获取IP地址时,交换机会将客户端的MAC地址与分配给它的IP地址进行动态绑定。交换机会构建一个DHCP绑定表,记录每个MAC地址和对应的IP地址、绑定端口等信息。DHCP Snooping维护一个绑定数据库,记录合法主机MAC地址、IP地址和端口之间的绑定关系。当合法主机首次向网络发出DHCP请求时,该绑定关系被学习并记录在绑定数据库中。
不可信端口过滤:网络设备上的端口可以配置为信任端口或未信任端口。信任端口用于连接已知可信的DHCP服务器,而未信任端口用于连接客户端设备。DHCP Snooping会对未信任端口上的DHCP消息进行过滤和验证。
DHCP数据包过滤:通过验证DHCP服务器发送的响应消息与请求消息是否匹配,DHCP Snooping能够阻止未经授权的DHCP服务器响应客户端的请求。只有与绑定数据库中记录的合法绑定关系匹配的响应消息才会被转发到客户端。如果接收到的DHCP消息被判定为非法或不合法,交换机可以选择丢弃该消息或将其标记为不可靠。这样可以防止非法DHCP服务器提供虚假的IP配置给客户端。
DHCP欺骗检测:交换机会检查DHCP请求和响应消息的源MAC地址、源IP地址等信息,防止DHCP欺骗攻击,即攻击者冒充合法DHCP服务器发送虚假消息。
interface GigabitEthernet 0/0/2 DHCP snooping TR//(trust)
5.option
- DHCP 协议支持多达 256 个不同的选项,其中
- 无线中常用
- option 43:给AP分配ip地址的同时,告诉AP,AC的地址
- 其他常见的option
- Option 1: 子网掩码(Subnet Mask)- 客户端使用该选项来获取子网掩码,以确定与该子网的通信范围。
- Option 3: 默认网关(Default Gateway)- 客户端使用该选项来获取默认网关的 IP 地址,以便进行与其他网络的通信。
- Option 6: DNS 服务器(Domain Name System Servers)- 客户端使用该选项来获取一个或多个 DNS 服务器的 IP 地址,以解析域名。
- Option 15: 域名(Domain Name)- DHCP 服务器使用该选项来传递本地域名信息给客户端。
- Option 51: IP 地址租期(IP Address Lease Time)- DHCP 服务器使用该选项来指定 DHCP 客户端分配的 IP 地址的租期时间。
- Option 66: 引导文件名(Bootfile Name)- DHCP 服务器使用该选项来指定客户端在引导过程中需要下载的引导文件的路径和名称。
- Option 150: TFTP 服务器地址(TFTP Server Address)- DHCP 服务器使用该选项来指定客户端在引导过程中用于 TFTP(Trivial File Transfer Protocol)的服务器地址。
- Option 252:当DHCP客户端通过DHCP协议获取IP地址时,DHCP服务器可以使用Option 252来提供PAC文件的URL。客户端可以通过读取Option 252中的值来下载PAC文件并自动配置浏览器的代理设置。