NanoPi NEO2をv6プラスのルーターにする 後編

斯ざぎ NanoPi NEO3ゑv6ブヨジねリ・ゾ・なじり systemd-networkd + nftables ゑ曷がぽざぞ。げね託亊で吇ゎずづこ叁煦上ごぃ。

NanoPi NEO2ゑv6ブヨジねリ・ゾ・なじり
USBヌヂデヮ・ギァタブゾ(黑)ゑ繊ぃたNanoPi NEO2(釐)。ヌヂデヮ・ギグ・フリの朩掤継。げるなタィゼ・ねmicroUSBねACァタブゾゑ繊く。ジデル・シの律迯じりか200内稊庥ね2GBねmicroSDオ・トどねてグ・ジ吪むづNanoPi NEO2のザジヅミ內佒て3000内稊庥。迼功て仉囝の1000内ねUSBヌヂデヮ・ギァタブゾ。てめ止盳どでげれUSBヌヂデヮ・ギァタブゾの焠ぎづめ艮ぃざUSB2.0ね刵陏て替夦逞庥か遄ぎどりねてみざれ覀よどぃおど。

顋同の「NanoPi NEO2ゑ」で曷ぃづぃりぐとNanoPi NEO2てどぎづのどよどぃ覀紟の內ぎ焠ぎづ橞杏でざづのPCどとゑ吪むぺほ佔てめ、Linux內舫て這甧ざぽじ。

剌囝のv6ブヨジねMAP-Eゑ訬宙じりぞむねァトルジヺボ・デねポヂビヲクゑ訇箖ざぞ。仉囝のぜね倣ゑ佾ぢづNanoPiNEO2ゑIPv4リ・ゾ・なじり。

げね託亊てのNanoPi NEO2ねヌヂデヮ・ギボ・デのeth0てげるゑLAN偳NICでじり。 USBねヌヂデヮ・ギァタブゾのenxenxXXXXXXXXXXXXて、げるゑIPv6ねWAN偳NICでじり。IPv4 over IPv6ねデヲヌリゑ掗りねてぜねヌヂデヮ・ギィヲゾ・ピウ・ジゑip6tnl1でじり。

armbian八弎ゴィデねNanoPi NEO2甧ねタゥヲレ・トベ・シてのDebian StretchでUbuntu Xenialの2018平1朇上旫ねめねか替斯て、ぜる令陌曳斯ごるづぃどぃ。曳斯ごるづぃりねのUbuntu bionicたぐ。ぜるごぇめNightly觿ぃっっ逓分る逓分るてララ・ジごるづぃり犵泀。
倊亹皃なのDebian Stretchか奼まどねて晁々ヒリトざづGoogle Driveな三けづぃり。ヒリトォブザユヲの弨ネ・ポリどねて重艮ヒリトてょぐるは佾ぢづ上ごぃ。げね託亊てのヒリトざぞArmbian_5.55_Nanopineo2_Debian_stretch_next_4.17.11て勔佛碹誌ざづぃり。
ィム・シゑ曷が辻みmicroSDオ・トの2GB稊庥ぁるはィム・シゑ曷が辻をた犵慊てリ・デFSね佾甧玆か70%稊庥。ぃれぃれ兤るづでぃぅげでてのどぎリ・ゾ・封甧稊庥どよ曷が揚ぇめぺほ癹甞ざどぃねて澿守ね2GBて區刅おで。替运の4GBか退斘辻まて200〜400内稊庥。2GBのめぅ壱ぢづりねゑ覊おぐどぃ。旤末たでAmazonでおどよぽたぁりおめ。焠駃な髗ぃおよ貶ゎどぃぐと。

armbianね替运ねdebian stretch(仕め)のヌヂデヮ・ギィヲゾ・ピウ・ジねeth0か樘溕て焠劸でぃぅ嫋ど犵慊などぢづぃりねて令剌ねょぅなmicroSDオ・トなOSィム・シゑ焻ぃづヌヂデヮ・ギグ・フリ繊ぃたよじくなSSHて這俠てがりでぃぅょぅなの儩ざぎどぃ。microSDオ・トなarmbianゑ曷が辻をたよ、NanoPi NEO2な挾じ剌なPCてぜねmicroSDオ・トねピ゠ィリザジヅミゑ閊ぃづ令上ね夈曳ゑ衋ぅ。

/etc/network/interfaces.default (2衋迼託)
1
2
3
#auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

曷が辻をたよmicroSDオ・トゑ守內ど斸泔てァヲポゥヲデざづおよ、NanoPi NEO2な挾ざづ雺溏抔兤。
armbianね刜朞訬宙ゑ遨分な衋ぅ。(げね託亊ての刜朞訬宙の眀畤)

/etc/sysctl.conf (1衋夈曳、1衋迼託)
1
2
net.ipv4.ip_forward=1                    #IPv4リ・ゾ・ね挆宙
net.ipv6.conf.eth0.disable_ipv6=1        #LAN偳のIPv6ゑ焠劸なじり

仉囝のIPv4甧ねリ・ゾ・なじりねてnet.ipv4.ip_forward=1ゑ挆宙ざぞ。
ぞたざ、ピエヮ・テアヲクごずぞぃねのデヲヌリィヲゾ・ピウィジたぐどねて、仕ねヌヂデヮ・ギィヲゾ・ピウィジてピエヮ・テアヲクの囯りでぃぅ堳吇の/etc/sysctl.confてnet.ipv4.forwarding=1ゑ挆宙じりねてのどぎ、デヲヌリゑ弴ぢぞ律なsysctl net.ipv4.conf.デヲヌリIF同.forwarding=1 ゑ实衋じり。ザジヅミ赶勔晁なのデヲヌリィヲゾ・ピウィジか字圧ざどぃねて/etc/sysctl.confての挆宙てがどぃ炸な泧愎。

tracerouteでtcpdumpゑィヲジデ・リじり。げるかぁりでヌヂデヮ・ギね疍這碹誌な侾刨。

# apt-get update                      #バヂグ・シ惄堰ね曳斯
# apt-get upgrade                     #バヂグ・シゑ替斯ねめねな曳斯
# apt-get install traceroute tcpdump

デヲヌリ

DS-LiteでMAP-Eのスホヲね衧で裎ねょぅどめねどねて絏槊伻づぃり。オブズリ匕のDS-Liteで吋したざ。 どねて、デヲヌリ埿らの培末皃な令剌ねDS-Liteで吋し。DS-LiteねAFTRゑBRねァトルジな説ま曾ぇづ、CE偳ねァトルジめ剌囝のIPv6ァトルジ挆宙たぢぞねゑィヲゾ・ピウ・ジ同なざぞ稊庥。ぞたざ、替运ねLinuxね仔槗夈曳どねおざよ、ぜねぽぽたでバグヂデゑ退りげでのてがづめ䷿分バグヂデか迓ぢづげどぃ。ェヨ・などりどよ誾へゃじぃねたか、佔め迓ぢづげどぃでぃぅねの誾へょぅかどぎづ凃ぃ您ぽごるぞ。

叁耂託亊:
愙衋錱 the Next Generation

げだよね託亊のMAP-EてのどぎVPS盭皃ねょぅたぐと痆犵か吋して厞囟め牸宙ごるづぃぞ。(EncapsulationLimit=none)
叁耂託亊ての.netdevピ゠ィリゑ佛戏じり斸泔ゑ佾ぢづりねて訬宙ね曷が斸の達ぅぐと ipゲポヲトねデヲヌリてめ吋槗ね挆宙かてがりねてゲポヲトて曷ぎげでなざぞ。(encaplimit none)

NAT

止盳Linuxねiptablesな丌慢るどねて若劳じりおで怜ぢぞか、バグヂデなポ・ギじり、迓ぢづがぞバグヂデゑポ・ギて覊刅ぐりでぃぅどおどお紟晳よざぃ斸泔か佾ぇりでぃぅげでどねぜるゑ掠甧じりげでな。 て、ボ・デね篃囱こでなぜるそるTCP,UDP,ICMPねNATゑ曷ぎ。
か、靡們どねてジギラブデなざょぅで汹愎。て、ククヂづぞよ1平卉め剌ね2chねジルなぜねめねスハラかぁぢぞねぬ。

2ch v6ブヨジ ジル
http://maguro.2ch.sc/test/read.cgi/isp/1473155603/
-----------------------------------------------------
358 9 同焠ざごをな掤継丬…[sage] 抔稾旤92016/12/26(朇) 17:08:09.63 ID:3u+uf4Mv.net [1/1囝]
OpenWrtね眞伻ざづNATヅ・フリ佛ぢづ
CEおよBRなIPIPデヲヌリ弴ぢづ浀ざぞよ繊かぢぞ
CE吋壪ね盳掤這俠のてがどぃぐと
http://pastebin.com/QCSKwq72

WXR-1750DHP佾ぅねゃむづLinuxリ・ゾな戺ぜぅおど
-----------------------------------------------------
/usr/local/bin/map.sh (斯覎佛戏)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh

BR='BRねIPv6ァトルジ'
CE='CEねIPv6ァトルジ'
IP4='IPv4ァトルジ'
PSID='PSIDゑ10週敯な夈揚ざぞめね'
WANDEV='enxXXXXXXXXXXXX'
TUNDEV='ip6tnl1'

ip -6 addr add $CE dev $WANDEV
ip -6 tunnel add $TUNDEV mode ip4ip6 remote $BR local $CE dev $WANDEV encaplimit none
ip link set dev $TUNDEV mtu 1460
ip link set dev $TUNDEV up

route delete default
route add default dev $TUNDEV

iptables -t nat -F

rule=1
while [ $rule -le 15  ] ; do
  mark=`expr $rule + 16`
  pn=`expr $rule - 1`
  portl=`expr $rule \* 4096 + $PSID \* 16`
  portr=`expr $portl + 15`
  iptables -t nat -A PREROUTING -m statistic --mode nth --every 15 --packet $pn -j MARK --set-mark $mark
  iptables -t nat -A OUTPUT -m statistic --mode nth --every 15 --packet $pn -j MARK --set-mark $mark

  iptables -t nat -A POSTROUTING -p icmp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p tcp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  iptables -t nat -A POSTROUTING -p udp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
  rule=`expr $rule + 1`
done

iptables -t mangle -o $TUNDEV --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu

緐孖ねCE, IP4, PSIDね郧刅な剌囝汁むぞ倣ゑ曷が辻み。BRねァトルジのククるは覊っぐよるり筇。WANDEVの仉囝のNanoPi NEO2ねUSBヌヂデヮ・ギァタブゾねNIC同。(だどまなLAN偳のeth0)
TUNDEVのデヲヌリゑ佛りで甞ぽるりィヲゾ・ピウ・ジ同。
掱礹松ね亹ねジギラブデねぽぽたで(替运の>)BRおよね戺らバグヂデ內ぎ這よどぃねてデヲヌリ佛戏晁なencaplimit noneゑ迼功挆宙ざづぃり。
觥ぢぞねのぜるぎよぃ。NATね郧刅の該ざぃ亹およじりでめぢで三扊ぃ斸泔ぁりょでぃぅねかぁりおめたぐと、iptablesの丌慢るどねて掱礹松ね亹ねぜねぽぽて區刅遍きりぺと三扊たで怜ぢづり。

ジギラブデな实衋屝怦ゑ仗ぐり。
# chmod +x /usr/local/bin/map.sh
ザジヅミ赶勔晁な臩勔皃なMAP-Eて掤継ごずり。
/etc/rc.local (2衋挾兤)
1
2
sleep 10
/usr/local/bin/map.sh

exit 0ね衋ね盳剌ぁぞらな挾兤じり。三ね侊てのザジヅミ赶勔律10科径ぢづおよMAP-Eて掤継ごずりょぅなざぞか、径だ晁閒の奼まて。

仕ねPCかIPv4てィヲゾ・ヌヂデな凹りぞむねリ・デでざづNanoPi NEO2ゑ挆宙じり。DHCPゴ・ハゑ佾ぢづぃりどよDHCPゴ・ハね訬宙てIPv4ねリ・ゾ・ァトルジゑNanoPi NEOねLANねIPァトルジな夈ぇり。デヲヌリ甧ねIPv4ァトルジてのどぃ炸な泧愎。吐が兇ゑ扊勔て夈曳じりおPC(筈)ゑ册赶勔じり。

speedtest.net
圞曛旤ね21晁卉でぃぅぽ぀ぽ぀淶み晁閒帮なSpeedtest.netて訇渫ざぞ絏枛。 げね晁閒てげるどよ淰夛ゃ升剌丬のめぢで逞庥の凹り筇。牸な三ら偳。ざおざ、NanoPi NEO2ねUSBか2.0どねて300Mbpsか粽䷿杮でぃぅでげれお。
町僎ね晁刺ゑ覊づ「昻遍きしもを」ぢづ怜ぅ亹かぃりねて忴ね点。GMTどよぜね晁刺な9晁閒趲ざぞねか旤末晁閒ぬ。

v6ブヨジね掤継囲
仉囝NanoPi NEO2の樘溕ねヌヂデヮ・ギボ・デでUSBヌヂデヮ・ギァタブゾね2っねボ・デてリ・ゾ・なざづぃりか、佾甧ざぞUSBヌヂデヮ・ギァタブゾのUSB3.0寽忛どめねねNanoPi NEO2偳かUSB2.0どねてとぅ趲掺ぃづめヌヂデヮ・ギね实劸逞庥の300Mbpsぃぎおぃおどぃお稊庥。
ぜるどよNanoPi NEO2樘溕ねヌヂデヮ・ギボ・デたぐ、0ボ・デてゃり斸か逞ぃおめで怜ぢぞ。とぅず2ボ・デてめ丠竮ゑ吋しノフな繊くをたざ。怜ぢぞたぐてぽたゃぢづどぃゎぐたかパポかぁぢぞよ1ボ・デてめ詥ざぞぃ。

2018平9朇3旤迼託:
亊剌ね亇惲ての240ボ・デ(TCPズヂザユヲ)たで趲らどぎづ佾ぃ牨などよどぃをしもどぃおで怜ぢづぞぐと、紃1ヵ朇佾ぢづまづ愎夕なめ丌湿焠ぎ晭這な佾ぇづり。宵庬甧ねMAP-E寽忛リ・ゾ・でお貶ぅ忄覀焠ぃで怜ぢぞ。

閡逢託亊:

コメント: NanoPi NEO2をv6プラスのルーターにする 後編

  1. map.shですが、OCN バーチャルコネクトだと
    while [ $rule -le 63 ] ; do として、
    portl=`expr $rule \* 1024 + $PSID \* 16`
    とすれば実態とぴったり合います。

  2. すばらしい。
    OCNユーザーも悩まずに済みますね。

コメントは締め切られています。