プロローグ
ハブには、ヘッダーに示されているテクノロジーの使用など、プロバイダーネットワークを構築するための特定のオプションを説明するトピックがかなりありました。 部分的には、彼らは私の問題を解決するのを助けてくれましたが、私は自分でたくさん掘らなければなりませんでした。 何が起こったのかを共有し、フォロワーの時間を節約したいと思います。
そのため、タスクを設定します。
エンドユーザーにとって可能な限り便利でありながら(技術サポートへの最小負荷という点で)便利であり、オペレーターにとって安全な(詐欺に関して)ネットワークを編成する必要があります。 さらに、ネットワークは安価でなければなりません。 誰かが、シスコと「安価」とは互換性のない概念であると主張しますが、終末期の高齢者は、非常に手頃な価格で購入できる問題を解決するのにも適しています。
ユーザーの利便性を確保するために、次のオプションは破棄されました。
- IPアドレスの静的な割り当てはユーザーにとって不便です。アドレスはどこかに書き込む必要があります。アドレスを失ったユーザーは技術サポートで呼び出されます。
- mac-addressによるバインドを使用するdhcpは、ユーザーにとって不便です。デバイスを変更する場合、プロバイダーに再登録するか、そのデバイスのmacを変更する必要があります。
- あらゆる種類のトンネル、主にpptp-クライアント設定、ログインの忘れ、パスワードが必要
検討されるすべてのオプションの中で、DHCPを使用するオプションはユーザーにとって最も便利ですが、プロバイダーにとっては多くの困難があります。
Macバインディングは、新しいMACアドレスを再登録する必要があるため不便です。 ip-addressのみによる請求のユーザー認証も一見信頼できないようです。userなユーザーは、手動で近隣のip-addressを設定して混乱を招くことができます。 ただし、解決策があり、記事のタイトルのテクノロジーに基づいて構築されています- オプション82および動的arp検査
誰が解決策を気にしている-私はカットをお願いします
解決策
アドレスを発行するためのDHCPサーバーは、スイッチのどの物理ポートがアドレスの要求を受信したかを決定するオプション82によってガイドされます。 したがって、ケーブルがSW-01スイッチの7番目のポートに接続されている14番のアパートのVasya Pupkinは、たとえば、ケーブルに接続するデバイスに関係なく、常にアドレス10.10.1.7を受け取ります。 このアプローチにより、Vasya PupkinをIPアドレスのみで識別することができますが、問題があります。 インターネットへの支払いを望まない隣人のゾラは、Vasya Pupkinのアドレスを手に入れ、ネットワーク上でIPアドレスの競合を作成し、Vasyaを犠牲にしてインターネットを使用します。
これを防ぐために、ダイナミックARPインスペクションテクノロジーがあります。 この技術の本質は、DHCPサーバーから受信したmac + ipバンドルをチェックし、ポートに到着するARP要求と比較することです。 したがって、近隣のZhoraが自分自身とVasyaのMACおよびIPを設定した場合でも、スイッチはDHCPがこのようなMacのポートにこのIPを発行したかどうかを確認します。 発行されない場合、パケットは破棄されます。
実際の設定
Cisco 2950-24およびCisco 2960-24-TT-Lの 2つのスイッチを自由に使用できます。
2950スイッチは、サブスクライバーの接続に使用されます。 その上で、管理VLAN 254が管理用に構成されます。
スイッチIP- 10.0.254.10 、mac- 00:11:92:1B:3A:00
2960はDHCPサーバーとして機能し、ARP検査タスクを実行します。
スイッチIP- 10.0.254.2 、mac- 00:16:C8:D7:D2:80
MACはshow versionコマンドで表示できます
cisco WS-C2950-24 (RC32300) processor (revision P0) with 19911K bytes of memory. Processor board ID FOC0825Z1GD Last reset from system-reset Running Standard Image 24 FastEthernet/IEEE 802.3 interface(s) 32K bytes of flash-simulated non-volatile configuration memory. Base ethernet MAC Address: 00:11:92:1B:3A:00
2950スイッチはダイナミックARPインスペクションをサポートしていませんが、アップストリームスイッチでこの問題を解決できます。 この例では、 Cisco 2960-24-TT-Lがこのようなスイッチとして使用されていますが、 3550-12Tや3550-12GなどのL3スイッチを使用する方がより正確ですが 、VLAN間ルーティングタスクも解決できます。
したがって、C2950では次を構成します。
- グローバルコンフィギュレーションモードで、dhcp-relayメッセージにオプションを追加する必要があることを示します。
ip dhcp relay information option
- 管理インターフェイスの設定で、DHCP要求を10.0.254.2の2960番目のスイッチに転送する必要があることを示します
interface Vlan254 ip address 10.0.254.10 255.255.255.0 ip helper-address 10.0.254.2
- グローバルコンフィギュレーションモードで、すべてのvlanに対してDHCPスヌーピングを有効にします
ip dhcp snooping vlan 10 ip dhcp snooping vlan 20 ip dhcp snooping vlan 254 ip dhcp snooping
- DHCP提供がポート24からのみ許可されていることを確認します。ポート24には、アップストリーム2960がDHCPサーバーに接続されています。
interface FastEthernet0/24 ip dhcp snooping trust
C2960の構成はもう少し複雑です。
- ユーザーごとに、 ip dhcpクラスエントリを作成します。
ip dhcp class user01 remark SW2950-1 port 01 relay agent information relay-information hex 01060004000a0001020800060011921b3a00
クラスではrelay-informationのみを指定するだけで十分ですが、便宜上、コメントコメントを使用することもお勧めします。コメントコメントには、サブスクライバデータなどを書き込むことができます。
ここで最も重要なことは、六角ストリング形成の原理を理解することです。 これらはオプション82に含まれる18バイトです
そのコンテンツは、 回線IDとリモート IDの 2つのフィールドで構成されています
circuit-idには、VLAN番号と、dhcp要求の送信元の物理ポート番号が含まれます。
remote-idには、この要求を送信したスイッチのMACアドレスが含まれています。
この文字列は、wiresharkアナライザーで抽出できますが、各サブスクライバーがこれを実行するのは不便なので、生成方法を検討します。
- サブスクライバのdhcpクラスを作成した後、各VLANのアドレスプールを構成します
住所のレンタル時間は5分です。 これは、異なるアドレスを持つ新しいデバイスがそのポートに接続されたときに、加入者がそのアドレスをすばやく受信するために必要です。 そうしないと、アドレスが1つしかないため、このプールが使い果たされたというエラーが発生します。 また、この例では、ゲートウェイ、DNSなど、dhcpプールの残りの設定を省略しています。
ip dhcp pool vlan10 network 10.0.10.0 255.255.255.0 lease 0 0 5 class user01 address range 10.0.10.11 10.0.10.11 class user02 address range 10.0.10.12 10.0.10.12
- スイッチの各プールに適切なIPインターフェイスを設定する必要があります。 これは、 インターフェイスVLANを介して行われます
C2960は第2レベルのスイッチであるにもかかわらず、いくつかのIPインターフェースをアクティブに保つことはできますが、それらの間でトラフィックをルーティングすることはできません。
interface Vlan10 ip address 10.0.10.2 255.255.255.0 ! interface Vlan20 ip address 10.0.20.2 255.255.255.0 ! interface Vlan254 ip address 10.0.254.2 255.255.255.0
- このスイッチでは、dhcp-snoopingも設定する必要があります。このオプションは、発行されたIPアドレスをMACアドレスにバインドするためのベースを形成するためです。
ip dhcp snooping databaseコマンドを使用して、 データベースの保存場所を決定します。この例では、フラッシュ上のdhcpファイルに保存されます。 ftp、tftp、http、https、scp、およびその他のURLを保存場所として指定することもできます。
ip dhcp snooping information option allow-untrustedコマンドを使用すると、スイッチのすべてのポートからオプション82の要求を受け入れることができます。
ip dhcp snooping vlan 10 ip dhcp snooping vlan 20 ip dhcp snooping information option allow-untrusted ip dhcp snooping database flash:dhcp ip dhcp snooping
- 現在、IPアドレスをスイッチの物理ポートにバインドする作業を行っています。 ダイナミックARPインスペクションの設定は残ります。 これは、1つの簡単なコマンドで実行されます。
ip arp inspection vlan 10,20
概念実証
スイッチの9番目のポートに接続されているクライアントへのアドレス割り当てを確認します。 ポートは20番目のVLANにあります。スキームによると、クライアントはアドレス10.0.20.9を受信する必要があります
16進値を形成しましょう:01060004 0014 0008 02080006 0011921b3a00
0014は20番目のVLANです。
0008-9番目のスイッチポート
0011921b3a00は彼のMacです。
ip dhcp class user09 remark SW2950-1 port 09 relay agent information relay-information hex 0106000400140008020800060011921b3a00 ip dhcp pool vlan20 network 10.0.20.0 255.255.255.0 lease 0 0 5 class user09 address range 10.0.20.9 10.0.20.9
したがって、この交換はwiresharkに見えます:
そして、これはdebug ip dhcp server eventsコマンドの出力です
2d00h: DHCPD: Sending notification of DISCOVER: 2d00h: DHCPD: htype 1 chaddr 000a.e45b.dcc6 2d00h: DHCPD: remote id 00060011921b3a00 2d00h: DHCPD: circuit id 000400140008 2d00h: DHCPD: interface = Vlan20 2d00h: DHCPD: class id 4d53465420352e30 2d00h: DHCPD: out_vlan_id 0 2d00h: DHCPD: DHCPOFFER notify setup address 10.0.20.9 mask 255.255.255.0 2d00h: DHCPD: Sending notification of ASSIGNMENT: 2d00h: DHCPD: address 10.0.20.9 mask 255.255.255.0 2d00h: DHCPD: htype 1 chaddr 000a.e45b.dcc6 2d00h: DHCPD: lease time remaining (secs) = 300 2d00h: DHCPD: interface = Vlan20 2d00h: DHCPD: out_vlan_id 0
000a.e45b.dcc6-クライアントMACアドレス
次に、別のラップトップを同じポートに接続します。
2d00h: DHCPD: Sending notification of DISCOVER: 2d00h: DHCPD: htype 1 chaddr 089e.012b.6ce1 2d00h: DHCPD: remote id 00060011921b3a00 2d00h: DHCPD: circuit id 000400140008 2d00h: DHCPD: interface = Vlan20 2d00h: DHCPD: class id 4d53465420352e30 2d00h: DHCPD: out_vlan_id 0 2d00h: DHCPD: no free address within the address range for class user09 in pool vlan20 2d00h: DHCPD: Sending notification of ASSIGNMENT FAILURE:
最初に、プールに空きアドレスがないというメッセージが表示されます(このアドレスを別のポピーにレンタルするために割り当てられた5分がまだ期限切れになっていないため)。
ただし、しばらくしてから必要なアドレスを取得しますが、すでにポピー08-9e-01-2b-6c-e1のクライアント用です
2d00h: DHCPD: Sending notification of DISCOVER: 2d00h: DHCPD: htype 1 chaddr 089e.012b.6ce1 2d00h: DHCPD: remote id 00060011921b3a00 2d00h: DHCPD: circuit id 000400140008 2d00h: DHCPD: interface = Vlan20 2d00h: DHCPD: class id 4d53465420352e30 2d00h: DHCPD: out_vlan_id 0 2d00h: DHCPD: Adding binding to radix tree (10.0.20.9) 2d00h: DHCPD: Adding binding to hash tree 2d00h: DHCPD: assigned IP address 10.0.20.9 to client 0108.9e01.2b6c.e1. (316 0) 2d00h: DHCPD: DHCPOFFER notify setup address 10.0.20.9 mask 255.255.255.0 2d00h: DHCPD: Sending notification of ASSIGNMENT:
次に、スイッチのポート10に接続されているクライアントのネイバーがアドレス10.0.20.9を手動で設定できるかどうかを確認しましょう
Cisco 2950はダイナミックARPインスペクションをサポートしていないため、このテクノロジーはアップストリームCisco 2960スイッチで設定する必要があります。
C2960のshow ip dhcp snooping bindingコマンドは、macsへのIPアドレスのバインディングを表示します
MacAddress IpAddress Lease(sec) Type VLAN Interface ------------------ --------------- ---------- ------------- ---- -------------------- 08:9E:01:2B:6C:E1 10.0.20.9 288 dhcp-snooping 20 FastEthernet0/1 Total number of bindings: 1
FastEthernet0 / 1は、ダウンストリーム2950を含む2960スイッチのインターフェイスです。
手動で構成されたアドレス10.0.20.9のコンピューターをC2950の10番目のポートに接続します
そして、エラーの通知が表示され、スイッチの最初のポートの20番目のVLANで発生したことがわかります。 さらに、エラーの原因となったIPアドレスとポピーアドレスが表示されます。 000a.e45b.dcc6 / 10.0.20.9 /
2d01h: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa0/1, vlan 20.([000a.e45b.dcc6/10.0.20.9/0000.0000.0000/10.0.20.9/23:48:25 EEST Mon Sep 2 2013])
C2950スイッチに移動し、スイッチングテーブルを調べることで、だれがチートを試みたのかを確認できます。
SW2950-1#show mac-address-table Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 20 000a.e45b.dcc6 DYNAMIC Fa0/10 20 089e.012b.6ce1 DYNAMIC Fa0/9
興味のあるMacがポート10でハングしていることがわかります。
これは、おそらく、すべてであり、追加情報はこれらの記事で見つけることができます:
シスコルーターの仕事とDHCP設定の機能
シスコルーターでの作業とDHCP設定の機能(パート2)
IPoEおよびクライアントVLANおよびDHCPオプション82
IPoEの問題 -すべてが正しく構成されていれば問題ないことを自分で付け加えます。
リンクレベルのARPスプーフィング攻撃とCiscoスイッチを保護する方法は、ダイナミックARPインスペクションの別の利点であるネットワークセキュリティ全般の向上を示す良い記事です。