2015年5月22日
第29回インターネットと運用技術研究発表会 (IOT29)
さくらインターネット株式会社 / さくらインターネット研究所
上級研究員 松本直人
提案方式の考え方
パブリッククラウドの多くで制限によりIPユニキャストのみ許可となっている
「L2TPv3(UDP)とIPv6 Anycastを用いてサーバ高可用性を実現する」
ベンダーロックインの問題点と比較
クラウド環境固有の
サーバ高可用性機能
(Internal Load Balancer)
クラウド環境に依存しない
サーバ高可用性機能
(IPv6 Anycast=OSPFv3+L2TPv3)
提案方式の問題点
標準的なOSでL2TPv3およびOSPFv3を動作させられることが条件となる
(Linuxは良いが、Windowsの場合は考慮が必要)
サーバ高可用性のメカニズム解説
OSPFv3 LSA update and IPv6 Anycast (redistributed connected)
DBサーバ設定例 (CentOS7)
$ sudo su
# yum install -y quagga iptables-services net-tools traceroute tcpdump
# echo "net.ipv6.conf.all.forwarding = 1" > /etc/sysctl.conf
# cp -p /etc/quagga/zebra.conf /etc/quagga/ospf6d.conf
# setsebool -P zebra_write_config 1
# systemctl mask firewalld ; systemctl disable ip6tables
# systemctl enable ospf6d ; systemctl start ospf6d
# modprobe l2tp_eth
# ip l2tp add tunnel tunnel_id 5555 peer_tunnel_id 5555 udp_sport 5555 udp_dport 5555 encap udp
remote 100.78.18.43 local 100.78.28.127
# ip l2tp add session name eoip0000 tunnel_id 5555 session_id 5555 peer_session_id 5555
:
# vtysh
# conf t
# interface lo
# ipv6 address fd50:d026:9ade:99::99/64
# router ospf6
# router-id 10.0.0.99
# redistribute connected
# area 0.0.0.0 range ::/0
# interface eoip0000 area 0.0.0.0
# interface eoip0001 area 0.0.0.0
Webサーバ設定例 (CentOS7)
$ sudo su
# yum install -y quagga iptables-services net-tools traceroute tcpdump
# echo "net.ipv6.conf.all.forwarding = 1" > /etc/sysctl.conf
# cp -p /etc/quagga/zebra.conf /etc/quagga/ospf6d.conf
# setsebool -P zebra_write_config 1
# systemctl mask firewalld ; systemctl disable ip6tables
# systemctl enable ospf6d ; systemctl start ospf6d
# modprobe l2tp_eth
# ip l2tp add tunnel tunnel_id 5555 peer_tunnel_id 5555 udp_sport 5555 udp_dport 5555 encap udp
local 100.78.18.43 remote 100.78.28.127
# ip l2tp add session name eoip0000 tunnel_id 5555 session_id 5555 peer_session_id 5555
# vtysh
# conf t
# router ospf6
# router-id 10.0.0.1
# area 0.0.0.0 range ::/0
# interface eoip0000 area 0.0.0.0
# end
# wri
OSPFv3による障害切替時間の短縮
# vtysh
# conf t
# int eoip0000
# ipv6 ospf6 hello-interval 1
# ipv6 ospf6 retransmit-interval 2
# ipv6 ospf6 dead-interval 3
# int eoip0001
# ipv6 ospf6 hello-interval 1
# ipv6 ospf6 retransmit-interval 2
# ipv6 ospf6 dead-interval 3
:
# end
# wri
OSPFv3 Interval Adjustment
まとめ
パブリッククラウドにいてベンダー依存しないサーバ高可用性は可能である
設定を簡素化するためIPv6 Anycastを用いたがIPv4 Anycastも可能である
L2TPv3以外のオーバーレイネットワーク技術でも同じ仕組みが可能である
そもそも「ベンダー依存」を気にしていない場合は、提案方式は不要である
数秒以下でのサーバ高可用性を実現するには他方式の検討が必要である
ご清聴誠にありがとうございました

パブリッククラウドにおけるL2TPv3を用いたサーバ高可用性の評価