投稿

pingが通らない時

pingができなくなるのは、うっかりファイルシステムをコピーした際にcapabilityを落としてしまったことが原因であることもあるらしい。 rsyncやtarでファイルシステムごとコピーする際は、--xattrsを忘れずに。 pingが通らない。 $ ping str ping: socket: Address family not supported by protocol $ ping -4 str ping: socket: Operation not permitted capabilityの確認。何も付いてない。 $ sudo getcap /bin/ping capabilityの付与と確認。 $ sudo setcap cap_net_raw=ep /bin/ping $ sudo getcap /bin/ping /bin/ping = cap_net_raw+ep "cap_net_raw+ep"が付与された。 そしてping通るようになった。     $ ping str PING stretch.h.ccmp.jp (192.168.60.3) 56(84) bytes of data. 64 bytes from stretch.h.ccmp.jp (192.168.60.3): icmp_seq=1 ttl=64 time=6.89 ms 64 bytes from stretch.h.ccmp.jp (192.168.60.3): icmp_seq=2 ttl=64 time=3.100 ms 64 bytes from stretch.h.ccmp.jp (192.168.60.3): icmp_seq=3 ttl=64 time=3.53 ms 以下ちょっと実験する際などに役立つコマンド達  capability, xattrの確認コマンド、何もない時     # getcap /bin/ping # getfattr -n security.capability /bin/ping /bin/ping: security.capability: No such attribute # sudo getfattr -d /bin/ping # sudo attr -l /bin/ping capab

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 r

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

LinuxルーターでのIPv6 IPoE設定

イメージ
こんにちは、昨今の状況からステイホームをリモートワークを励行しています。多くの人たちが業務のために自宅からインターネットにアクセスしたり、外に遊びに行けず自宅でネットコンテンツを長時間視聴するためか、日時を問わずNTTフレッツ回線のネットワークが非常に遅くなっているような気がします。 フレッツ回線の混雑の情報をネットで調べてみると、もともと回線設備の容量が少なめで、主にIPv4のPPPoE接続で利用しているNTTのNGNの網終端装置で回線が混み合っているのではないかということです。 ( https://eng-blog.iij.ad.jp/archives/5536   http://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側に用いています。eth0とeth0.10を後述のコマンド例で使いますが、前者が内側、後者が外側ということです。 ちなみに、ルーターのOSはDebian Busterをtarで固めたものをUSBメモリに入れ、起動時にtmpfsに展開して、ディスクレスで運用しています。こうすることで、万が一NUCが壊れたとしても適当なパソコンをルーターとしてブートすることが可能です。 WANインターフェースの設定 IPv6の世界では、Stateless

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スクリプトで行います。中身を見てもらえばわか

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.