連載
» 2003年02月11日 00時00分 公開

Linuxで作るIPv6ネットワーク環境(3):IPv6ネットワーク構築とパケットフィルタリング (3/3)

[みやもとくにお,@IT]
前のページへ 1|2|3       

USAGIによるIPv6ルータのまとめ

 前編から後編にかけて、USAGIのインストールからネットワークの構築まで解説しました。カーネルの適切な構成とコマンドのインストールが終わってしまえば、後はフィルタリングやルーティングなど、「USAGI固有のもの」というよりはIPv6ネットワーク管理自体が作業の大半を占めることがお分かりいただけたと思います。

 最後に、USAGIマシンをルータとして動かすために必要なコマンドラインの中から、主なものをまとめて掲載しておきます(リスト12)。

# All of commands must be run as root.
#
# 1. For tunnel setting
# Tunnel End Point is now 192.168.1.2.
/usr/local/v6/sbin/ip tunnel add tun6to4 mode sit remote 192.168.1.2 
local any
/usr/local/v6/sbin/ip link set tun6to4 up
/usr/local/v6/sbin/ip addr add 2001:02C0:0418::1 dev tun6to4
/usr/local/v6/sbin/ip -6 route add 2000::/3 dev tun6to4
/usr/local/v6/sbin/ip -6 route add 3ffe::/16 dev tun6to4
#
# 2. Configure USAGI machine as router.
# enabling packet forwarding, no accept RA packet,
# invoking radvd and add IPv6 address to eth0.
#
echo 1 >  /proc/sys/net/ipv6/conf/all/forwarding
echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
/usr/local/v6/sbin/radvd
/sbin/ifconfig eth0 add 2001:2c0:418:1::1/64 up
#
# 3. Packet Filtering .
# Connection refusing from outer network to inner network
(2001:2c0:418::/48)
# except on connecting port TCP/80 .
# Enabling connection from inner network to outer network.
#
/usr/local/sbin/ip6tables -N ip6
/usr/local/sbin/ip6tables -A ip6 -d 2001:2c0:418::/48 -p tcp --dport 80 -j ACCEPT
/usr/local/sbin/ip6tables -A ip6 -d 2001:2c0:418::/48 -p tcp --tcp-flags ! FIN,SYN,RST,ACK SYN -j ACCEPT
/usr/local/sbin/ip6tables -A ip6 -d 2001:2c0:418::/48 -p tcp --tcp-flags FIN,SYN,RST,ACK SYN,ACK -j ACCEPT
/usr/local/sbin/ip6tables -A ip6 -j DROP
/usr/local/sbin/ip6tables -A FORWARD -i tun6to4 -j ip6
/usr/local/sbin/ip6tables -A INPUT -i tun6to4 -j ip6
リスト12 実行するコマンドのまとめ

 USAGIについて、3回にわたって解説してきましたが、何とかネットワークを外部に接続させることができるようになりました。

 もちろん、ここに書いてあることがすべてではありませんが、本記事がIPv6ネットワーク構築の手掛かりになれば幸いです。

Appendix:サービスのIPv6化追加説明

 中編で、主なインターネットサービスのIPv6化について紹介しました。しかし、紹介しそびれたサービスやサーバプログラムのバージョンアップが行われたりしたので、今回あらためてsshおよびSMTPサービスについて紹介します。

■sshサービス

 OpenSSHは、すでにオリジナルがIPv6に対応しています。IPv6対応済みのOSであれば、OpenSSHを以下のようなコマンドラインでconfigureからインストールするだけです。

$ ./configure --with-ssl-dir=/usr/local/ssl \
        --prefix=/usr/local/openssh \
        --with-pam

 別のIPv6アドレスを持つホストからsshが稼働しているホストに対して接続を試みて、問題なければ普通にログイン可能になります。IPv6アドレスを用いた初めてのsshログインの様子をリスト13に示します。

$ ssh v6sample.todo.gr.jp
The authenticity of host 'v6sample.todo.gr.jp (2001:2c0:418::1)' can't be established.
RSA1 key fingerprint is 46:30:71:f8:db:75:86:ee:68:51:fc:d1:4b:f7:25:ea.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'v6sample.todo.gr.jp' (RSA1) to the list of known hosts.
wakatono@v6sample.todo.gr.jp's password:
Last login: Mon Feb 3 03:54:32 2003 from 2001:2c0:418:1:220:afff:fed2:108
[wakatono@vifam7 wakatono]$
リスト13 sshログインの様子

■SMTPサービス

 Postfixは2002年12月に2.0.0、原稿執筆時点ではPatchLevel3がリリースされています。しかし、オリジナルのPostfixはまだIPv6に対応していません。

 IPv6化するためのパッチは、TLS/IPv6 patch for Postfix(http://www.ipnet6.org/postfix.html)で配布されています。スナップショット版についてもパッチがリリースされているので、こちらを使う必要がある方にもよいと考えます。

Appendix:参考文献/サイト

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。