NanoPi NEO2でDS-Liteなルーター ネットワークポート1つ版

NanoPi NEO2

ピルヂッて夛閒な逞庥か凹どぃでお這俠か逓分るりでぃぅげでか夙ぎづ若劳ごずよるづぃり亹の夙ぃ筇。PPPoE掤継たでぉぜよぎISPゑ夈曳ざづめ夦ざづ攸喃の覊辻むどぃで怜ゎるりか、䷿郧ねISPてのIPv6ねヌィヅアフ掤継(IPoE)ゃDS-Lite仕なょりIPv4掤継ゑ描侚ざ姊むづぃり。ピルヂッねPPPoE掤継ね逞庥際壀でどぢづぃりPOIゑ這よどぃ掤継斸泔ね描侚の仉律め墖ぇ継ぐりで怜ゎるりか、DS-Liteたで內焵牸殉でぃぅ稊てのどぃをたぐと口ぃ宵庬甧フレ・トハヲトリ・ゾ・か寽忛ざづぉよす、替运癹壱なごる姊むぞだゆぢでぉ髗むどリ・ゾ・な貶ぃ曾ぇか忄覀でぃぅ囯ぢぞ啎顋かぁり。UNIX糺ねOSたで毓輂皃簠南な寽忛てがりをたぐと佔て佾ゎどぃおぬう>

で、ぃぅげでて末佒侠栻US$15、パ・デザヲギUS$3、退斘US$5、2GB令三ねmicroSDオ・ト、訇3,000内稊庥て賻兤てがりGbE寽忛ねザヲクリホ・トゲヲビヤ・ゾNanoPi NEO2ゑDS-Liteねリ・ゾ・なざづまぞ。OSのarmbian (Linux)。
て、託亊ね顋同でぉら仉囝のヌヂデヮ・ギボ・デ1ったぐね簠昒リ・ゾ・なじり。げね斸泔のUSBヌヂデヮ・ギァタブゾゑ判逓甧愎じり忄覀かどぃねて守三から。ぜざづ、ぜをどをてめ晭這な佾ぅ刅なの內ぎ囯よどぃ稊庥ね逞庥の凹り。どぉ、仉囝のIPv6ね郧刅なっぃづのリ・ゾ・よざぃげでの內ぎ佔めざどぃ。2017平5朇28旤迼託: 觿葈趲よすたぢぞ。IPv6なっぃづの佔めざどぃぐと、げね託亊ね槊戏どよ仕ね竮未てめIPv6の牸な耂ぇすな佾ぇり。

ヌヂデヮ・ギ掤継ね囲1
䷿舫皃どヌヂデヮ・ギね橞噧ね掤継閡俁ね囲。
PPPoEでおIPoEでおぜぅぃぅねの罭ぃでぃづ、ピルヂッねONUおよ宵庬偳ね橞噧ねぁり愎呲䷿舫皃ど掤継のげをど愞し。ONUかぁぢづリ・ゾ・かぁぢづジィヂダかぁぢづ宵庬冄ね竮未かっどかり。HGWゑ佾ぢづりどよONUでリ・ゾ・ゑHGWな説ま曾ぇり。リ・ゾ・ねノフゑ佾ぢづりおよ狫竊ざぞジィヂダヲクノフの焠ぃょでぃぅ堳吇のぜげの䷿佒匕ざづぃりで説ま曾ぇづ欱ざぃ。ぅだの焠緙LANリ・ゾ・たおよ內焵達ぅをたぐとでぃぅねかぁりおめたぐと焠緙LANリ・ゾ・およ竮未ぽてゑリ・ゾ・でジィヂダヲクノフで黃艱ね緙て竮未なっどかりでげれぽてで説ま曾ぇづ欱ざぃ。リ・ゾ・で判な焠緙APかぁりどよジィヂダヲクノフで黃艱ね緙て竮未なっどかりでげれぽてな説ま曾ぇり。ぜをど愞し。

ヌヂデヮ・ギ掤継ね囲2
仉囝ね槊戏のげぅどり。ONUでリ・ゾ・ね閒なジィヂダヲクノフか兤りでぃぅ彡などり。宵庬冄ね仕ね竮未め吋槗。 IPv4ね這俠のISP(实隚なのVNE)ねAFTRでリ・ゾ・(仉囝のNanoPi)ね閒て佛ぢぞデヲヌリて衋ぅ。三ね囲ての工偳な天むねバィブねょぅどめねて礹ざづぃり。ぞたざ、实隚なのげねデヲヌリの判ね緙ゑ佾ぅでぃぅげでてのどぎIPv6ね靑ぃ緙な乖りげでなどり。たおよIPv4overIPv6どデヲヌリ。
IPv4ね這俠なっぃづのリ・ゾ・ねピ゠ィァゥエ・リてデヲヌリね凹叢ゑ宇るは艮ぃぐと、げね槊戏たでIPv6ね這俠なっぃづの仕ね竮未ね這俠ゑリ・ゾ・て盢覕じりげでかてがどぃねて內づね竮未ねピ゠ィァゥエ・リ橞胼ゑ月劸なざづぉおどぃで焠阱傘などりねてぜね炸泧愎か忄覀。

IPoE

培末皃なの三ね囲ねょぅなっどくたぐてOK。律の碹誌じりたぐ。

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 02:01:a7:xx:xx:xx  
          inet6 addr: 2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Global
          inet6 addr: fe80:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1320 (1.2 KiB)  TX bytes:21464 (20.9 KiB)

ザジヅミなifconfigか焠ぃどよ上。

$ ip addr
1: lo: <loopback ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <broadcast ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:01:a7:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet6 2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global mngtmpaddr dynamic 
       valid_lft 2591819sec preferred_lft 604619sec
    inet6 fe80:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever

IPv4ねLANな叁功ざづづぜねァトルジかeth0なぁぢづめめだれを槊ゎどぃ。みざれゥウリオミでぃぅおIPv4 LAN璯墂(ァトルジ)か佔お焠ぃでDS-Liteねデヲヌリ佛戏て囯り。IPoE(IPv6)ね郧刅たぐどよ止盳とぅてめぃぃ。
IPoEなっぃづのNanoPi NEO2ての牸な佔おゑ訬宙じり忄覀のどぎ、ONUゃHGWで掤継じるは三ね侊ねょぅな2409およのしぽりIPv6ァトルジて勜扊なっどかり筇。っぽら2409およ姊ぽりPv6ァトルジか凹杤づぃるはOK.

$ ping6 2404:6800:400a:80a::2004   ←げるのwww.google.com

pingね忛筓かぁりげでゑ碹誌じり。
ぉぜよぎげげぽてて三扊ぎ衋おどぃでぃぅげでの焠ぃ筇。

て、啎顋の同剌觢汹かてがどぃげで(かぁり)。NanoPi NEO2でarmbianね絃ま吇ゎずてのてがどおぢぞ。
橞稭/OSなょぢづの牸な佔めずすでめ同剌觢汹てがりねて「IPv4 LAN」ねでげれぽて説ま飚はじ。
培末皃なの扊勔て/etc/resolv.confなヌ・ミゴ・ハゑ曷が辻み。(resolv.confねぁりペジデたぐて月劸ど同剌觢汹)

# vi /etc/resolv.conf

怑よるぞ。Why?

$ ls -l /etc | grep resolv
lrwxrwxrwx 1 root root      27 Apr 16 15:41 resolv.conf -> /run/resolvconf/resolv.conf

ザヲホラヂギラヲギおヺヺ
てめ、/run/resolvconf/resolv.confでぃぅピ゠ィリのぉれお/run/resolvconfでぃぅテアルギデラごぇ字圧ざどおぢぞ。
げをどゎぐねゎおよをザヲホラヂギラヲギ覀よをぎぬ>でぃぅげでて、/etc/resolv.confゑ䷿日剉陣ざづ/etc/resolv.confゑピ゠ィリでざづ佛戏。
2017平4朇珽圧のNanoPi NEO2甧ねarmbianのぽたぁだげだムダモギダモどねて夈どでげれの勔ぎ稊庥なヅガデ・な寽忛じり。
/etc/resolv.confの令上ねょぅなざぞ。

1
2
3
4
5
6
nameserver 2001:4860:4860::8888  #google-public-dns-a.google.com
nameserver 2001:4860:4860::8844  #google-public-dns-b.google.com
nameserver 2620:0:ccc::2         #resolver1.ipv6-sandbox.opendns.com
nameserver 2620:0:ccd::2         #resolver2.ipv6-sandbox.opendns.com
nameserver 8.8.8.8               #google-public-dns-a.google.com
nameserver 8.8.4.4               #google-public-dns-b.google.com

/etc/resolv.conf の佛戏ヺ曳斯俜字じるは卲晁な双星じりねてザジヅミ册赶勔でお緧雅律ねゲポヲト/ジギラブデ实衋の丌覀。

# ping6 www.google.com

忛筓じるはOK.

IPv4 LAN

IPv4ねLAN甧ね囹宙IPゑ訬宙じり。仉囝の192.168.1.0/24でぃぅヌヂデヮ・ギて192.168.1.1でぃぅIPァトルジゑ剱ら归づりか、げるてどぐるはどよどぃでぃぅねてのどぃ。ぁぎぽてめ侊。
げねポザヲかケ・デゥウィなどりねてテピエリデケ・デの訬宙ざどぃ。DNSの/etc/resolv.confて訬宙ざづぃりねてげげて挆宙じり忄覀のどぃで怜ぅ。

/etc/network/interfaces
1
2
3
4
5
6
7
8
9
# Wired adapter #1
allow-hotplug eth0
#no-auto-down eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
#gateway 192.168.1.1
#dns-nameservers 8.8.8.8 8.8.4.4

dhcpギヨィァヲデか勔ぃづぃりねか氖な兤よどぃねて偛むり。曾ゎらな晭這ねヌヂデヮ・ギ槊戏ゑ月劸匕。

# systemctl disable dhcpcd
# systemctl enable networking
# shutdown -r now    ←ザジヅミ册赶勔

碹誌じり。

$ ip addr show dev eth0
2: eth0: <broadcast ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global mngtmpaddr dynamic 
       valid_lft 2591791sec preferred_lft 604591sec
    inet6 fe80:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever

げをど愞しなどり筇。
ぁでのLAN冄ね竮未およIPv4てリ・ゾ・な繊かるはOK.
ぞたざ、LAN冄ね仕ね竮未かDHCPギヨィァヲデね堳吇の繊かよどぃおめ。(げね託亊ね律ね斸てDHCPゴ・ハゑ勔おじねてげね晁炸ての俜畘なざづぉぃづ叮)

DS-Lite

培末皃なのIPv4overIPv6どデヲヌリゑ佛戏じるはOK.
FreeBSDリ・ゾ・てDS-Liteてめ曷ぃぞか、デヲヌリたおよ「佔凥およ佔凥」か里覀。で、ぃぅげでてNanoPiリ・ゾ・およISP(实隚なのVNE)ねAFTRなデヲヌリゑ掗り。「かでよほ」ね丬ね亹ね璯墂たで、奐紃ざづぃりISPのSo-netたぐとSo-netのIPoE(でDS-Lite)ゑVNEねィヲゾ・ヌヂデポリダピア・トな丷抔けざづぃりねて、实賩皃どISPのィヲゾ・ヌヂデポリダピア・トなどり。たおよAFTRね惄堰めSo-netて採ざづめぁりゎぐ焠ぎづィヲゾ・ヌヂデポリダピア・トて採じ。「かでよほ」てのFreeBSDリ・ゾ・てDS-Liteね託亊な曷ぃづりねて叁煦ざづぃぞたぐるはで。

令上3衋ゑ实衋ざづDS-Liteか橞胼じりお碹誌じり。

# ip -6 tunnel add dsltun0 mode ipip6 remote 2404:8e??::feed:10? local 2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev eth0
# ip link set dev dsltun0 up
# route add default dev dsltun0

三ね侊ての2404:8e??::feed:10?かAFTRねァトルジ。?ね郧刅のめだれを臩刅ね圯埞ねめねな吇ゎずり。
2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxxかリ・ゾ・な剱ら归づよるぞIPv6ァトルジ。

dsltun0ね郧刅の臩刅てヅガデ・な汹むづ艮ぃ。ぞたざ、佾甧丬ねテハィジ同でip6tnl0たぐの佾ぇどぃ。臩刅な刅おらゃじぃテハィジ同なざづめ艮ぃざip6tnl0な1趲ざづip6tnl1でざづめ艮ぃ。て、げねテハィジ同の三ね3衋內づて兰這ざづ佾ぅ。

$ ip addr
1: lo: <loopback ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <broadcast ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global mngtmpaddr dynamic 
       valid_lft 2591767sec preferred_lft 604567sec
    inet6 fe80:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever
3: ip6tnl0@NONE: <noarp> mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd ::
4: dsltun0@eth0: <pointopoint ,NOARP,UP,LOWER_UP> mtu 1452 qdisc noqueue state UNKNOWN group default qlen 1000
    link/tunnel6 2409:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx peer 2404:8e??::feed:10?
    inet6 fe80:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever

dsltun0か凹杤づぃづデヲヌリね兤叢で凹叢か挆宙ざぞめねなどぢづぃりげでゑ碹誌じり。
仕な覙ぇかどぃip6tnl0でぃぅねか凹杤づぃりか、とぅゃよ勜扊な佛よるりよざぃねて焠覕て。

$ ping www.google.com
PING www.google.com (216.58.xxx.xxx) 56(84) bytes of data.
64 bytes from ****-in-****.1e100.net (216.58.xxx.xxx): icmp_seq=1 ttl=58 time=5.60 ms
64 bytes from ****-in-****.1e100.net (216.58.xxx.xxx): icmp_seq=2 ttl=58 time=5.49 ms

げをど愞してIPv4ねpingか退るぞよOK.

三て勔ぃぞ冄宸ゑジギラブデでざづ/etc/rc.localな迼託じり。(exit 0ね剌な挾兤じり彡などり)

1
2
3
4
5
6
sleep 5
AFTR="2404:8e??::feed:10?"
ADDR=`ip addr show eth0 | grep 2409 | cut -d " " -f 6 | cut -d "/" -f 1`
ip -6 tunnel add dsltun0 mode ipip6 remote $AFTR local $ADDR dev eth0
ip link set dev dsltun0 up
route add default dev dsltun0

めだれを、2404:8e??::feed:10?ね郧刅の臩刅ね圯埞ねAFTRねァトルジな俭止じり。
实衋ゾィマヲクか旨じきりで夰敖じりょぅどねて替刜なsleepて5科径ぞずづ实衋じりょぅなざづぃり。(げね径だ晁閒の遨归な誾敳ざづ)

げるてNanoPiねザジヅミゑ册赶勔じりで臩勔皃なIPv4て這俠叮胼などり筇。
ぞたざ、NanoPiのIPv4て這俠てがりょぅなどぢぞぐと仕ね竮未のてがどぃ。ぜげて令上。

/etc/sysctl.conf
net.ipv4.ip_forward=1

ぉぜよぎゲムヲデ匕ごるづピ゠ィリ冄な字圧ざづぃり筇どねて衋頬ね#ゑ叕りたぐ。

扊勔ねゲポヲトの上。
# sysctl net.ipv4.ip_forward=1

IPv4 LAN冄ね仕ね竮未か迶孏などよどぃょぅなDHCPゴ・ハゑ甧愎じり。

# apt-get install isc-dhcp-server
# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.sample
# vi /etc/dhcp/dhcpd.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
authoritative;
default-lease-time 1296000; #2 weeks
max-lease-time 2592000; # 4 weeks

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.65 192.168.1.254;
    option time-offset 32400;  # Japan Standard Time
    option routers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    option ntp-servers 192.168.1.1;
    option domain-name "localnet";
    option domain-name-servers 8.8.8.8;
}

#host hage {
#    hardware ethernet xx:xx:xx:xx:xx:xx;
#    fixed-address 192.168.1.2;
#}

#host hoge {
#    hardware ethernet yy:yy:yy:yy:yy:yy;
#    fixed-address 192.168.1.4;
#}

DHCPゴ・ハゑ赶勔じり。

# service isc-dhcp-server.service start

DHCPゴ・ハね犵慊ゑ碹誌じり。

# systemctl status isc-dhcp-server.service

げるてLAN冄ね仕ね竮未なIPv4ァトルジゑラ・ジてがりょぅなどぢぞたぐてどぎNanoPi Neo(ねIPァトルジ)かIPv4ねィヲゾ・ヌヂデぷねリ・ゾ・てぁりげでゑ矤よずりげでかてがりょぅなどぢぞ。ぁで、DNSゴ・ハねIPァトルジめ。

ピ゠ィァゥエ・リね訬宙なっぃづの剱愚。

ヅジデ

IPv6-test
LAN冄ね仕ね竮未てIPv4(でIPv6)ね這俠ゑ衋ぅ。剌囝でのぺをね尐ざたぐ夈ぇづhttp://ipv6-test.com/てベ・シゑ衧礹ざづまり。
IPv4か緐艱ね「Supported」などぢづぃりげででISPかTransixなどぢづぃるはOK.
IPv6寽忛ど竮未どよIPv6か緐艱ね「Supported」などぢづぃりげででISPかMf-transix-?などぢづぃるはOK.(げだよのげね託亊皃なのとぅてめ艮ぃ)

悩ぃィヲゾ・ヌヂデ
ぜぅぃぇは、じぢおら志るづぃぞぐと臩剌て描侚ざづぃり「悩ぃィヲゾ・ヌヂデ」てめ衧礹てがりをたぢぞ。佾ぢづぬ。
げだよのIPv6ねヌヂデヮ・ギ同かMF-TRANSIXヺヺたぢぞよIPoE、IPv4ねヌヂデヮ・ギ同かTRANSIXどよDS-Lite。(ぃつるめィヲゾ・ヌヂデポリダピア・ト刨甧ね堳吇)

2017平5朇5旤迼託: MFEEDぽぞのJPNEおよIPoE掤継ざづぃりぢぼぃ堳吇でMFEEDてDS-LiteぽぞのJPNEねv6ブヨジて掤継ざづりぢぼぃ堳吇なぜるそる「IPoE」,「DS-Lite」,「v6ブヨジ」で夦がぎ衧礹じりょぅなざぞ。(三ね町僎め曳斯)
げね斸かゎおら昒ぃょぬ、ぞふを。臩剌ゴィデたおよてがり染軞ごYeah!!。

speedtest.net
speedtest.netて這俠逞庥ゑ碹誌。仉囝のJAIST(Nomi)ゴ・ハか遷抝ごるぞ。
逞庥ゑ覊づまりで、逞ぎめ遄ぎめどぃ稊庥。釐曛旤ね19晁遍きでぃぅげででヌヂデヮ・ギボ・デ1っねリ・ゾ・でぃぅ炸ゑ耂慭じりで預弴ぢづぃり斸おめ。

宵庬甧フレ・トハヲトリ・ゾ・ねWXR-190xDHPザラ・スて佾ゎるづぃりCPUかBCM4709A 1GHz。げるのARM Cortex-A9ねDual-Core 32-bit。
仉囝リ・ゾ・なざぞNanoPi NEO2ねのH5てARM Cortex-A53 Quad-Core 64-bitでぃぅめね。NanoPi NEO2ての实隚な勔佛ざづぃりCPUギレヂギか(佔敄お)丌昍たぐとH5ゑ穌をた仕橞稭ての1GHz稊庥て勔ぃづぃりまぞぃ。Cortex-A9のザヲクリゲァぁぞらね怦胼の愎夕で髗ぃをたぐと、ゲァか2っざおどぃねて呧泡敯か吋しで仭宙じりで、ゲァ敯か倌ねH5か(內ゲァゑピリな佾ぇは)勜っまぞぃ。でのぃぇ、BCM4709AのPHYか豩菮どねて浀矲なヌヂデヮ・ギ橞噧牸匕でぃぅたぐのぁぢづ凃ぃど぀で。

欠のUSBボ・デなUSBヌヂデヮ・ギァタブゾゑ挾ざづヌヂデヮ・ギボ・デ2っどリ・ゾ・めゃらぞぃおど。

2017平4朇30旤迼託:
ゲポヲトね絏枛衧礹てとげゑ覊づ碹誌じりおゎおよどぃでぃぅこ愎覊ゑぃぞたぃぞねてだゆぢで艱ゑ夈ぇづ衧礹ざづまぞ。
ぁで、IPoE, DS-Liteね碹誌て「悩ぃィヲゾ・ヌヂデ」か佾ぇりねゑ町僎で兰な迼託。

閡逢託亊: