2

Linux DHCPサーバーがあり、すべてのWebトラフィックをランディングページにリダイレクトする必要があります。ランディングページには、コンピューターをネットワークに登録する方法が記載されています。

ユーザーが入力するURLに関係なく、ユーザーは(DHCPサーバー上の)Webページにリダイレクトされる必要があります。

つまり、ユーザーがgoogle.comと入力すると、すぐに192.168.10.1にリダイレクトされます。このDHCPサーバーがWebへのアクセスに使用されることはありません。ユーザーがランディングページからコンピューターを登録するための指示を取得すると、ユーザーはこの特定のDHCPサーバーでブラックリストに登録され、メインのDHCPサーバーにIPを要求するように強制されます。

どうすればそのようなリダイレクトを作成できますか?

4

1 に答える 1

3

キャプティブポータルと呼ばれるものを設定しようとしているようです。

これにはいくつかのコンポーネントがあり、そのうちの1つは実際にはDHCPサーバーですが、これが最も重要なコンポーネントとは言えません。

簡単な概要

ネットワークには、少なくとも次のコンポーネントが含まれます。

  • DHCPサーバー
  • DNSサーバー
  • ゲートウェイ
  • ログインシステム

クライアントはDHCPサーバーからIPアドレスを取得し、DNSサーバーとゲートウェイを使用するように指示されます。

解決策1:DNSベースのリダイレクト

ユーザーがログインするまで、DNSサーバーはログインWebサーバーのIPアドレスで応答します。DNS応答に非常に低いTTLを設定するように注意してください。ログイン後にクライアントブラウザがIPアドレスを再解決することを確認する必要があります。

これにより、ポート80でのWebブラウジング以外のアプリケーションで問題が発生する可能性が非常に高くなります。

解決策2:TCPインターセプト

これは少し難しい解決策ですが、うまくいく可能性があります。DNSサーバーは、クライアントが到達しようとしているWebサイトに常に正しいIPアドレスを返します。ゲートウェイは、ポート80のTCPセッションをログインサーバーにリダイレクトします。他のすべてのパケットは、ICMPエラー応答を受け取る必要があります(たとえば、ネットワークに到達できません)。

于 2012-04-26T10:49:47.407 に答える