これは、NetBSD Advent Calendar 2020の12日目の記事です。
はじめに
USB接続のEthernetアダプター(cdce(4))を使っています。 これをUSBレセプタクルに挿した時に、自動的にIPv6のユニークローカルアドレスを割り当ててくれると大変助かると考えていました。 どうやら、devpubd(8)というデーモンを使うと、うまく行くのかもしれないと考えて試してみました。
devpubd(8)を実行してみる
devpubd(8)をフォアグラウンドで動かしてみて、cdce(4) USB Ethernetアダプターを挿した際にどのように動作するのか確認してみましょう。
# devpubd -f devpubd_eventloop: event='device-attach', device='uhub4' devpubd_eventloop: event='device-attach', device='uhub5' devpubd_eventloop: event='device-attach', device='cdce0'
これで、イベントはdevice-attachで、 デバイスはcdce0であることが分かりました。
devpubd(8)が実行するスクリプトを用意する
devpubd(8)には
1つ目のcdce(4)であるcdce0が認識された時にだけ実行して欲しいので、
以下のようなスクリプトを/libexec/devpubd-hooks/03-cdce-ipv6
に置くことにしました。
#!/bin/sh # # $NetBSD$ # # Assign IPv6 address for local connection when cdce0 is detected. # event="$1" shift devices=$@ for device in $devices; do case $device in cdce0) case $event in device-attach) ifconfig $device inet6 fd00:5100::1/64 ;; device-detach) ;; esac ;; esac done
これで、cdce(4)デバイスを最初に挿した際に自動的に設定がされて非常に便利になりました。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。