IPoEおよびクライアントVLANおよびDHCPオプション82

この記事では、実際には存在しないIPoEインターネットアクセステクノロジーについて説明します。 また、クライアントVLANスキームとオプション82 DHCP(DHCP Option 82)についても説明します。これらは、この存在しない技術の不可欠な部分になっています。 もちろん、これはすべて、技術的な観点から、構成の例とともに。



エンドユーザーには多くのインターネットアクセステクノロジーがあります。 ロシアでは、PPTPとPPPoEの2つが特に人気があります。 どちらの場合も、PPPトンネルが作成され、認証が実行され、サブスクライバーIPトラフィックがトンネル内を通過します。 これらのプロトコルの主な違いは、OSIネットワークモデルのさまざまなレベルで機能することです。 PPPoEは第2(リンク)レベルで機能し、特定のトンネルを識別する特別なタグをイーサネットフレームに追加します。 PPTPは第3(ネットワーク)レベルで動作し、GREでIPパケットをパッキングします。



IPoE



IPoEは 、PPTPおよびPPPoEと根本的に異なります。 一般的に、この技術は存在しません。 RFCはなく、RFCを記述する標準もありません。 この用語自体は、おそらくロシアで造られたものであり、抽象的なものです。 次のことを意味します。IP over Ethernet 。 意味は復号化とまったく同じです-イーサネット上のIPトラフィック、大まかに言えば、通常のLAN。 サブスクライバには、静的または動的なホワイトIPアドレスが与えられますが、最悪の場合はNATを使用したグレーIPが与えられます。 この場合のアクセス制御は、アクセススイッチまたはBRASでIP-MACバインディングを使用するか、各サブスクライバにVLANを割り当てることで実行できます(いわゆるクライアントVLAN)。



クライアントVLAN



クライアントVLANテクノロジーを使用する場合、問題が発生します。IPアドレスを保存する方法は? 結局のところ、考えてみると、各クライアントは/ 30個のサブネットを割り当てる必要があります。 実際、問題は簡単に解決されます。 Linuxベースのルーターの例を次に示します。

  ip route add到達不能192.0.2.0/24
 ip addr add 192.0.2.1/32 dev lo

 vconfig add eth0 101
 IPリンクがeth0.101を設定する
 ip route add 192.0.2.101/32 dev eth0.101 src 192.0.2.1 


例で使用するために、IANAは192​​.0.2.0/24サブネットを推奨しています。


これは、Linux実装における古典的なシスコのアンナンバードIPです。 ゲートウェイIP(192.0.2.1)はループバックインターフェイスでハングし、サブネット全体でunreachable



になり、ルーティングが登録されているホストにのみパケットが送られます。 次に、VLANが上昇し、 src



ゲートウェイから特定のホスト(マスク/ 32)へのルーティングが登録されます。 そして、あなたはそれを少し違った方法で行うことができます(これもまたLinuxの柔軟性を示しています):

  ip route add到達不能192.0.2.0/24

 vconfig add eth0 101
 IPリンクがeth0.101を設定する
 ip addr add 192.0.2.1/32 dev eth0.101
 ip route add 192.0.2.101/32 dev eth0.101 


または:

  ip route add到達不能192.0.2.0/24

 vconfig add eth0 101
 IPリンクがeth0.101を設定する
 ip addr add 192.0.2.1/24 dev eth0.101
 ip route del 192.0.2.0/24 dev eth0.101
 ip route add 192.0.2.101/32 dev eth0.101 


これらのオプションはすべて機能するため、最も便利な方法でインターフェイスを表示するオプションを選択できます。 すべての場合において、加入者のIPは192.0.2.101/24です。



Proxy_arp



発生する可能性のある別の問題は、異なるVLANのサブスクライバー間および同じサブネットのIPとの通信がないことです。 実際、加入者システムは宛先IPアドレスがそれと同じサブネット上にあることを認識し、ARP要求を送信してMACを判別しますが、それは何も生じません それらは異なるVLANにあります。 この問題を解決するには、 proxy_arpテクノロジーが使用されます。 その本質は、ルーターがインターフェイスからARP要求を受信すると、他のインターフェイスに要求されたIPがあるかどうかを確認することです。 存在する場合、ARP要求への応答で、MACを発行します。 このようにして、パケットはルーターに送信され、ルーターが配信を処理します。 次のように、特定のインターフェイスのproxy_arpを有効にします。

  sysctl net.ipv4.conf.eth0 / 101.proxy_arp = 1 


または

 エコー1> /proc/sys/net/ipv4/conf/eth0.101/proxy_arp 




DHCPオプション82



IPoEを使用すると、DHCPは加入者側のネットワークの構成をゼロに簡素化します。 パッチコードを貼り付けて、オンラインにします。 問題は、DHCPがどのアドレスを誰に発行するかをどのように知るかだけです。 特にすでにIP-MACバインディングを使用している場合は、MACで識別できます。 しかし、MACバインディングには、サポートを頻繁に呼び出す必要があります。 加入者は時々機器を変更します。 DHCPプロトコルの拡張- オプション82は、この問題に対処するのに役立ちます。 オプション82には2つのフィールドが含まれます。



この場合、加入者が直接接続されているアクセススイッチは、通常DHCPリレーとして機能します。 エージェントのリモートIDとして、通常はスイッチのMACが使用されます(D-Linkのデフォルト)。 オプション82は、ロシアのプロバイダーD-Link DES-3526 / 3028/3200の典型的な機器を含む幅広い機器でサポートされています。

D-Linkスイッチには、dhcp_relayとdhcp_local_relayの2つのDHCPリレーモードがあります。 dhcp_relayはすべてのポートとVLANに対してグローバルに機能しますが、オプション82が追加され、リクエストはブロードキャストとして送信されなくなり、DHCPサーバーに直接送信されます。 これは完全なDHCPリレーです。 dhcp_local_relayは特定のVLANで機能しますが、要求は本質的には関係なく、オプション82が単に追加されます。

D-Linkのdhcp_relayの基本設定:

  dhcp_relayを有効にする
 config dhcp_relay option_82 state enable
 config dhcp_relay add ipif System 192.168.0.1 


192.168.0.1-管理VLANで使用可能なDHCPサーバーのIPアドレス。

dhcp_local_relayの基本設定:

  dhcp_local_relayを有効にします
 config dhcp_local_relay vlan 101 state enable 


そして最後に、コメント付きでISCのDHCPの基本設定を行います。

  #ログに書き込む
ログ(情報、「***」);
存在する場合agent.circuit-id {
	 #オプション82が存在する
	 #発行されたIPアドレス、エージェントリモートID、エージェント回線IDをログに書き込みます
	 log(info、concat( "* Leased"、binary-to-ascii(10.8、 "。"、leased-address)、 "(with opt82)"));
	 log(info、concat( "* Remote-ID:"、binary-to-ascii(16.8、 ":"、substring(option agent.remote-id、2.6))));
	 log(info、concat( "* Port:"、binary-to-ascii(10.8、 ""、suffix(option agent.circuit-id、1))));
 } else {
	 #オプション82 no
	 #発行されたIPアドレスをログに書き込みます
	 log(info、concat( "* Leased"、binary-to-ascii(10.8、 "。"、leased-address)、 "(opt82なし)));
 }
ログ(情報、「***」);


 #この例では192.0.2.101/24-MAC 0でスイッチに接続されたサブスクライバのIP:c:29:ec:23:64、ポート1
 #VMWare仮想マシンから取得したMACアドレスが残っている
 #192.168.0.0/24-スイッチ管理サブネット、DHCP要求はこのサブネットのアドレスから送信されます
 #これらの2つのサブネットは、正しく動作するために1つの共有ネットワークに結合する必要があります

共有ネットワークテスト{

サブネット192.0.2.0ネットマスク255.255.255.0 {

	 #クラスを定義する

	クラス "v101" {

		 #クラスに準拠するための条件を定義します。
		 #エージェント回線ID = 1、エージェントリモートID = 0:c:29:ec:23:64
		 #注-先行ゼロはエージェントリモートIDに書き込まれません(つまり、0cの代わりにcなど)

		 match if(binary-to-ascii(10.8、 ""、suffix(option agent.circuit-id、1))= "1")および
			 (binary-to-ascii(16.8、 ":"、substring(option agent.remote-id、2.6))= "0:c:29:ec:23:64");
	 }

	 #実際にIPクラスに配る

	プール{
		範囲192.0.2.101;
		 「v101」のメンバーを許可します。
	 }
 }

サブネット192.168.0.0ネットマスク255.255.255.0 {
 }

 } 



All Articles