7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

YAMAHAルーター RTX1210 で、接続端末をMACアドレス制限

Last updated at Posted at 2020-01-30

追記: 2020-02-05

以下のコマンドを忘れていたので追加しました。

dhcp server rfc2131 compliant use-clientid

use-clientid がミソらしいです。


やりたかったこと

インターネットおよびプライベートネットワーク参加を、特定の端末だけに絞りたい!
(例: 他部署の人がノートPC持ち込んでLANに繋いでも、通信できないようにしたい)

環境

YAMAHAルーター RTX1210
ファームウェア: Rev.14.01.33
DHCPサーバー機能を有効にしていること。

(同シリーズの機種なら、同じ方法で通用するかも?)

方法

以下の管理コマンドを、RTX1210で実行する。

dhcp server rfc2131 compliant use-clientid
dhcp scope lease type 1 bind-only

dhcp scope bind 1 192.168.100.10 01 aa bb cc dd ee ff
dhcp scope bind 1 192.168.100.11 01 a1 b1 c1 d1 e1 f1
・
・
・
save

ハマったこと

ethernet filter コマンドは不要

ethernet filter 1 pass-nolog dhcp-bind 1
ethernet lan1 filter in 1

は不要でした。(WEBマニュアルとかあちこちのWEB文献には書いてあったのだが…)
むしろ、実行すると完全不通になり、ルーターを初期化するハメに…
豆粒みたいな物理ボタンを3つも押しながら電源をOFF/ONする指が痛い:sob:

dhcp scope bind コマンドの、MACアドレスの書き方

dhcp scope bind <dhcpスコープ番号> <振りたいプライベートIPアドレス> 01 <MACアドレス>

ポイント1: 01

これが必須…!
出所は何かと言うと、

show status dhcp

を実行すると端末情報一覧が表示されます。

DHCPスコープ番号: 1
   ネットワークアドレス: 192.168.100.0
               割り当て中アドレス: 192.168.100.10
          (タイプ) クライアントID: (01) aa bb cc dd ee ff
                         ホスト名: yamada-MBP
                     リース残時間: 89日 22時間 25分 8秒
               割り当て中アドレス: 192.168.100.11
          (タイプ) クライアントID: (01) a1 b1 c1 d1 e1 f1
                         ホスト名: yoshida-Windows
                     リース残時間: 89日 23時間 13分 48秒
・
・
・

もちろん、その中に MACアドレス もあります。

だがしかし!
冒頭に、謎の固定値 (01) が…

これを dhcp scope bind にも漏れなく入れないと、ちゃんと動きません。
しかも、もう一味必要で、カッコを省いて 01 として、です…!

これは Client-Identifier という値だそうです。
http://www.rtpro.yamaha.co.jp/RT/manual/rt-common/dhcp/dhcp_scope_bind.html

コマンドの第 1 書式を使う場合は、あらかじめ dhcp server rfc2131 compliant on あるいは use-clientid 機能を使用するよう設定されていなければならない。また dhcp server rfc2131 compliant off あるいは use-clientid 機能が使用されないよう設定された時点で、コマンドの第 2 書式によるもの以外の予約は消去される。
コマンドの第 1 書式でのクライアント識別子は、クライアントがオプションで送ってくる値を設定する。type パラメータを省略した場合には、type フィールドの値も含めて入力する。type パラメータにキーワードを指定する場合には type フィールド値は一意に決定されるので Client-Identifier フィールドの値のみを入力する。

今回は use-clientid 機能を使用なので、コマンド書式は第1書式、typeパラメータのキーワードethernetを省略して01(0x01)のみを記入、ということでこうなるわけでした。

これはハマるw

ポイント2: <MACアドレス>

これもWEB文献には諸説あってハマりました。

  • MACアドレスの区切り文字は : だとか、そうでないとか
  • 前に、おまじない ethernet を付けるとか、付けないとか

これは、文献によって use-clientid 機能を使用・不使用 がまちまちだったりもあって混乱しました。

結論は、ポイント1と同様で

show status dhcp

を実行して出力されたMACアドレスと全く同じ書き方、が正解!

クライアントのOSによっては(01) XX XX XX XX XX XX(第1書式)ではなくXX:XX:XX:XX:XX:XX(第2書式)を通知してくるようです。その場合は、そのクライアントだけ第2書式(01を書かず、コロンで連結)で書けばと良いようです。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?