« 2009年03月 | メイン | 2009年05月 »

2009年04月 アーカイブ

2009年04月03日

32bit でのコンパイル

OpenSUSE 10.3 amd64 で32bit のコンパイルをする場合には
gcc42-32bit をパッケージからインストール
して

gcc にコンパイルオプションに "-m32" を追加する

gcc -m32 -O .........

と言ったように。。

雷!!

昨日、客先からデータの送出ができないと言った内容の障害報告を頂いた。

確認に訪問して、データ送出用のPCに触ろうと手を伸ばした瞬間

部屋が一瞬真っ暗に。。「瞬停!!」確認すると。。事務所側のPCは全部。。再起動しているし。。

担当の女性は明らかに、こちらを睨んでいるし。。

「俺は静電気でどこかにリークさせたか?」と思いながら、
とりあえず責任者に報告しに行こうとした時に「ゴロゴロ。。。。」
雷だ。。

ため息を吐いた瞬間でした。。
これから増えるから注意しよう。。(笑)

VMware..

VMware workstation が 6.5.2 にアップデートしている。。
とりあえず上げておきます。。

http://www.vmware.com/download/ws/

どこが変わったのでしょうか?

2009年04月05日

Forth の備忘録

変数の宣言
 VARIABLE
## a を変数として宣言する
## VARIABLE a

変数への代入
!
## スタックから(34を)変数にコピーする
## 34 a !

変数の読み出し
@
## 変数(a)からスタックに格納
## a @

応用
変数 a から b にコピー
# a @ b !

2009年04月07日

FreeBSD7.1 で rounting....

FreeBSD でマルチホームを作る場合に 7.1 から大幅に変わったのでご注意を。。。

以下の部分は
http://www.allbsd.org/~hrs/diary/200901.html
からの引用であるので、詳細はURLを参照して欲しい。


==========
以下引用
==========
7.1R 新機能その一。複数のルーティングテーブルのサポート。 使い方はこんな感じ。

GENERIC カーネルでは、(普通の方法では) 有効にできないようになっているので、 まずはカーネルを再構築しましょう。再構築する前に、 次のオプションを追加します。

options ROUTETABLES=2

この数字はルーティングテーブルの数を表します。 今のところ 16 個まで設定可能。再構築の手順等は、 ハンドブックを読んでください。

ルーティングテーブルと呼ぶのは長ったらしいので、ここからは もうちょっと抽象的な呼称である FIB と呼びます。

FIB には、0 番、1 番のように、順番に番号が付けられています。また、 FIB は、プロセス単位で割り当てることが可能です。割り当てるには setfib(1) というコマンドを使います。こんな感じ。

# setfib -3 ping target.example.com

この場合、ping には FIB 3 番が割り当てられます。

それぞれの FIB に経路を設定するには、"setfib 1 route..." のように、 route コマンドを setfib と組み合わせて使うわけです。

で、7.1R 以降における「FIB がひとつしかない状態」は、 「常に FIB 0 番を使い続けていること」と同じになります。 カーネルオプションを追加しないと FIB は複数にならないものの、 カーネルの内部処理としては、 「ひとつ」は「複数」の特別な場合にすぎません。

FIB が複数ある場合、次のようなルールで選択されます。

*

FIB が設定されているパケットは、その FIB が使われます。 設定されていなければ、FIB 0 番が使われます。
*

外部から到着して、IP フォワーディングの対象となるパケットには、 FIB 0 番が使われます。
*

あるプロセスが listen している TCP ソケットがあり、 そのプロセスに FIB が割り当てられていると、 accept したソケットにも同じ FIB に割り当てられます。
*

TCP 以外で FIB が割り当てられているパケットの場合、 そのパケットに対する応答パケットは、同じ FIB が割り当てられます。
*

gif(4) や tun(4) などのトンネルインタフェースで 生成されるカプセル化されたパケットは、 そのインタフェースを作ったプロセスの FIB が割り当てられます。 (つまり setfib 1 ifconfig gif create のように設定できる)
*

ルーティングメッセージは、 そのメッセージを生成したプロセスの FIB が割り当てられます。

とりあえず FIB を複数用意して、"setfib 1 netstat -nr" のように実行してみると、感じがつかめると思います。 適当に経路を追加・削除しても、 0 番をいじくらなければ、基本的に影響はありません。

FIB の数は、カーネルオプションの他、loader tunable でも変更できます。 主なものは次のとおり。

*

net.fibs: FIB の数。16 個まで指定可能。
*

net.my_fibnum: デフォルト FIB の番号。 何も指定しなければ 0 になる。今までの記述で「0 番」と表現していたものは、 この番号を変えると変わる。
*

net.add_addr_allfibs: デフォルト FIB 以外の FIB 全部に、 インタフェースの経路を自動的に追加するかどうか。 何も指定しなければ 1 になっている。0 にすると、 明示的に経路を追加しないと 0 番以外には経路が追加されなくなる。

また、FIB は IPFW でも設定できます。allow の代わりに setfib というアクションルールを指定します。たとえば

# ipfw add 1000 setfib 番号 from any to any

とすると、この条件にマッチするパケットが指定された番号の FIB に割り当てられます。そしてルールの処理は、マッチしようがしまいが、 そのまま直後のルールに続きます。

==================================
以上
http://www.allbsd.org/~hrs/diary/200901.html
から引用


About 2009年04月

2009年04月にブログ「林檎と悪魔とペンギンと」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2009年03月です。

次のアーカイブは2009年05月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。