Mikrotik、DHCPクラスレスルート

DHCP Classless Route 、なぜ必要なのですか?



当社では、 VPNにtincdソリューションを使用しています 。 Mikrotikでtincを簡単に起動する方法が見つからなかったため、VPNを別のサーバーで起動し、ゲートウェイとして使用することにしました。 最初の試みは、ルーターにルートを登録することです。 pingによると、ルーターがリダイレクトメッセージを送信しているのに、ネットワークラグが観察されたことが明らかでした。 操作中に、この方法で確立された接続が遅くなるという感覚が生まれました。



実験として、私は職場で自分の手でルートを登録しようとすることにしました。 これは正しい決定であることが判明しました-遅れはなくなりましたが、この操作はすべてのオフィスマシンで実行する必要がありましたが、私は手で運転したくありませんでした。 この点で、DHCPプロトコルを使用してアドレスを受信するすべてのクライアントで静的ルートを構成するために、大きなストレスなしに方法が必要でした。



グーグルのプロセスにより、Mikrotikaのドキュメントページに移動しました 。 すべてが明確です-DHCPクラスレスルートが役立ちます。 セットアップは比較的簡単ですが、この相対性のために、セットアップに半日かかりました。 同時に、ネットワークのホストでのネットワークアクセスに問題がありました-Windowsマシンでは、デフォルトルートが消えました。

Mikrotikをセットアップするもう1つの複雑な点は、ルートを16進数(またはバイナリ)形式で入力する必要があることです。 はい、ドキュメントにはいくつかのニュアンスが示されていません。 このオプションは、基本バージョンで考慮されます。 そして、あなたが望むように))。 設定の詳細をもう少し詳しく調べる必要がありました。



すべてのホストがルートを取得するには、オペレーティングシステムファミリに関係なく、2つのオプション121249を構成する必要があります。 すべての開発者がRFCに従うと、おそらくシステム管理者の人生はずっと新鮮で面白くないでしょう。



オプション121
オプション121は 、他のすべてのDHCPオプションと同様に、 rfc3442で説明されています 。 このドキュメントでは、121個のパラメータについて次の規則と要件を規定しています。



同じドキュメントによると、ルート図は次のようになります。

Code Len Destination 1 Router 1

+ ----- + --- + ---- + ----- + ---- + ---- + ---- + ---- + ---- +

| 121 | n | d1 | ... | dN | r1 | r2 | r3 | r4 |

+ ----- + --- + ---- + ----- + ---- + ---- + ---- + ---- + ---- +



宛先2ルーター2

+ ---- + ----- + ---- + ---- + ---- + ---- + ---- +

| d1 | ... | dN | r1 | r2 | r3 | r4 |

+ ---- + ----- + ---- + ---- + ---- + ---- + ---- +





ルートを正しく計画するには、宛先ネットワークアドレス、サブネットマスク、およびゲートウェイアドレスを16進形式に変換する必要があります。 苦しむ人は 、バイナリ形式で自分のスキルを高めることができます。

例1
ルータ192.168.0.2を介してネットワーク10.0.0.0/ 24のルートラインを作成します

LEN (宛先サブネットマスク)= 24 = 0x18

宛先 = 10.0.0.0 = 0A 00 00

ルーター = 192.168.0.2 = c0 a8 00 02

要約行: 0x180A0000c0a80002

Mikrotikへのルートを追加します。

winboxを介して



コンソールから

/ ip dhcp-serverオプション

コードを追加= 121名前= opt_121_10値= 0x180A0000c0a80002

セット0 dhcp-option = opt_121_10



例2
ルーター192.168.0.2を介してネットワーク10.0.0.0/ 8のルートラインを作成します

LEN (宛先サブネットマスク)= 8 = 0x08

宛先 = 10.0.0.0 = 0A

ルーター = 192.168.0.2 = c0 a8 00 02

要約行: 0x080Ac0a80002

例3
ルーター192.168.0.2を介してネットワーク10.0.0.0/ 8のルートラインを作成します

LEN (宛先サブネットマスク)= 29 = 0x19

宛先 = 172.16.4.0 = AC100400

ルーター = 192.168.0.2 = AC10040001

要約行: 0x19AC100400AC10040001

3つの例で2つに写真を添付し​​ません。 ルーター自体で、例1と同じように構成します。



非常に簡単に、1つの小さなニュアンスが原因で顧客が突然切断される可能性があります
サブネットアドレスを誤って入力した場合。 間違えるのはとても簡単です。 これを回避するには、理論を思い出して実際に適用する必要があります。



覚えておきましょう。 アドレスとサブネットマスクがあります。 アドレスは、ネットワークとホストの2つの部分に分かれています。

サブネットマスクは、ネットワークパーツに属するアドレスの最初のビット数を示します。 したがって、アドレスの残りはホストを示します。

24ビットマスクを使用したネットワークへのルートが必要な場合は、宛先ネットワークアドレスの最初の3オクテットが必要です (例1)

8ビットマスクを持つネットワークへのルートが必要な場合は、宛先ネットワークアドレスの最初のオクテットのみが必要です (例2)

25ビットのマスクを持つネットワークへのルートが必要な場合、すべてのオクテットを指定する必要があります(例3)





オプション249
dhcpの説明があるウィキペディアのページには、一般に受け入れられているDHCPオプションへのリンクがあります。 249オプションは私的使用の範囲内にあります。

仲間のやる気のある人たちがレーニン同志見解を固守している理由はわかりませんが、彼らはむしろ狂信的に従っています。 RFC3442が存在するにもかかわらず、Microsoftはクライアントでオプション249を使用してルートを受信することを決定しました。

Mikrotikでは、このオプションは121番目のオプションのように構成されます

0x [ 宛先アドレスサブネットマスク ] [ 宛先アドレス ] [ ゲートウェイアドレス ]

Windowsマシンのセットアップに問題がある場合は、ネタバレの下にあるヒントを使用してみてください
0x [ 宛先アドレスサブネットマスク ] [ 宛先アドレス ] [ ゲートウェイアドレス ] 00 [ ゲートウェイアドレス ]

行00とルーターアドレスを再度追加します。

なぜ機能するのか、私には理解できませんでした。 実証研究により、解決策が見つかりました。 後に、松葉杖なしでオプションが機能しました。




1つの回線上の複数のルート


残念ながら、Mikrotik Webサイトのドキュメントには、複数のルートを正しく構成する方法の例が含まれていません。 RFC3442は、上記のいくつかのルートをコンパイルするための素晴らしいスキームがあります。

0xなしの2番目のルートを最初のルートに追加します



1行のゲートウェイ192.168.0.2を通る2つのルート10.0.0.0/8および172.16.4.0/24は次のようになります。
0x 08 0Ac0a80002 18 AC100Bc0a80002
太字で強調表示されたサブネットマスク



この情報が誰かに役立つことを願っています。



PS:個人的に送信するコメントと提案をお願いします。



UPD:

同志orlovdlは、住所ブロックを16進形式に変換するpython関数スケッチしました



UPD:

同志のpoofegは提案しました:

RFC3442の次のフレーズに注意してください。

DHCPサーバー管理者[...]は、ルーターオプションとクラスレス静的ルートオプションの両方でデフォルトルーターを指定する必要があります。

オプション121のすべての例で、デフォルトルートが欠落しています。 つまり、00c0a80001(192.168.0.1を介して0.0.0.0/0)を最後の両方の行に追加することをお勧めします。



All Articles