ユーザ用ツール

サイト用ツール


mae3xx_ope:setup_lowpan:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mae3xx_ope:setup_lowpan:start [2015/05/15 12:57]
admin
mae3xx_ope:setup_lowpan:start [2015/09/17 21:26] (現在)
admin [/etc/network/interfaces ファイルへの設定]
ライン 1: ライン 1:
 +====== IEEE802.15.4g(920MHz無線) を設定する (IPv6, 6LoWPAN) ======
  
 +[[http://​www.centurysys.co.jp/​products/​linuxserver/​mae360n.html|MA-E360/​N]] には、IEEE802.15.4g 準拠の無線モジュールを搭載しています。\\
 +Linux の wpan デバイスとして認識させ、6LoWPAN と組み合わせることで、IPv6 で通信できるネットワークI/​F として利用することが可能です。\\
 +
 +{{http://​www.nivis.com/​about_nivis/​images/​partners/​6LoWPAN.png|6LoWPAN}}
 +{{http://​www.riot-os.org/​images/​logo-large.png?​200|RIOT}}
 +
 +\\
 +
 +{{http://​www.ti.com/​lsds/​media/​images/​wireless_connectivity/​20979_6LowPan_mesh.jpg?​800|6LoWPAN network}}\\
 +(TI 社サイトより)
 +
 +※ 下記情報は現開発時点の情報です。リリース時には変更される場合があります。
 +
 +\\
 +
 +===== 設定 =====
 +
 +ifupdown パッケージに、wpan/​lowpan I/F 設定を追加しました。\\
 +/​etc/​network/​interfaces ファイルに記述するだけで、
 +
 +  * ドライバの組み込み
 +  * Line Discipline のアタッチ
 +  * 無線チャネルの設定
 +  * PAN ID の設定
 +  * 6LoWPAN リンクの作成
 +  * IPv6 アドレスの割り当て
 +
 +を行います。
 +
 +\\
 +
 +==== /​etc/​network/​interfaces ファイルへの設定 ====
 +
 +inet6 の "​static"​ もしくは "​auto"​ メソッドが利用可能です。
 +
 +<file generic interfaces>​
 +# interfaces(5) file used by ifup(8) and ifdown(8)
 +# Include files from /​etc/​network/​interfaces.d:​
 +source-directory /​etc/​network/​interfaces.d
 +
 +auto lo
 +iface lo inet loopback
 +
 +auto eth0
 +#iface eth0 inet static
 +# address 192.168.253.253
 +# netmask 255.255.255.0
 + #gateway 192.168.253.1
 + #​dns-nameservers 192.168.253.1
 + #post-up /​sbin/​ethtool -s eth0 autoneg off speed 100 duplex full
 +
 +iface eth0 inet dhcp
 +
 +auto eth1
 +iface eth1 inet static
 + address 192.168.254.254
 + netmask 255.255.255.0
 + #post-up /​sbin/​ethtool -s eth1 autoneg off speed 100 duplex full
 +
 +iface lowpan0 inet6 static
 + address 2001:​dead:​beef::​1/​64
 + ttydev ttyS0
 + ldnum 25
 + panid 0x1234
 + channel 33
 + wpan 0
 +</​file>​
 +
 +\\
 +
 +=== 追加設定項目について ===
 +
 +Ubuntu 標準の ifupdown に追加した設定項目は下記のとおりです。
 +
 +^  項目 ​ ^  内容 ​ ^  Notes  |
 +|  ttydev ​ |IEEE802.15.4g module 接続 tty device|ttyS0 固定|
 +|  ldnum  |IEEE802.15.4g module ドライバ Line Discipline No.|25 固定|
 +|  panid  |IEEE802.15.4g PAN ID| |
 +|  channel ​ |IEEE802.15.4g チャネル|33〜59,​ 奇数のみ|
 +|  wpan  |wpan I/F No.|0 固定|
 +
 +\\
 +
 +==== I/F の有効化 ====
 +
 +Ethernet(eth0) など他の I/F と同様に、ifup コマンドで有効化します。
 +
 +<​code>​
 +user1@plum:​~$ sudo ifup lowpan0
 +wpa_supplicant:​ /​sbin/​wpa_supplicant daemon failed to start
 +run-parts: /​etc/​network/​if-pre-up.d/​wpasupplicant exited with return code 1
 +Waiting for DAD... Done
 +</​code>​
 +
 +<​code>​
 +user1@plum:​~$ ifconfig wpan0
 +wpan0     Link encap:​UNSPEC ​ HWaddr 00-80-6D-01-01-00-00-01-00-00-00-00-00-00-00-00  ​
 +          UP BROADCAST RUNNING NOARP  MTU:​127 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​300 ​
 +          RX bytes:0 (0.0 B)  TX bytes:619 (619.0 B)
 +
 +user1@plum:​~$ ifconfig lowpan0
 +lowpan0 ​  Link encap:​UNSPEC ​ HWaddr 00-80-6D-01-01-00-00-01-00-00-00-00-00-00-00-00  ​
 +          inet6 addr: fe80::​280:​6d01:​100:​1/​64 Scope:Link
 +          inet6 addr: 2001:​dead:​beef::​1/​64 Scope:​Global
 +          UP BROADCAST RUNNING MULTICAST ​ MTU:​1280 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +user1@plum:​~$ ​
 +</​code>​
 +
 +
 +\\
 +
 +===== 設定 (旧) =====
 +
 +==== ドライバの組み込み ====
 +
 +**serial2.ko** というモジュールとなっていますので、それを組み込みます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ modprobe serial2
 +</​code>​
 +
 +<​code>​
 +root@plum:/​home/​user1#​ lsmod 
 +Module ​                 Size  Used by
 +serial2 ​                ​7277 ​ 0 
 +</​code>​
 +
 +\\
 +
 +==== Line Discipline のアタッチ ====
 +
 +IEEE802.15.4g のモジュールとの間の通信は UART となっていますので、ldattach コマンドにより Line Discipline をアタッチします。\\
 +Line Discipline の番号は、Kernel 既存の番号の最後 "​25"​ にしてあります。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ldattach -s 115200 25 /dev/ttyS0
 +</​code>​
 +
 +\\
 +
 +参考: Line Discipline 定義 (linux/​include/​uapi/​linux/​tty.h)
 +
 +<file c tty.h>
 +#ifndef _UAPI_LINUX_TTY_H
 +#define _UAPI_LINUX_TTY_H
 +
 +/*
 + * '​tty.h'​ defines some structures used by tty_io.c and some defines.
 + */
 +
 +#define NR_LDISCS 30
 +
 +/* line disciplines */
 +#define N_TTY 0
 +#define N_SLIP 1
 +#define N_MOUSE 2
 +#define N_PPP 3
 +#define N_STRIP 4
 +#define N_AX25 5
 +#define N_X25 6 /* X.25 async */
 +#define N_6PACK 7
 +#define N_MASC 8 /​* Reserved for Mobitex module <​kaz@cafe.net>​ */
 +#define N_R3964 9 /​* Reserved for Simatic R3964 module */
 +#define N_PROFIBUS_FDL 10 /​* Reserved for Profibus */
 +#define N_IRDA 11 /​* Linux IrDa - http://​irda.sourceforge.net/​ */
 +#define N_SMSBLOCK 12 /​* SMS block mode - for talking to GSM data */
 + /* cards about SMS messages */
 +#define N_HDLC 13 /​* synchronous HDLC */
 +#define N_SYNC_PPP 14 /​* synchronous PPP */
 +#define N_HCI 15 /​* Bluetooth HCI UART */
 +#define N_GIGASET_M101 16 /​* Siemens Gigaset M101 serial DECT adapter */
 +#define N_SLCAN 17 /​* Serial / USB serial CAN Adaptors */
 +#define N_PPS 18 /​* Pulse per Second */
 +#define N_V253 19 /​* Codec control over voice modem */
 +#define N_CAIF 20 ​     /* CAIF protocol for talking to modems */
 +#define N_GSM0710 21 /​* GSM 0710 Mux */
 +#define N_TI_WL 22 /​* for TI's WL BT, FM, GPS combo chips */
 +#define N_TRACESINK 23 /​* Trace data routing for MIPI P1149.7 */
 +#define N_TRACEROUTER 24 /​* Trace data routing for MIPI P1149.7 */
 +#define N_IEEE802154 25 /​* Serial / USB serial IEEE802154.4 device */
 +
 +#endif /* _UAPI_LINUX_TTY_H */
 +</​file>​
 +
 +\\
 +
 +下記のように、"​wpan0"​ が生えてきます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ip link show wpan0
 +33: wpan0: <​BROADCAST,​NOARP>​ mtu 127 qdisc noop state DOWN mode DEFAULT group default qlen 300
 +    link/​ieee802.15.4 c6:​ba:​b2:​3c:​45:​e1:​55:​b4 brd ff:​ff:​ff:​ff:​ff:​ff:​ff:​ff
 +</​code>​
 +
 +現在、EUI64 のアドレスはランダムで割り当てています。\\
 +リリース時には、モジュールに割り当てた EUI64 を ldattach 時に取得するようになります。\\
 +
 +また、現状(Linux Kernel v4.0)での IEEE802.15.4 stack では、MTU が 127bytes 固定となっています。\\
 +IEEE802.15.4g(ECHONET Lite) では 255bytes を使うことになりますので、Kernel の変更を予定しています。
 +
 +\\
 +
 +==== IEEE802.15.4g の設定 ====
 +
 +インターフェースを UP するまえに、無線関係の設定を行います。\\
 +
 +\\
 +
 +=== チャネルの設定 ===
 +
 +"​iwpan"​ コマンドにより、wpan デバイスの状態を確認してみます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ iwpan list
 +wpan_phy wpan-phy0
 +supported channels:
 + page 9: 4,​5,​6,​7,​8,​9,​10,​11,​12,​13,​14,​15,​16,​17 ​
 +current_page:​ 0
 +current_channel:​ 0
 +cca_mode: 0
 +tx_power: 0
 +</​code>​
 +
 +チャネルは、Page:​ 9 の 4-17 (ARIB STD-T108 ch33,34 から ch59,60) が利用できます。\\
 +\\
 +
 +IEEE802.15.4g (920MHz) チャネル割り当て (ARIB STD-T108 表3-12 より)
 +
 +^  単位チャネル番号 ​ ^  中心周波数(MHz) ​ ^  channel ​ ^ ^  単位チャネル番号 ​ ^  中心周波数(MHz) ​ ^  channel ​ ^
 +|  24,25  |  920.7  |  -  | |  43,44  |  924.5  |  9  |
 +|  25,26  |  920.9  |  (0)  | |  44,45  |  924.7  |  -  |
 +|  26,27  |  921.1  |  -  | |  45,46  |  924.9  |  10  |
 +|  27,28  |  921.3  |  (1)  | |  46,47  |  925.1  |  -  |
 +|  28,29  |  921.5  |  -  | |  47,48  |  925.3  |  11  |
 +|  29,30  |  921.7  |  (2)  | |  48,49  |  925.5  |  -  |
 +|  30,31  |  921.9  |  -  | |  49,50  |  925.7  |  12  |
 +|  31,32  |  922.1  |  (3)  | |  50,51  |  925.9  |  -  |
 +|  33,34  |  922.5  |  4  | |  51,52  |  926.1  |  13  |
 +|  34,35  |  922.7  |  -  | |  52,53  |  926.3  |  -  |
 +|  35,36  |  922.9  |  5  | |  53,54  |  926.5  |  14  |
 +|  36,37  |  923.1  |  -  | |  54,55  |  926.7  |  -  |
 +|  37,38  |  923.3  |  6  | |  55,56  |  926.9  |  15  |
 +|  38,39  |  923.5  |  -  | |  56,57  |  927.1  |  -  |
 +|  39,40  |  923.7  |  7  | |  57,58  |  927.3  |  16  |
 +|  40,41  |  923.9  |  -  | |  58,59  |  927.5  |  -  |
 +|  41,42  |  924.1  |  8  | |  59,60  |  927.7  |  17  |
 +|  42,43  |  924.3  |  -  | |  60,61  |  927.9  |  -  |
 +
 +※ ECHONET Lite の推奨仕様([[http://​www.ttc.or.jp/​jp/​document_list/​pdf/​j/​STD/​JJ-300.10v2.1.pdf|JJ-300.10 第2.1版(PDF)]])では、100kbps時 **"​ARIB 規定 33〜60 チャネルの(奇数 + 偶数)チャネル、"​** とされているため、\\
 +上記チャネルの割り当てとしています。
 +
 +\\
 +
 +ch33,​34(中心周波数 922.5MHz, 帯域幅 400kHz) に設定してみます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ iwpan wpan-phy0 set channel 9 4
 +</​code>​
 +
 +\\
 +
 +再度確認してみると、page:​ 9, channel: 4 に設定されたことが確認できます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ iwpan list
 +wpan_phy wpan-phy0
 +supported channels:
 + page 9: 4,​5,​6,​7,​8,​9,​10,​11,​12,​13,​14,​15,​16,​17 ​
 +current_page:​ 9    <----
 +current_channel:​ 4 <----
 +cca_mode: 0
 +tx_power: 0
 +</​code>​
 +
 +\\
 +
 +=== PAN ID の設定 ===
 +
 +PAN ID を設定します。例として、0x1234 に設定してみます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ iwpan dev wpan0 set pan_id 0x1234
 +</​code>​
 +
 +\\
 +
 +PAN ID が 0x1234 に設定できました。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ iwpan dev wpan0 info
 +Interface wpan0
 + ifindex 9
 + wpan_dev 0x1
 + extended_addr 0x9065eb5ea23bce7e
 + short_addr 0xffff
 + pan_id 0x1234 ​ <​--------
 + type node
 + max_frame_retries -1
 + min_be 3
 + max_be 5
 + max_csma_backoffs 4
 + lbt 0
 +</​code>​
 +
 +\\
 +
 +==== 6LoWPAN リンクの作成 ====
 +
 +6LoWPAN は、wpan I/F を使用した仮想リンクですので、"​ip link" コマンドにより type "​lowpan"​ として作成します。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ip link add link wpan0 name lowpan0 type lowpan
 +</​code>​
 +
 +\\
 +
 +ip link show で確認すると、MTU 1280 bytes (IPv6 minimum MTU) の仮想リンク "​lowpan0"​ が作成できていることがわかります。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ip link show lowpan0 ​    
 +10: lowpan0: <​BROADCAST,​MULTICAST>​ mtu 1280 qdisc noop state DOWN mode DEFAULT group default ​
 +    link/​ieee802.15.4 90:​65:​eb:​5e:​a2:​3b:​ce:​7e brd ff:​ff:​ff:​ff:​ff:​ff:​ff:​ff
 +</​code>​
 +
 +\\
 +
 +==== インターフェース UP ====
 +
 +wpan0, lowpan0 デバイスを UP します。\\
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ip link set wpan0 up
 +root@plum:/​home/​user1#​ ip link set lowpan0 up
 +</​code>​
 +
 +\\
 +
 +wpan0, lowpan0 両デバイスのステートが "​UP"​ になったことを確認します。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ip link
 +1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default ​
 +    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00
 +2: dummy0: <​BROADCAST,​NOARP>​ mtu 1500 qdisc noop state DOWN mode DEFAULT group default ​
 +    link/ether 6e:​38:​24:​14:​91:​c0 brd ff:​ff:​ff:​ff:​ff:​ff
 +3: tunl0@NONE: <​NOARP>​ mtu 1480 qdisc noop state DOWN mode DEFAULT group default ​
 +    link/ipip 0.0.0.0 brd 0.0.0.0
 +4: gre0@NONE: <​NOARP>​ mtu 1476 qdisc noop state DOWN mode DEFAULT group default ​
 +    link/gre 0.0.0.0 brd 0.0.0.0
 +5: gretap0@NONE:​ <​BROADCAST,​MULTICAST>​ mtu 1462 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 +    link/ether 00:​00:​00:​00:​00:​00 brd ff:​ff:​ff:​ff:​ff:​ff
 +6: ip_vti0@NONE:​ <​NOARP>​ mtu 1364 qdisc noop state DOWN mode DEFAULT group default ​
 +    link/ipip 0.0.0.0 brd 0.0.0.0
 +7: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
 +    link/ether 00:​80:​6d:​8d:​30:​08 brd ff:​ff:​ff:​ff:​ff:​ff
 +8: eth1: <​NO-CARRIER,​BROADCAST,​MULTICAST,​UP>​ mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
 +    link/ether 00:​80:​6d:​8d:​30:​09 brd ff:​ff:​ff:​ff:​ff:​ff
 +9: wpan0: <​BROADCAST,​NOARP,​UP,​LOWER_UP>​ mtu 127 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 300
 +    link/​ieee802.15.4 90:​65:​eb:​5e:​a2:​3b:​ce:​7e brd ff:​ff:​ff:​ff:​ff:​ff:​ff:​ff
 +10: lowpan0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1280 qdisc noqueue state UNKNOWN mode DEFAULT group default ​
 +    link/​ieee802.15.4 90:​65:​eb:​5e:​a2:​3b:​ce:​7e brd ff:​ff:​ff:​ff:​ff:​ff:​ff:​ff
 +</​code>​
 +
 +\\
 +
 +ifconfig コマンドでも確認できます。こちらのほうが見やすいかもしれません。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ifconfig ​
 +eth0      Link encap:​Ethernet ​ HWaddr 00:​80:​6d:​8d:​30:​08  ​
 +          inet addr:​192.168.253.35 ​ Bcast:​192.168.253.255 ​ Mask:​255.255.255.0
 +          inet6 addr: fe80::​280:​6dff:​fe8d:​3008/​64 Scope:Link
 +          UP BROADCAST RUNNING MULTICAST ​ MTU:​1500 ​ Metric:1
 +          RX packets:​1219 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:802 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​1000 ​
 +          RX bytes:​109803 (109.8 KB)  TX bytes:​122197 (122.1 KB)
 +          Interrupt:​170 ​
 +
 +eth1      Link encap:​Ethernet ​ HWaddr 00:​80:​6d:​8d:​30:​09  ​
 +          inet addr:​192.168.254.254 ​ Bcast:​192.168.254.255 ​ Mask:​255.255.255.0
 +          UP BROADCAST MULTICAST ​ MTU:​1500 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​1000 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +lo        Link encap:Local Loopback  ​
 +          inet addr:​127.0.0.1 ​ Mask:​255.0.0.0
 +          inet6 addr: ::1/128 Scope:Host
 +          UP LOOPBACK RUNNING ​ MTU:​65536 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +lowpan0 ​  Link encap:​UNSPEC ​ HWaddr 90-65-EB-5E-A2-3B-CE-7E-00-00-00-00-00-00-00-00  ​
 +          inet6 addr: fe80::​9265:​eb5e:​a23b:​ce7e/​64 Scope:Link
 +          UP BROADCAST RUNNING MULTICAST ​ MTU:​1280 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +wpan0     Link encap:​UNSPEC ​ HWaddr 90-65-EB-5E-A2-3B-CE-7E-00-00-00-00-00-00-00-00  ​
 +          UP BROADCAST RUNNING NOARP  MTU:​127 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​300 ​
 +          RX bytes:0 (0.0 B)  TX bytes:276 (276.0 B)
 +</​code>​
 +
 +\\
 +
 +==== 疎通の確認 (Link Local) ====
 +
 +別の MA-E360/N を立ち上げ、無線のチャネルと PAN ID を同一に設定しておきます。\\
 +lowpan0 I/F の Link Local アドレスを確認し、そのアドレスに対して PING6 を送信してみます。\\
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ping6 fe80::​e7bf:​e85d:​44b7:​fd9a%lowpan0
 +PING fe80::​e7bf:​e85d:​44b7:​fd9a%lowpan0(fe80::​e7bf:​e85d:​44b7:​fd9a) 56 data bytes
 +64 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=1 ttl=64 time=102 ms
 +64 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=2 ttl=64 time=58.1 ms
 +64 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=3 ttl=64 time=58.1 ms
 +64 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=4 ttl=64 time=58.4 ms
 +64 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=5 ttl=64 time=58.0 ms
 +^Croot@plum:/​home/​user1# ​
 +</​code>​
 +
 +応答が返ってきました。\\
 +
 +6LoWPAN により、IEEE802.15.4 のフレーム長より長いフレームの送受信が可能か、PING6 のパケットサイズを長くしてみます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ping6 fe80::​e7bf:​e85d:​44b7:​fd9a%lowpan0 -s 1500 -i 5 -c 5
 +PING fe80::​e7bf:​e85d:​44b7:​fd9a%lowpan0(fe80::​e7bf:​e85d:​44b7:​fd9a) 1500 data bytes
 +1508 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=1 ttl=64 time=850 ms
 +1508 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=2 ttl=64 time=805 ms
 +1508 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=3 ttl=64 time=805 ms
 +1508 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=4 ttl=64 time=803 ms
 +1508 bytes from fe80::​e7bf:​e85d:​44b7:​fd9a:​ icmp_seq=5 ttl=64 time=804 ms
 +
 +--- fe80::​e7bf:​e85d:​44b7:​fd9a%lowpan0 ping statistics ---
 +5 packets transmitted,​ 5 received, 0% packet loss, time 20016ms
 +rtt min/​avg/​max/​mdev = 803.255/​813.828/​850.654/​18.453 ms
 +</​code>​
 +
 +1500 バイトに設定してもきちんと通信できることが確認できました。
 +
 +\\
 +
 +==== IPv6 アドレスの割り当て ====
 +
 +Ubuntu の標準設定ファイル((/​etc/​network/​interfaces))で設定します。\\
 +例ですので、"​2001:​dead:​beef::​1"​ にしてみます。
 +
 +\\
 +
 +<file conf interfaces>​
 +# interfaces(5) file used by ifup(8) and ifdown(8)
 +# Include files from /​etc/​network/​interfaces.d:​
 +source-directory /​etc/​network/​interfaces.d
 +
 +auto lo
 +iface lo inet loopback
 +
 +auto eth0
 +#iface eth0 inet static
 +# address 192.168.253.253
 +# netmask 255.255.255.0
 + #gateway 192.168.253.1
 + #​dns-nameservers 192.168.253.1
 + #post-up /​sbin/​ethtool -s eth0 autoneg off speed 100 duplex full
 +
 +iface eth0 inet dhcp
 +
 +auto eth1
 +iface eth1 inet static
 + address 192.168.254.254
 + netmask 255.255.255.0
 + #post-up /​sbin/​ethtool -s eth1 autoneg off speed 100 duplex full
 +
 +
 +iface wlan0 inet static
 + address 10.254.0.1
 + netmask 255.255.255.0
 +
 +
 +iface lowpan0 inet6 static
 + address 2001:​dead:​beef::​1
 + netmask 64
 +</​file>​
 +
 +\\
 +
 +ifup コマンドでアドレスを設定することができます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ifup lowpan0
 +Waiting for DAD... Done
 +root@plum:/​home/​user1#​ ifconfig lowpan0
 +lowpan0 ​  Link encap:​UNSPEC ​ HWaddr 90-65-EB-5E-A2-3B-CE-7E-00-00-00-00-00-00-00-00  ​
 +          inet6 addr: fe80::​9265:​eb5e:​a23b:​ce7e/​64 Scope:Link
 +          inet6 addr: 2001:​dead:​beef::​1/​64 Scope:​Global
 +          UP BROADCAST RUNNING MULTICAST ​ MTU:​1280 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +\\
 +
 +==== RA (Router Advertisement) の設定 ====
 +
 +以上で 920MHz 無線を **"​IPv6"​** として扱うことができるようになりましたので、通常の IPv6 と同じように使用できます。\\
 +まずは、radvd を立ち上げ、配下の MA-E360/N の IPv6 アドレスの自動設定を行ってみます。
 +
 +\\
 +
 +=== sysctl 設定の変更 ===
 +
 +radvd を導入する前に、IPv6 の転送を有効にしておく必要があります。\\
 +/​etc/​sysctl.conf に下記エントリを追加します。
 +
 +<​code>​
 +net.ipv6.conf.all.forwarding = 1
 +</​code>​
 +
 +すぐ有効化するために、コマンドラインで実行しておきます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ sysctl net.ipv6.conf.all.forwarding=1
 +net.ipv6.conf.all.forwarding = 1
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +\\
 +
 +=== radvd の導入 ===
 +
 +radvd パッケージを apt-get により導入します。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ apt-get update
 +〜〜〜 snip 〜〜〜
 +root@plum:/​home/​user1#​ apt-get install radvd
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following NEW packages will be installed:
 +  radvd
 +0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
 +Need to get 0 B/59.4 kB of archives.
 +After this operation, 162 kB of additional disk space will be used.
 +Selecting previously unselected package radvd.
 +(Reading database ... 20592 files and directories currently installed.)
 +Preparing to unpack .../​radvd_1%3a1.9.1-1.1ubuntu2_armhf.deb ...
 +Unpacking radvd (1:​1.9.1-1.1ubuntu2) ...
 +Processing triggers for ureadahead (0.100.0-16) ...
 +Setting up radvd (1:​1.9.1-1.1ubuntu2) ...
 +Starting radvd: ​
 +* /​etc/​radvd.conf does not exist or is empty.
 +* See /​usr/​share/​doc/​radvd/​README.Debian
 +* radvd will *not* be started.
 +localepurge:​ Disk space freed in /​usr/​share/​locale:​ 0 KiB
 +localepurge:​ Disk space freed in /​usr/​share/​man:​ 0 KiB
 +
 +Total disk space freed by localepurge:​ 0 KiB
 +
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +\\
 +
 +=== 設定 (/​etc/​radvd.conf) ===
 +
 +radvd の設定ファイルを作成します。
 +
 +<file conf radvd.conf>​
 +interface lowpan0
 +{
 +     ​AdvSendAdvert on;
 +     ​prefix 2001:​dead:​beef::/​64 { };
 +};
 +</​file>​
 +
 +\\
 +
 +=== 起動 ===
 +
 +radvd を起動させます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ service radvd start
 +Starting radvd: radvd.
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ps ax|grep radvd
 + 3497 pts/1    S      0:00 /​usr/​sbin/​radvd -u radvd -p /​var/​run/​radvd/​radvd.pid
 + 3499 ?        S      0:00 /​usr/​sbin/​radvd -u radvd -p /​var/​run/​radvd/​radvd.pid
 + 3501 pts/1    S+     0:00 grep --color=auto radvd
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +\\
 +
 +=== 動作の確認 ===
 +
 +きちんと Router Advertisement が機能しているか、もう片方側の MA-E360/N の情報を見てみます。\\
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ifconfig lowpan0
 +lowpan0 ​  Link encap:​UNSPEC ​ HWaddr 9A-37-05-E0-5E-7A-C3-5B-00-00-00-00-00-00-00-00  ​
 +          inet6 addr: 2001:​dead:​beef:​0:​650e:​f3b:​b1fb:​832b/​64 Scope:​Global ​  <​----
 +          inet6 addr: fe80::​9837:​5e0:​5e7a:​c35b/​64 Scope:Link
 +          inet6 addr: 2001:​dead:​beef:​0:​9837:​5e0:​5e7a:​c35b/​64 Scope:​Global ​  <​----
 +          UP BROADCAST RUNNING MULTICAST ​ MTU:​1280 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +このように、2001:​dead:​beef:​0/​64 のアドレスが自動で振られていることが確認できました。\\
 +
 +\\
 +
 +radvd を動作させている MA-E360/N へ、グローバルアドレスで PING6 が通るか確認してみます。
 +
 +<​code>​
 +root@plum:/​home/​user1#​ ping6 2001:​dead:​beef::​1 -c 5
 +PING 2001:​dead:​beef::​1(2001:​dead:​beef::​1) 56 data bytes
 +64 bytes from 2001:​dead:​beef::​1:​ icmp_seq=1 ttl=64 time=74.7 ms
 +64 bytes from 2001:​dead:​beef::​1:​ icmp_seq=2 ttl=64 time=74.5 ms
 +64 bytes from 2001:​dead:​beef::​1:​ icmp_seq=3 ttl=64 time=74.6 ms
 +64 bytes from 2001:​dead:​beef::​1:​ icmp_seq=4 ttl=64 time=74.5 ms
 +64 bytes from 2001:​dead:​beef::​1:​ icmp_seq=5 ttl=64 time=74.3 ms
 +
 +--- 2001:​dead:​beef::​1 ping statistics ---
 +5 packets transmitted,​ 5 received, 0% packet loss, time 4006ms
 +rtt min/​avg/​max/​mdev = 74.382/​74.578/​74.783/​0.368 ms
 +root@plum:/​home/​user1# ​
 +</​code>​
 +
 +Link Local でないアドレスでも通信ができることが確認できました。
 +
 +\\
 +
 +===== 資料 =====
 +
 +==== パケットキャプチャ ====
 +
 +参考のため、wpan0 I/F でキャプチャしたデータを置いておきます。\\
 +Router Advertisement や Neighbor Solicitation,​ Neighbor Advertisement がでていること、\\
 +ICMP のパケットが 6LoWPAN により分割されて送信されていることが確認できます。
 +
 +^  File  ^  Stat  ^  Note  |
 +|{{:​mae3xx_ope:​setup_lowpan:​6lowpan_capture.pcap|}}|2015/​05/​15 13:30 21.7 KB|6LoWPAN packet capture|
 +
 +\\
mae3xx_ope/setup_lowpan/start.1431662254.txt.bz2 · 最終更新: 2015/05/15 12:57 by admin