Gluasterfsからお引っ越し

Mastodon+ねこ卓+このBlog+オンセンを動かしていたGlusterfsのクラスターが凄まじく不安定(理由はファイル数多過ぎ)でしょっちゅうダウンして冗長化している意味なかったので、DRBD9+NFSにお引っ越し。
pcsでClusterとNodeを作成した後は、こんな感じでresourceを作成して終わり。
本当は、SplitBrain対策のためにstonishとcorosyncとdrbdのネットワークを冗長化して、DRBDを3レプリカにしてQuorumを使えるようにすればより完璧だけどそれらはおいおい考える。
(世の中の開設blogのどれもこれもが思考停止でとりあえずstonishを無効化というのはいかがな物か)

pcs resource create FsNFS Filesystem \
  device="/dev/drbd/by-res/resource0/0" \
  directory="/export" \
  fstype="btrfs" \
  --group flavorGroup

pcs resource create nfsService ocf:heartbeat:nfsserver \
  nfs_shared_infodir="/nfslibs" \
    op start timeout="10s" \
    op stop  timeout="10s" \
    op monitor interval="10s" timeout="10s" on-fail="restart" start-delay="20s" \
      --group flavorGroup

pcs resource create exportfs_NFS ocf:heartbeat:exportfs \
clientspec="xxx.xxx.xxx.xxx/24" options="async,rw,no_root_squash" directory="/export" fsid="root" \
--group flavorGroup

pcs resource create VirtualIPv6 IPv6addr ipv6addr=xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx cidr_netmask=64 --group flavorGroup
pcs resource create VirtualIP IPaddr2 ip=xxx.xxx.xxx.xxx cidr_netmask=24 --group flavorGroup

pcs constraint order set FsNFS FslibNFS VirtualIP nfsService exportfs_NFS

これで、IPV6もちゃんとFailoverできるようになってたので、あとはIPv6でもNFSをExportするのとハートビートもIPV6で定義したいところ。ハートビートはLinkLocal使えば簡単だしね。
(世の中の開設blogのどれもこれもが思考停止でとりあえずIPv6を無効化というのはいかがな物か)

eo光でIPv6(その2)

eoサポートに、64bit以外のPrefixが使えるかどうかと、固定IPなのかどうかをダメ元で問い合わせていたのに回答があった。

予想通り、64bit固定で変更不可&設備側都合で変更される可能性あり(いわゆる半固定IP)とのこと。

月数千円程度の家庭用プランでDMZなどの複数セグメントを用意して、しかも超絶巨大規模なサーバーを公開するという我が家の使い方を想定なんかしているわけないので、仕方が無い。

ぶっちゃけNATではなく全部がグローバルIPなのでDMZと内部LANを分離するメリットがあんまりないし、CloudFlare経由になっているので外部からのアクセスも格段に防ぎやすくなったので、DMZ辞めちゃってもいいかなぁとも思ってる。

eo光でipv6(RouterOS)

今年の8月からeo光のIPv6サービスがトンネル方式からデュアルスタック方式に変わっていて、DHCPv6経由でPPPoEインターフェースからIPv6のアドレスが割り振られるようになっていた。

/ipv6 dhcp-client
add add-default-route=yes interface=(PPPoEInterface名) pool-name=(適用なプール名) prefix-hint=::/64 request=prefix

これで、IPv6のPrefixが降ってくるので、LAN側にIPアドレスを割り当ててRAを有効化したらとりあえずIPアドレスは各PCに降ってくるようになる。

/ipv6 address
add from-pool=(さっきのプール名) interface=(LAN側ブリッジ名) advertise=yes eui-64=yes

で、DNSをRA経由で割り振るにはNDを使う。

/ipv6 nd
set [ find default=yes ] advertise-dns=yes

Firewallルールがこの時点ではまだ一切されておらず、IPv6だと外部からアクセスし放題になるので、このまま使うのは非常にまずいので、PPPoEからのIPv6接続はとりあえず、全拒否しておく

/ipv6 firewall filter
add action=drop chain=forward connection-state=invalid,new in-interface=all-ppp log=yes log-prefix="invalid ipv6"

DNSがISPのやつでも良いけど、今回はQuad9を採用。

それはそうと、降ってくるPrefixが64bitなので、複数ネットワークがある我が家では非常に使い辛い。RA Proxyを別途用意するか、単一ネットワークに再設計するか、本来のIPv6では推奨されていない96bit以上に更にサブネットを分割するか。ぶっちゃけDMZは外部からのアクセスはほぼ全部CloudFlare経由なので単一サブネットにしちゃっても実害はないかもしれない。せっかくVLANTrunkを設計したのにもったいないというのはあるけど。