在Ubuntu上启用DHCP Snooping,你需要按照以下步骤操作:
编辑netplan配置文件:
打开你的netplan配置文件,通常位于/etc/netplan/目录下,例如01-netcfg.yaml。
sudo nano /etc/netplan/01-netcfg.yaml
添加DHCP Snooping配置:
在network部分下添加DHCP Snooping的相关配置。以下是一个示例配置:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
dhcp6: no
addresses:
- 192.168.1.10/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
optional: true
dhcp4-overrides:
use-dns: false
set-name: eth0
dhcp-snooping:
trusted-interface: eth0
port-security:
- port: 1
mac-address: 00:11:22:33:44:55
ip-address: 192.168.1.10
在这个示例中:
trusted-interface:指定信任的接口,通常是连接到DHCP服务器的接口。port-security:可以配置特定端口的MAC地址和IP地址绑定。应用配置: 保存并关闭文件后,应用新的网络配置:
sudo netplan apply
如果你不想使用netplan,也可以通过iptables来启用DHCP Snooping。以下是步骤:
启用IP转发(如果尚未启用):
sudo sysctl -w net.ipv4.ip_forward=1
为了使更改永久生效,编辑/etc/sysctl.conf文件并添加以下行:
net.ipv4.ip_forward=1
配置iptables规则:
假设你的DHCP服务器连接到eth0接口,客户端连接到eth1接口。
sudo iptables -t mangle -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A INPUT -i eth1 -p udp --dport 67:68 -j ACCEPT
sudo iptables -A INPUT -i eth1 -p udp --sport 67:68 -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p udp --dport 67:68 -j DROP
sudo iptables -A INPUT -i eth0 -p udp --sport 67:68 -m state --state ESTABLISHED,RELATED -j DROP
这些规则将允许DHCP请求从客户端到服务器,并阻止从服务器到客户端的DHCP响应。
保存iptables规则:
为了使iptables规则在重启后仍然有效,你可以使用iptables-persistent工具:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
eth0)和MAC地址正确无误。通过以上步骤,你应该能够在Ubuntu上成功启用DHCP Snooping。