ちまたで、流行りのスモールLinuxマシン、Raspberry Piを購入しました。

Amazon(クリックしてね)で売ってます。

 

自分は、FreeBSD派なので、Linuxに対して、ちょっと反発があったのですが、そこは、おもしろいものに興味を惹かれるのは、人情というもの

コストの低さもあいまって購入しました。

まー、Linuxに反発があったっていうのも、そんなこと無いんですけどね

なんせ、メイン機のOSは、Ubuntuにしてから、もう半年以上たってしまって、Windowsなんか使わなくってもええやん的な状態になってます。

FreeBSDとLinuxでは、コマンドやディレクトリツリーが違うので、ちょいと悩むことがあったりしますが、基本UnixライクOSなんで、そんなに問題になりませんよ

使うソフトも同じようなもんですからね

しかも、LinuxだとWine環境がすぐれすぎていて、ちょっとしたWindowsアプリなんか動きますからね

と、横道にそれましたが、本題に戻しましょう。

 

そもそも、なんでRaspberry Piを購入したかというと、うちのADSLな環境で、なんとかIPv6を導入したいと思っていて、色々、試したり調べたりしていても、なかなか思いに叶う物がありませんでした。

最低限のルールとして、低消費電力、静粛性、2ポートLAN装備、低コストでした。

これらを満たしたのがRaspberry Pi Type Bでした。

IPv6にする方法としては、IPv6 over IPv4です。

普通、こんなことが出来るルーターは、なかなか見つかりません。

まー、あったとしても高かったりとかで、そういうのは、ちょっと違いますよね。

しかし、Raspberry Piは、Linuxが使えるので、なんら問題ありません。

問題は、LANポートだけです。

LANポートは、USBタイプのLANを買ってきてつければいいやってことで、OKでしょ。

 

IPv6ルーター兼、IPv4 NATルーターを構築することにしてみましょう。

とりあえず、要るもの一覧です。

・Raspberry Pi Type B

・SDCARD 4G  <= 2Gでも可

・PLANEX UE-100TX-G3 (内蔵チップが、ASIX社 AX88772だと、他でも良いでしょう)

・適当なUSB電源

・必要な方は、ケースも

・TunnelBrokerのアカウントとトンネル(これは、無料なんで、とにかくゲットしといて下さい)

 

Raspberry Piは、現在、いくつかのOSを起動できます。

その中でも、今回は、コンパクトかつ実用性抜群のArch Linuxを使うことにしました。

それでは、始めましょう

まず、Arch Linuxのインストールですが、これは、他のサイトを適当に参考にして入れて下さい。

LANは、基盤のLAN(eth0)をインターネットに繋いで、USBにて増設した方をプライベート(eth1)とします。

しっかり、Arch Linuxが起動して、Rootになったところで、行きましょう

まず、http://tunnelbroker.net/で、トンネルを作って必要な情報をゲットしておきましょう。

Server IPv4 Address

Client IPv6 Address

Routed /64

Anycasted IPv6 Caching Nameserver

Routed /64を使った自己アドレスを決める

{

   例えば、Routed /64が、2001:400:20:a2::/64であれば、プライベートアドレスとして、2001:400:20:a2::1/64と決めることです。

}

が、必要です。

 

1.
パッケージを最新にします。
pacman -Syu

 

2.
ロケールを日本に設定しましょう。
vi /etc/locale.gen
ja UTFのコメントを外す
locale-gen
ln -sf /usr/share/zoneinfo/Japan /etc/localtime

 

3.
ssh.d有効化しないと、ネット経由ではいれませんよね。
systemctl start sshd.service

セキュアな設定をします。
/etc/ssh/sshd_config

UsePAM no
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no
RhostsRSAAuthentication no

 

4.

3でSSH経由で接続出来ますが、Rootでは接続できなくしています。

なので、通常のユーザを追加して、このユーザにSSHにてログインしましょう。

useradd [ユーザ]
mkdir /home/[ユーザ]
chown [ユーザ]:[ユーザ] /home/[ユーザ]
passwd -e [ユーザ]
passwd [ユーザ]

作ったユーザのホームに.sshに必要なファイルを作成する

authorized_keys
id_rsa

これは、「ssh authorized_keys 作成」とかっていうのをGoogleで検索してなんとかして下さい。

 

5.

いよいよ、IPv6を有効にしてみましょう。

/boot/cmdline.txt
ipv6.disable=0

 

6.

SSHで接続できるのは、良いですが、ルーターにするのにDHCPじゃ不便ですよね。

固定IPを設定しましょう。(192.168.0.1としますよ)

pacman -S netctl

/netctl/eth1

Description='A ethernet connection'
Interface=eth1
Connection=ethernet
IP=static
Address=('192.168.0.1/24')

ExecUpPost='sysctl -p /etc/sysctl.conf'

IP6=static
Address6=('[----Routed /64を使った自己アドレス----]')

 

作成した設定を有効にしましょう。

netctl enable eth1

netctl start eth1

 

7.

普通にNatルーターとしても使いたいので、設定しましょう。

ポート80にアクセスされると、192.168.0.90に飛ぶように設定してます。

pacman -S iptables


iptables -t nat -F
iptables -t filter -F
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -j MASQUERADE


iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.0.90:80


iptables -N sshguard
iptables -A INPUT -p tcp --dport 22 -j sshguard

 

iptablesの状態をファイルに保存しましょう
iptables-save > /etc/iptables/iptables.rules

 

作成した設定を有効にしましょう。

systemctl enable iptables.service
systemctl start iptables.service

 

8.

次に、IPをレリーするように設定します。

/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.accept_ra=0

 

9.

最後にIPv6のルーターを起動しましょう。

/etc/radvd.conf

interface eth0
{
        AdvSendAdvert on;

        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;

        AdvDefaultPreference low;

        AdvHomeAgentFlag off;

        prefix [-----Routed /64----]
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        };
};

起動します
systemctl enable radvd
systemctl start radvd

 

10.

まだありました、肝心のトンネルを作ります。

/etc/netctl/tunnelbroker

Description='ipv6 tunnel with tunnelbroker'
Interface=he-ipv6
Connection=tunnel
Mode='sit'
Remote='[----Server IPv4 Address----]'

IP6=static
Address6='[----Client IPv6 Address----]'
Routes6=('::/0')

 

この設定を有効にしましょう

netctl enable tunnelbroker

netctl start tunnelbroker


11.

もし、自身の環境が固定IPでは無い場合、以下のスクリプトをcronでまわしてみて下さい。

----の中身は、TunnerlBrokerの情報に置き換えて下さいね

/sbin/wget --no-check-certificate https://[----Username----]:[----Password----]@ipv4.tunnelbroker.net/n
ic/update?hostname=[----Tunnel ID----]

 

後は、リブートしてみて下さい、きっと ipv6.google.comが、他のPCで、見れるはずですよ

 

ちなみに、IPv4のNAT環境だと、DHCPサーバとDNSを構築しておかないと、困ると思うんで、それは、また、今度ということで・・・・

 

 

Joomla templates by a4joomla