投稿

LinuxでのSLAAC IPv6アドレス自動設定

Linuxにおいて、SLAACによるIPv6アドレスアサインにはいくつかのモードがあり、以下のカーネルパラメータをセットすることで制御できるようです。
addr_gen_mode - INTEGER Defines how link-local and autoconf addresses are generated. 0: generate address based on EUI64 (default) 1: do no generate a link-local address, use EUI64 for addresses generated from autoconf 2: generate stable privacy addresses, using the secret from stable_secret (RFC7217) 3: generate stable privacy addresses, using a random secret if unset
モード2のRFC7217形式を利用するためには以下のように、stable_secretをあらかじめセットしておく必要があります。
stable_secret - IPv6 address This IPv6 address will be used as a secret to generate IPv6 addresses for link-local addresses and autoconfigured ones. All addresses generated after setting this secret will be stable privacy ones by default. This can be changed via the addrgenmode ip-link. conf/default/stable_secret is used as the secret for the namespace, the interface specific ones can overwrite that. Writes to conf/all/stable_secret are refused. It is recommended…

LinuxルーターでのDS-Lite設定

昨日に引き続き、自宅のLinuxルーター上でDS-Liteの設定を行いました。

BB.exciteコネクト(IPoE接続プラン)ではIPv6回線のトンネルを通して、インターネットにIPv4接続することが可能です。
実際のサービスはtransixのDS-Liteを使うことになるのですが、この回線を使うことで混み合っているNGNの網終端を通らずに済むことになるので、快適なネットライフが待っているらしいのです。

ところが我が家ではすでにPPPoEでのIPv4の固定IP契約があり、その固定IPをVPN、DNSサーバなどいろいろなサービスに使っていて、別のIPアドレスに変わってしまって困ります。またDS-Liteの場合にはグローバルIPアドレスを複数のユーザーで共有して使うので、なおさら外部からのアクセスなどには使うことができません。そういった理由で、IPv4に関しては既存のPPPoEのままにするつもりでいました。
しかしながらWebページの閲覧やYutubeコンテンツの視聴に使われるHTTPやHTTPSに限れば固定IPは不要です。また、Linuxルーターの場合、宛先のIPやプロトコル、ポート番号に応じてきめ細かく接続先の経路を選ぶことができます。今回、HTTPとHTTPSに限って、DS-Liteの経路を利用する設定を試してみました。
IPv4 over IPv6のトンネルセットアップ

ip -6 tunnel add dslite mode ip4ip6 \ remote 2404:8e00::feed:100 local 2409:x:x:x::1 dev eth0.10 ip link set dev dslite up
宛先が192.168.0.0/16以外(宛先がWAN向き)で、宛先ポート80、443のパケットにマークをつける。

iptables -A PREROUTING -i eth0 -t mangle \ ! -d 192.168.0.0/16 -p tcp --dport 443 -j MARK --set-mark 1 iptables -A PREROUTING -i eth0 -t mangle \ ! -d 192.168.0.0/16 -p tcp --dport 80 -j MARK --set-mark…

LinuxルーターでのIPv6 IPoE設定

イメージ
こんにちは、昨今の状況からステイホームをリモートワークを励行しています。多くの人たちが業務のために自宅からインターネットにアクセスしたり、外に遊びに行けず自宅でネットコンテンツを長時間視聴するためか、日時を問わずNTTフレッツ回線のネットワークが非常に遅くなっているような気がします。

フレッツ回線の混雑の情報をネットで調べてみると、もともと回線設備の容量が少なめで、主にIPv4のPPPoE接続で利用しているNTTのNGNの網終端装置で回線が混み合っているのではないかということです。
(https://eng-blog.iij.ad.jp/archives/5536http://enog.jp/wp-content/uploads/2018/08/20180720-ENOG51-Kashiwazaki.pdf)

これを回避するには比較的混み合っていないIPv6の接続口を利用するのが良いとのことでした。NTTのNGNネットワークとインターネットの境界の設備は、NTTの方針に依存せず増強できるとのことです。

そこでIPv6 IPoE + DS-Lite なプロバイダと契約し、もともと自宅で利用していたLinuxルーターをIPv6に対応させました。

今回契約したのはBB.exciteコネクト(IPoE接続プラン)というもので、既存のフレッツ回線に月々700円(税抜)追加でIPv6のインターネット接続を利用できるようになります。
https://bb.excite.co.jp/norikae/ipoe/

我が家のルーターは手のひらサイズのIntelのNUCです。NICが一個しかついていないため、eth0からTag VLANを利用してeth0.10のインターフェースを仮想的に作りWAN側に用いています。


ルーターのOSはDebian Busterをtarで固めたものをUSBメモリに入れ、起動時にtmpfsに展開して、ディスクレスで運用しています。こうすることで、万が一NUCが壊れたとしても適当なパソコンをルーターとしてブートすることが可能です。



WANインターフェースの設定
IPv6の世界では、Stateless Address Auto-Configuration(SLAAC)という仕組みがあり、基本的に何もしなくてもIPv6アドレスがアサインされます。

Linuxの場合、I…

Keepalivedで作るMySQLフェイルオーバーシステム

イメージ
1. はじめにこの記事はMySQL Casual Advent Calendar 2015の22日目のエントリです。
先日、MySQL Casual Talksという勉強会で登壇してきました。その時の内容をまとめておきたいと思います。
MySQLデータベースサーバに障害が起きた時、サービスを続けるには幾つかの方法があります。障害発生時にSlaveサーバーを手作業でMasterに昇格させる方法、MySQL Utilitiesに含まれるmysqlfailoverというユーティリティーを利用する方法などです。

今回、Keepalivedというソフトウェアと、MySQLの双方向レプリケーションを使って、ほぼ無停止でフェイルオーバーする構成を試してみたので、それについてまとめておきたいと思います。
2. システム構成

db1、db2という二つのサーバで、それぞれmysqldとkeepalivedを動かします。mysqldはお互いがMasterとなる双方向レプリケーションを行います。keepalivedはそれぞれのサーバでmysqldのヘルスチェックを行い、どちらかがVRRPのMasterもう一方がBackupの状態となり、MasterにVirtual IP(VIP)を付与します。上の図ではdb1が現在のVRRP Masterということになります。双方向レプリケーションを行う場合に同時に両方のサーバへの書き込みを許可すると、データの不整合や、レプリケーションの停止を引き起こしてしまうことが知られています。今回VRRPスレーブに誤って書き込みが行われないようにスレーブにreadonly=1のフラグを立てておきます。

もしdb1のmysqldが停止ししkeepalivedのヘルスチェックに失敗した場合、db1のkeepalivedはFAULTステートに移行します。一方db2のkeepalivedはVRRP Masterステートに移行しVIPが付与され、クライアントからのアクセスはdb2に向かうようになります。db2のkeepalivedがMasterに昇格する際には、スクリプトによりreadonly=0となり書き込みが可能になるようにしています
この構成では、Keepalivedを使うことで迅速かつ安定的にフェイルオーバーが実行できること、あらかじめ双方向レプリケーションが行わ…

マイKVM環境を晒しておきます。My Jessie on Jessie KVM environment.

皆さん、こんにちは。もうすっかり秋ですね。
最近、寒暖差が激しいので、お体には気をつけてくださいね。

さてさて、本日は、弊社で使っているDebian Jessie用のKVM環境をご紹介します。

KVMとはKernel Virtual Machineの略で、Linuxのカーネルで実装された仮想マシンハイパーバイザーのことです。一般的には、ハイパーバイザー自体を指すよりも、それを用いた仮想マシンの方式のことを指す場合も多いかと思います。

弊社ではKVMによる仮想環境を用い、各種サーバプログラム、WEBクラスターなどの検証を行っています。最近のLinuxディストリビューションでは、すでに簡単な操作で仮想マシンを立ち上げることが可能です。しかし、kvmが最初にバニラカーネルに組み込まれたlinux-2.6.20の頃から自家製スクリプトでkvm仮想マシンを利用しており、それが使い易く、興味を持ってくれる人もいるかもしれないのでここに公開する次第です。

仮想マシンの抽象化ライブラリであるlibvirtを介さずGUIなども無いので、比較的仕組みが理解しやすくカスタマイズが簡単であることがメリットかと考えています。カーネルの最新機能や最新のqemuに追従することもたやすくできます。

それでですね、ものはここにおいてあります。

https://github.com/ktaka-ccmp/kvm-setup-jessie

Debian jessieで以下のように、

sudo apt-get install make aptitude git -y git clone git@github.com:ktaka-ccmp/kvm-setup-jessie.git sudo make all gitとmakeとaptitudeをaptでインストールgithubからツールをクローンmake allする を行えばオッケーです。busyboxとkernelのコンパイル時にmenuconfig画面が表示されますが、通常はそのままExitしてください。
何か思うところがあってカスタマイズしたい場合は、そこでカスタマイズを行ってください。
仮想マシンの実行は、/kvm/sbin/kvmスクリプトで行います。中身を見てもらえばわかりますが、このスクリプトでやっていることは、qemuコマンド…

Lessons of Steve Jobs: Guy Kawasaki at TEDxUCSD の要点

イメージ
Guy Kawasakiのもう一つのビデオ"Lessons of Steve Jobs" 2013年UCSDでのTEDx です。



May he rest in peace, but may his influence continue to inspire us. Experts are clueless. Listen to your heart.Customer cannot usually tell you what they want.Get the next curve.Big challenges beget the best work.Design counts.Use big graphics and big fonts.Changing your mind is sign of intelligence.Value not equal to price.A players hire A+ players.Real CEOs demo.Real entrepreneurs ship.Marketing = unique value.Bonus: Some things need to be believed to be seen.
I can tell you right now. In heaven Steve Jobs is telling God what to do.

The art of innovation | Guy Kawasaki | TEDxBerkeley の要点メモ

イメージ
こんにちは、今日はいい天気にもかかわらず、自宅に引きこもってSNS眺めたり、Youtube見てました。本当はやらなきゃいけないお仕事があったんですが ^^;)
前からちょくちょく見ていたGuy KawasakiのTalkの一つの「The art of innovation(イノベーションの技術)」分用メモです。書き出しておかないと内容忘れて何度も見る羽目になってしまうので。


Make meaning as opposed to make money. If you start off with the sole desire to make money, you won’t make money, you won’t make meaning, you won’t change the world, and you’ll probably fail. お金よりもそれをやる意味が大事。Make Mantra. Two or three explanation why your meaning should exist. Nike: authentic athletic performance, Fedex: Peace of mind, Wendy: (should be) Healthy fast food. その意味が存在する必要を、2、3、4語のマントラにしておくと良い。Jump to the next curve. Great innovation occurs when you get to the next curve. 10%の進歩ではなく次のカーブに乗ることが大事。Roll the DICEE. Deep, Intelligent, Complete, Empowering, Elegant 深い進歩、賢さ(マスタングは鍵ごとに最高速がプログラムされいる)、完全さ(レクサス)、可能性を与えるもの(Macbook Air)、エレガントさなどの要素が必要。参考Don’t worry be crappy. If you waited for perfect world, you would never ship. 完璧さを求めたらいつまでたっても出荷できない。革新的なプロダクトは多少のクラッピネスを恐れずにまず出荷することが大事。Let 100 flowe…