LoginSignup
2
0

More than 5 years have passed since last update.

ESPRESSObinでDS-Lite

Last updated at Posted at 2018-01-03

armボードESPRESSObinで、DS-Liteを使うルータを作成した記録。

2018-01-03 20.43.41.jpg

まずポチる

自分の場合は、米amazonでポチりました。ついでに、12V電源32GBマイクロSDカードも一緒に。USB給電もできますが、SATAデバイスを使う場合は、12V電源を使わないと、SATAの電源が12Vなのでこれが給電できないのではないかと思います。

OSインストール

OSには、Ubuntu16.04LTSを使用。ここを参考に、マイクロUSBへイメージをコピーします。

シリアルコンソール

起動の様子は、Linuxからだと、Kermitを使ってシリアルコンソールにつなげてみることができます。

(別OSから) $ sudo apt install ckermit
(別OSから) $ sudo kermit
C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux+SSL+KRB5 (64-bit)
 Copyright (C) 1985, 2011,
  Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/root/) C-Kermit>
(/root/) C-Kermit>set line /dev/ttyUSB0
(/root/) C-Kermit>set speed 115200
/dev/ttyUSB0, 115200 bps
(/root/) C-Kermit>set carrier-watch off
(/root/) C-Kermit>set flow-control none
(/root/) C-Kermit>set handshake none
(/root/) C-Kermit>set prefixing all
(/root/) C-Kermit>set streaming off
(/root/) C-Kermit>set parity none
(/root/) C-Kermit>connect
Connecting to /dev/ttyUSB0, speed 115200
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
(ここでESOPRESSObinの電源ON)

不安定

自分の場合は、マイクロSDカードから起動後、すぐカーネルクラッシュして全然安定しませんでした。なので、試しにUSBメモリから起動したところ、嘘のように安定しました。

SDカードへOSをインストールしたときと動揺の手順でUSBメモリへOSをインストールし、こちらの手順に従い、USBから起動します。

USB起動をデフォルトで行うようにするには、run bootusbの前に、saveを打てば良いです。

カーネルビルド

その後、メインラインのkernel-4.14からSDカードもサポートされるようになったので、今ではメインラインのカーネルをビルドして、SDカードから起動して使用しています。

DS-Lite

ネットワークデバイス設定

ネットワークに接続するには、まずデバイスの設定が必要です。ESPRESSObinのネットワークデバイスは、通常のEthernetデバイスではなく、スイッチデバイスが使われているためちょっと特殊です。

eth0上にwanというデバイスを構築します。また、内部ネットワーク用に、lan0を作ってブリッジを設定します。/etc/network/interfaceは次のとおりです。

auto eth0
iface eth0 inet static
      address 0.0.0.0
      mtu 3000

auto wan
iface wan inet static
      address 192.168.0.2
      netmask 255.255.255.0
      gateway 192.168.0.1

auto lan0
iface lan0 inet static
      address 0.0.0.0

#auto lan1
#iface lan1 inet static
#      address 0.0.0.0

auto br0
iface br0 inet static
      address 192.168.10.1
      network 192.168.10.0
      netmask 255.255.255.0
      broadcast 192.168.10.255
      dns-domain hoge.fuga.com
      bridge_ports lan0 lan1

これは、DHCPでなくスタティックアドレスの設定例です。なお、Mac addressは、同じものが割り振られるようです。私は、lan1を有効にしたらマックアドレスが被っているせいか、おかしな動きをしたので有効にしていません。

IPv6の取得

ipv6のアドレスの取得には、dibbler-clientというものを使用しました。

$ sudo apt install dibbler-client

設定(/etc/dibbler/client.conf)は、以下の通りです。

log-mode short
log-level 7

iface wan {
# ask for address
    ia
    pd
}

確か、サービスを有効にしてIPアドレスを取得したのだと思います。

$ sudo service dibbler-client start

これで、IPv6がwan側に設定されるので、メモします。確か、ifconfigで見たと思います。

$ ifconfig wan
wan       Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet6 addr: yyyy::yyyy:yyyy:yyyy:yyyy/64 Scope:Link
          inet6 addr: xxxx:xxxx:xxxx:x:xxxx:xxxx:xxxx:xxxx/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12662357 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6227358 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13480241728 (13.4 GB)  TX bytes:1420375188 (1.4 GB)

この中のinet6...Scope:Globalのほうが、外部ネットワークに接続されているipv6のアドレスです。

defaut gwは、traceroute6で調べました。

 traceroute6 www.google.co.jp
traceroute to www.google.co.jp (2404:6800:400a:806::2003), 30 hops max, 80 byte packets
 1  zzzz:zz:zzzz:z:zzz:zzzz:zzzz:zzzz (zzzz:zz:zzzz:z:zzz:zzzz:zzzz:zzzz)  0.612 ms  0.699 ms  0.849 ms
 2  * * *
 3  * * *
 4  * * *
  :

このipv6のアドレスは半固定らしく、変わることもあるようですが、これを固定アドレスで先程のinterfaceに設定してしまいました。これは自己責任でお願いします。何かいい方法があったら教えてください。

auto wan
iface wan inet6 static
      address xxxx:xxxx:xxxx:x:xxxx:xxxx:xxxx:xxxx
      netmask 64
      gateway zzzz:zz:zzzz:z:zzz:zzzz:zzzz:zzzz

IPv4→IPv6の変換の部分は、/etc/network/if-up.d/000iptunnelなどとして書くのが本当のような気がしますが、うまく行かなかったので、/etc/rc.localに書きました。下に出てくるIPx6のxxxのアドレスは、グローバルアドレスと同じになります。

REMOTE='2404:8e00::feed:100'
LOCAL='xxxx:xxxx:xxxx:x:xxxx:xxxx:xxxx:xxxx'
#echo $LOCAL

# IPIP6 tunnel linkup
ip -6 tunnel add ip6tnl1 mode ip4ip6 remote $REMOTE local $LOCAL dev wan
ip link set dev ip6tnl1 up

ifconfig ip6tnl1 mtu 3000

# IPv4 routing
route add default dev ip6tnl1

これで、設定は完了です。リブートしてもつながることを確認しましょう。

この設定で、私の場合は一番いいときで200Mbpsくらい出ます。

2
0
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
2
0