Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2009-02-16 [長年日記]
_ lenny release
Desktopとしては常用しているので、私自身はとくに変わらず。Server は、今のところ外だしには自前で運用してないので、かなり気が楽だ。
中のためのサーバなら仕事のピークが過ぎて、不都合がなくなったときに upgrade か、新規に再インストールしようかと思う。
_ かわいそうな TOS と Linux における pfifo_fast、prio
通信の世界で利用されている TCP/IP で IPのヘッダーには TOS フィールドがある。これの説明が Google でひっかかる IPヘッダーの資料を読むと、あまりに邪険にされすぎてかわいそうというか、近年では TOS を使っている例もあるんだから、「ほとんど使われてない」ってのは言い過ぎだろう。
RFC 1349(http://www.ietf.org/rfc/rfc1349.txt)のTOSの図は、linux で パケットの優先制御をするときには必要な概念なんだがなあ。スティーブンソンのTCP/IP Illustrated, Volume 1:The Protocolsなら p38-39 を参照せよ。
下記は、RFC 1349の図で、(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classless.html)の pfifo_fast qdisc についての説明の補足がいると思ったんで抜き出してみた。
0 1 2 3 4 5 6 7 +-----+-----+-----+-----+-----+-----+-----+-----+ | | | | | PRECEDENCE | TOS | MBZ | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+
で、precedenceは優先度で、TOSは、サービス型、MBZは常に0だという略語。で、私が混乱しそうになった部分は、上の図の書いててある7がLSB(もっとも小さなビット)に該当し、0がMSB(もっとも大きなビット)に相当するようだと判るまでだった。The first field, labeled "PRECEDENCE" above, is intended to denote the importance or priority of the datagram. This field is not discussed in detail in this memo.
The second field, labeled "TOS" above, denotes how the network should make tradeoffs between throughput, delay, reliability, and cost. The TOS field is the primary topic of this memo.
The last field, labeled "MBZ" (for "must be zero") above, is currently unused. The originator of a datagram sets this field to zero (unless participating in an Internet protocol experiment which makes use of that bit). Routers and recipients of datagrams ignore the value of this field. This field is copied on fragmentation.
で、(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classless.html)には
第 4 列は Linux カーネルによる TOS ビット列の解釈です。どの優先度にマップされるかを示しています。とあっさりと書いてありますが
TOS Bits Means Linux Priority Band ------------------------------------------------------------ 0x0 0 Normal Service 0 Best Effort 1 0x2 1 Minimize Monetary Cost 1 Filler 2 0x4 2 Maximize Reliability 0 Best Effort 1 0x6 3 mmc+mr 0 Best Effort 1 0x8 4 Maximize Throughput 2 Bulk 2 0xa 5 mmc+mt 2 Bulk 2 0xc 6 mr+mt 2 Bulk 2 0xe 7 mmc+mr+mt 2 Bulk 2 0x10 8 Minimize Delay 6 Interactive 0 0x12 9 mmc+md 6 Interactive 0 0x14 10 mr+md 6 Interactive 0 0x16 11 mmc+mr+md 6 Interactive 0 0x18 12 mt+md 4 Int. Bulk 1 0x1a 13 mmc+mt+md 4 Int. Bulk 1 0x1c 14 mr+mt+md 4 Int. Bulk 1 0x1e 15 mmc+mr+mt+md 4 Int. Bulk 1のLinux Priorityというものがあり、優先度(3ビット分だから0から、7の値になる(index つまり Linux Priority))に分類され、デフォルトの優先度map(下記)が反映されてBANDになります。
index|0, 1, 2, 3, 4, 5, 6, 7 ----------------------------------------------------- value|1, 2, 2, 2, 1, 2, 0, 0 , 1, 1, 1, 1, 1, 1, 1, 1これが理解し、下記を理解すると、 pfifo_fast だけでなく prio についても自信をもてるようになると思います。
9.5.2.2. ハードウェアへパケットをデキューする(http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.classful.html)を読んで、どの順番でパケットがdequeueされるか?が大事かと。
_ ip moo command ...
yabuki@yelona:~$ ip moo _ __ ___ ___ ___ | '_ ` _ \ / _ \ / _ \ | | | | | | (_) | (_) | |_| |_| |_|\___/ \___/ P.S. no real cows were harmed for this moo
_ RATS and Flawfinder
両方とも、C,C++などのプログラムからセキュリティ上のリスクを取り除く「手始め」になるプログラムです。もちろん、Debian GNU/Linux lenny には入っています。
いまだと、svnなどのソース管理ソフトウェアをつかえば、これらのツールが検出できる程度のリスクが増えているのか、減っているのかもわかります。
(http://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/tools.html)の部分や、その他の部分も役立つかもしれません。