ゲスト[ログイン]

おおいしゆうのASミュージックスコア登録CGI

おおいしゆうが日々のフォルテール演奏の記録を書き続けるCGI(日記じゃないです。blogでもないです)

工画堂スタジオ 『スマイル☆シューター ~ふぁーすと☆ちけっと~』OHP

パルフェ10周年ポータル パルフェ10周年寄せ書き企画

Aozora Melodyのパーフェクト動画公開中!

日 (今日 最終日)
日 ~ 日 (全部)
フォルテール総合情報サイト
ASミュージック
ポータル

同曲演奏状況
CSV登録
工画堂スタジオ&ヤマサ 『スマイル☆シューター ~ふぁーすと☆ちけっと~』応援中!
工画堂スタジオ 『ソルフェージュ~La finale~』OHP
曲名スコア記録曲名スコア記録
天使の歌う小夜曲67860(98.26%)69063羽根のブランケットにつつまれて62573(98.11%)63776
Aozora Melody146977(96.83%)151789らぶりーすまいる187576(95.42%)195577
日曜でコースお休み

3月末でプロバイダのIPv6トンネリングサービスが終了してしまうのでこの土日でPPPoEのデュアルスタックに変更。IPv4は既に移行済み。

FreeBSDのpppでIPv4用, IPv6用2つのセッションを張ります。

/etc/ppp/ppp.conf
----
 set log Phase Chat LCP IPCP CCP tun command
 set speed sync
 set dial
 set redial 0 0
 set timeout 0
 set cd 5
 set reconnect 10 20
 set MRU 1454
 set MTU 1454

 accept CHAP
 enable lqr

iijmio: # IPv4
 set device PPPoE:em1:pppoe-in
 add default HISADDR
 set authname プロバイダのユーザー名
 set authkey プロバイダのパスワード
 set server /var/tmp/iijmio 制御用ポートアクセス用のパスワード

iijmiov6: #IPv6
 set device PPPoE:em1:pppoe-in
 enable lqr
 disable ipcp
 enable ipv6cp
 set authname プロバイダのユーザー名
 set authkey プロバイダのパスワード
 set server /var/tmp/iijmio 制御用ポートアクセス用のパスワード
----

/etc/rc.conf (pppがtun1 on em1, LANがbridge0の場合)
----
ifconfig_bridge0_ipv6="inet6 auto_linklocal"
ipv6_network_interfaces="bridge0"
ipv6_gateway_enable="YES"
rtadvd_enable="YES"
rtadvd_interfaces="bridge0"
ipv6_defaultrouter="NO"
ipv6_interfaces="bridge0"
route6d_enable="YES"
route6d_flags="-s -N bridge0"
ipv6_default_interfaces="tun1"

ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="iijmio iijmiov6"
ppp_user="root"
ppp_iijmio_unit="0"
ppp_iijmio_nat="NO"
ppp_iijmiov6_unit="1"
ppp_iijmiov6_nat="NO"
----

という感じ。IPv6のアドレスは今回は半固定なのでプロバイダからdhcpで取得するので、wide-dhcp6cをpkgで入れておきます。

/usr/local/etc/dhcp6c.conf
----
interface tun1 {
    send ia-pd 0;
    script "/usr/local/etc/dhcp6c-script";
};

id-assoc pd 0 {
    prefix-interface bridge0 {
        sla-id 1;
        sla-len 8;
    };
};
----
tun1に接続したら以下のpd 0のインターフェース(bridge0)にアドレスを割り振る、その際ネットマスクを8ビット伸ばしてその部分を1にしたアドレスを与える、という設定。例えばプロバイダから2001:0:0:ff/56が降ってきたら2001:0:0:ff01:MACアドレスなどから決めた64bitのホスト部/64 というアドレスが割り当てられるはず。
割り当てられたら/usr/local/etc/dhcp6c-scriptが実行されるようにしておき、
/usr/local/etc/dhcp6c-script
----
#!/bin/sh
ipv6_interface="bridge0"

(
    while ! /sbin/ifconfig "$ipv6_interface" | grep "prefixlen" | grep -v "%$ipv6_interface" >/dev/null 2>&1; do
        sleep 1
done /etc/rc.d/rtadvd restart ) & ----
とでもしておいてIPv6アドレスが割り当てられるまで待ってからrtadvdを再起動するようにしておきます。

あとは
/etc/ppp/ppp.linkup
----
iijmio:

iijmiov6:
  ! sh -c "/usr/local/sbin/dhcp6c tun1"
  ! sh -c "route -6 add default -iface tun1"
----
/etc/ppp/ppp.linkdown
----
iijmio:

iijmiov6:
  ! sh -c "route -6 delete default"
  ! sh -c "kill `cat /var/run/dhcp6c.pid`"
  ! sh -c "/etc/rc.d/rtadvd restart"
----
とでもしてpppのリンクが張られたらdhcp6cを起動、リンクが切れたら終了してついでにルートを削除しておけばよいかと。


最後にPath MTU Discoveryブラックホール対策。IPv6はちゃんとMTU調整をしないと通信出来なくなるので…。pfを使います。
/etc/pf.conf
----
scrub in on bridge0 from any to any max-mss 1414
scrub out on bridge0 from any to any max-mss 1414
scrub in on tun0 from any to any max-mss 1414
scrub out on tun0 from any to any max-mss 1414
scrub in on tun1 from any to any max-mss 1394
scrub out on tun1 from any to any max-mss 1394
----
/
フレッツ光ネクストのMTUが1454なので、IPv4は1454-20-20=1414, IPv6は1454-20-40=1394がMSS。最初IPv6ヘッダのサイズ間違えていてはまった… LAN側(bridge0)は多分無くてもいいんだけど一応。
名前: ひとこと:
この記事へのトラックバックURL: https://www.asmusic.jp/ASHARD/score/tb.cgi/yu-oishi/20170312手動トラックバック