お知らせ
現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
OCNバーチャルコネクトはIPv6を使う限り全ポート使えるはずなので、これを利用してサーバーを立てる。
ルーター側だけでなくサーバー側も対応が必要。ファイアーウォールの穴をあけていても、IPv6でlistenしてないと受けられない。
vi /etc/config/firewall
で以下の行を追加
config rule
option name 'Allow-Server-IPv6'
option src 'wan'
option dest 'lan'
option proto 'tcp udp'
option dest_port '80'
option family 'ipv6'
option target 'ACCEPT'
service firewall restart
でfirewallを再起動するAddから次の要領でルールを追加
General Settings
項目 | 値 |
---|---|
Name | 適当な名前 |
Protcol | TCPとUDPにチェック |
Source zone | wan |
Destination zone | lan |
Destination port | 開けるポートをスペース区切り |
Advanced Settings
項目 | 値 |
---|---|
Restrict to address family | IPv6 only |
保存してSave & Apply
ufwやWindowsファイアーウォールの穴は開いているものとする。IPv6向けに穴が開いている必要があるが、通常、ufw add
やWindows ファイアーウォールの追加では勝手にv6の穴が開くはずなので意図的に塞がない限り追加時に開いていると思われる。
listen [::]:80
のようなものを追加するPHP
php -S "[::]:80"
でIPv6向けの簡易サーバーをサクッと立てられるので疎通検証をするときに便利。
Node.js
http-serverだとhttp-server -p 80 -a "[::]"
でいける。serveは未対応っぽい。
IPv6はURL形式が特殊なのでアドレス部分を[]
で囲んだ書式で投げる。これはブラウザで確認する場合でも変わらない。
例:
curl -v "http://[aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh]:80/"
option dest_port
に値を半角スペース区切りで追加すればよい。
例:
option dest_port '80 443 8080'
連番で開ける場合は公式ドキュメントによると、'1024:65535'
のような書式にすれば、連番で開けられるようだ。
例:
option dest_port '8000:8999'
設定にoption dest_ip
を追加し、これで制御できると思うがIPv6が変わる特性上、基本的に難しいと思う。勿論、端末側でIPの変更を検知しOpenWrtの設定を書き換えるバッチを組むなどは出来ると思うが、ややこしい。
VLANを使って隔離するとかできればよいのかもしれないが、具体案は検討できていない。