我有一个Linux DHCP服务器,我需要将所有网络流量重定向到一个登陆页面,该登陆页面将提供有关如何在网络上注册计算机的说明。
无论用户输入什么网址,都需要将用户重定向到网页(在DHCP服务器上)。
即:用户输入google.com,他们会立即重定向到192.168.10.1。此DHCP服务器永远不会用于访问Web。一旦用户获得从登录页面注册其计算机的指令,它们将被列入该特定DHCP服务器的黑名单,并被迫从主DHCP服务器请求IP。
如何创建这样的重定向?
答案 0 :(得分:3)
您似乎正在尝试设置所谓的强制门户网站。
这有几个组件,其中一个确实是DHCP服务器,但这不是最关键的一个。
简短概述
您的网络至少包含以下组件:
客户端将从DHCP服务器获取IP地址,并将被告知使用您的DNS服务器和网关。
解决方案1:基于DNS的重定向
在用户登录DNS服务器之前,请回复登录Web服务器的IP地址。注意在DNS回复中设置非常低的TTL。您希望确保客户端浏览器在登录后重新解析IP地址。
这很可能会导致除端口80上的网页浏览之外的任何应用程序出现问题。
解决方案2:TCP拦截
这是一个稍微难点的解决方案,但可能会更好。 DNS服务器始终为客户端尝试访问的任何网站返回正确的IP地址。 网关将端口80上的TCP会话重定向到登录服务器。 所有其他数据包应该收到ICMP错误回复(例如网络不可达)。