理论.note
一、基本概念
- DHCP服务器的作用
1.
DHCP服务器负责管理和分配IP地址给网络上的设备。它可以配置IP地址、子网掩码、默认网关以及其他网络参数,以确保设备能够正确地与网络进行通信。DHCP服务器可以动态分配IP地址,这意味着当设备加入网络时,DHCP服务器会自动为其分配一个可用的IP地址,而无需手动配置每个设备的IP地址。
- DHCP中继的作用
1.
DHCP中继是一种设备,通常位于网络中继点,它的作用是将DHCP请求从一个子网中的客户端转发到位于另一个子网中的DHCP服务器。这样,即使客户端和DHCP服务器不在同一个子网上,客户端仍然可以获得IP地址分配和配置。DHCP中继接收客户端的DHCP请求,并将其转发到预定的DHCP服务器。DHCP服务器接收到请求后,将生成一个DHCP响应,并通过中继返回给客户端。
- DHCP服务器和DHCP中继的关系
1.
DHCP服务器和DHCP中继是协同工作的组件,它们通常在大型网络中一起使用,以提供IP地址配置的灵活性。当DHCP客户端位于不同的子网上时,DHCP中继负责将客户端的请求转发给正确的DHCP服务器,并将服务器的响应返回给客户端。这样,DHCP中继充当了客户端和服务器之间的桥梁。
- 路由问题
1.

DHCP Relay会将来自客户端的DHCP请求打包成UDP数据包,并在数据包中添加一些特殊的选项字段(如GIADDR,即Gateway IP Address),以便DHCP服务器能够识别出该请求是来自哪个子网的客户端,并进行相应的IP地址分配。
那么此时,该属于包会使用接收客户端DHCP请求的接口IP作为源地址,目标地址则为接口设定的DHCP服务器地址。
思考问题:作为数据包的起源和常规通信有什么区别?比如,在DHCP_relay上执行ping操作的区别?
二、配置过程
1|基础配置
DHCP_server(config)#ip dhcp pool Net10
DHCP_server(dhcp-config)#network 192.168.10.0 /24
DHCP_server(dhcp-config)#default-router 192.168.10.254
DHCP_server(dhcp-config)#dns-server 114.114.114.114
DHCP_server(dhcp-config)#option 150 ip 192.168.10.254
DHCP_server(dhcp-config)#domain-name nsa.ts
DHCP_server(dhcp-config)#exit
DHCP_relay(config)#int gi 0/1
DHCP_relay(config-if)#ip helper-address 12.1.1.1
2|解决路由问题
DHCP_server(config)#do ping 192.168.10.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.254, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
DHCP_server(config)#ip route 192.168.10.0 255.255.255.0 12.1.1.2
DHCP_server(config)#do ping 192.168.10.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
DHCP_server(config)#end
3|客户端测试(成功获取地址)
DHCP_server#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.10.1 ff00.0ce5.9e00.0100. Jun 15 2023 12:57 AM Automatic
012c.1bcd.3f52.5400.
0ce5.9e
4|给主机动态分配固定IP
DHCP_server(config)#ip dhcp pool debian-host
DHCP_server(dhcp-config)#host 192.168.1.100
DHCP_server(dhcp-config)#client-identifier ff00.0ce5.9e00.0100.012c.1bcd.3f52.5400.0ce5.9e
% A binding for this client already exists. // 如果已经获取地址,需要解绑。
DHCP_server(dhcp-config)#do clear ip dhcp binding *
DHCP_server(dhcp-config)#client-identifier ff00.0ce5.9e00.0100.012c.1bcd.3f52.5400.0ce5.9e
DHCP_server(dhcp-config)#do show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.10.100 ff00.0ce5.9e00.0100. Infinite Manual
012c.1bcd.3f52.5400.
0ce5.9e
5|客户端重启网络测试/检查
root@debian:~# systemctl restart networking.service
root@debian:~# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:0c:e5:9e brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet 192.168.10.100/24 brd 192.168.10.255 scope global dynamic ens3
valid_lft 86400sec preferred_lft 86400sec
inet6 fe80::5054:ff:fe0c:e59e/64 scope link tentative
valid_lft forever preferred_lft forever
root@debian:~# ip route
default via 192.168.10.254 dev ens3
192.168.10.0/24 dev ens3 proto kernel scope link src 192.168.10.100
root@debian:~# cat /etc/resolv.conf
domain nsa.ts
search nsa.ts
nameserver 114.114.114.114
root@debian:~# cat /var/lib/dhcp/dhclient.ens3.leases
default-duid "\000\001\000\001,\033\315?RT\000\014\345\236";
lease {
interface "ens3";
fixed-address 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.254;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 114.114.114.114;
option dhcp-server-identifier 12.1.1.1;
option dhcp-renewal-time 43200;
option dhcp-rebinding-time 75600;
option domain-name "nsa.ts";
renew 3 2023/06/14 01:05:19;
rebind 3 2023/06/14 01:05:19;
expire 3 2023/06/14 01:05:19;
}
lease {
interface "ens3";
fixed-address 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.254;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 114.114.114.114;
option dhcp-server-identifier 12.1.1.1;
option dhcp-renewal-time 43200;
option dhcp-rebinding-time 75600;
option domain-name "nsa.ts";
renew 3 2023/06/14 11:02:20;
rebind 3 2023/06/14 22:05:19;
expire 4 2023/06/15 01:05:19;
}
三、DHCP Snooping
DHCP Snooping(DHCP监听)是一种网络安全功能,用于保护局域网中的设备免受DHCP欺骗攻击。DHCP Snooping在交换机上实施,它监控和验证通过交换机发送和接收的DHCP消息,以防止未经授权的DHCP服务器和欺骗行为。
- DHCP Snooping的工作原理
1.
- DHCP Snooping通过在交换机上建立一个可信任的接口列表来开始。通常,这些接口是连接到受信任的DHCP服务器的接口,如网络管理员知道的接口。
1.
- 交换机会监听通过非可信任接口接收到的DHCP报文,包括DHCP Discover、Request、Offer和ACK等消息。
1.
- DHCP Snooping会验证报文中的源IP地址、MAC地址和租约信息,确保它们与交换机记录的信息匹配。
1.
- 如果报文的信息不符合预期,交换机可以选择性地丢弃或转发该报文,以防止恶意DHCP服务器或欺骗行为对网络设备进行攻击。
1.
- DHCP Snooping的功能
1.
- 防止未经授权的DHCP服务器:DHCP Snooping可以阻止未经授权的DHCP服务器在网络中提供IP地址和配置信息。只有在可信任接口上接收到的DHCP服务器提供的报文才会被转发。
1.
- 防止DHCP欺骗攻击:DHCP Snooping可以防止恶意用户通过欺骗方式发送虚假DHCP响应或请求,从而获得其他设备的IP地址或干扰网络正常运行。
1.
- 动态绑定和安全绑定:DHCP Snooping可以将已分配的IP地址与设备的MAC地址进行绑定,形成动态绑定表。这样可以确保每个设备只能获得其绑定的IP地址,并提供了一层额外的网络安全保护。
1.
需要注意的是,为了正确使用DHCP Snooping,网络管理员需要正确配置交换机上的可信任接口,并定期维护动态绑定表。这样可以确保DHCP Snooping功能正常运行,并提供网络设备的安全和保护。
- Option 82(选项82)的功能
1.
Option 82(选项82)是DHCP Snooping中的一个附加选项,也称为DHCP Relay Agent Information Option。它在DHCP Snooping过程中扮演着重要的角色,用于增强网络的安全性和跟踪能力。
- 客户端身份标识:Option 82允许交换机在转发DHCP请求时,在报文中添加客户端的身份标识信息。这些标识信息可以包括端口号、交换机的MAC地址、VLAN号等,用于标识DHCP请求的来源。
1.
- DHCP报文跟踪:通过Option 82,交换机可以在转发DHCP请求时,将自身的信息(如接口、交换机标识等)添加到报文中。这样,当DHCP服务器收到请求并生成响应时,Option 82的信息也会被包含在响应中。这个机制可以帮助网络管理员跟踪DHCP报文的路径和处理过程,以便故障排除和网络调试。
1.
- 防止DHCP欺骗:Option 82可以用于验证DHCP报文的合法性,防止恶意用户通过伪造DHCP报文进行欺骗攻击。DHCP Snooping可以检查报文中的Option 82信息,并与交换机记录的信息进行比对,确保报文的来源和内容是合法的。
1.
- IP地址池分配控制:Option 82可以用于基于特定的Option 82信息,对不同的客户端或设备分配不同的IP地址池。这样可以实现细粒度的IP地址管理和控制,确保每个客户端或设备获得合适的IP地址。
1.
需要注意的是,Option 82的使用需要在交换机上正确配置,同时也需要DHCP服务器支持解析和处理Option 82信息。这样才能充分发挥Option 82在DHCP Snooping中的作用,并提升网络的安全性和管理能力。
- 配置参考
1.
SW1(config)#ip dhcp snooping
SW1(config)#ip dhcp snooping vlan 1
SW1(config)#int gi 0/0
SW1(config-if)#ip dhcp snooping trust
SW1(config-if)#end
SW1#show ip dhcp snooping
Switch DHCP snooping is enabled
Switch DHCP gleaning is disabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:
Insertion of option 82 is enabled
circuit-id default format: vlan-mod-port
remote-id: 5254.0007.582c (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:
Interface Trusted Allow option Rate limit (pps)
----------------------- ------- ------------ ----------------
GigabitEthernet0/0 yes yes unlimited
Custom circuit-ids:
root@debian:~# systemctl restart networking.service
root@debian:~# ip add // 获取IP地址失败;
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:0c:e5:9e brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet6 fe80::5054:ff:fe0c:e59e/64 scope link
valid_lft forever preferred_lft forever
1|解决方法一
SW1(config)#no ip dhcp snooping information option
SW1(config)#end
SW1#show ip dhcp snooping
Switch DHCP snooping is enabled
Switch DHCP gleaning is disabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:
Insertion of option 82 is disabled // 禁用option 82
circuit-id default format: vlan-mod-port
remote-id: 5254.0007.582c (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:
Interface Trusted Allow option Rate limit (pps)
----------------------- ------- ------------ ----------------
GigabitEthernet0/0 yes yes unlimited
Custom circuit-ids:
SW1#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
52:54:00:0C:E5:9E 192.168.10.100 86393 dhcp-snooping 1 GigabitEthernet0/1
Total number of bindings: 1
2|其他解决???