まず $=w なるもので 捜した クラスの 内容の 一部分を 見てみると
nyanco.kingdom nyanco localhost [192.168.2.1] [192.168.0.5] [127.0.0.1] nyanco.kingdom.of.cat [localhost]
の ような もので有った 一方 ルールテスト Hubset で使用する ルールの 部分で 以下の様な場所が 有った
R$-@$w $@ $1@${HUB}
これは 何を していたかと いうと user@nyanco の ような ユーザーアドレ スを user@nyanco.kingdom.of.cat に 書き換える ルールであった もう少し補 足すれば 発信者の アドレスを user@nyanco.kingdom.of.cat に書き換える。こ こでは 引用していないが Hubset というルールでもって
SHubset R$- $@ $1@${HUB} R$-@$w $@ $1@${HUB}
user のみ の もの user@nyanco のもの を user@nyanco.kingdom.of.cat に 書き換える あまり良い例ではないが
watasi -----> watasi@nyanco.kingdom.of.cat omae@nyanco -----> omae@nyanco.kingdom.of.cat kokomo -----> kokomo@nyanco.kingdom.of.cat daresore@nyanco -----> daresore@nyanco.kingdom.of.cat
また その場合 nyanco に 相当するものとして
$ /usr/sbin/sendmail -Ctest16.cf -d0.1 -bt < /dev/null
/* 抜粋 */
(short domain name) $w = nyanco
(canonical domain name) $j = nyanco.kingdom.of.cat
(subdomain name) $m = kingdom.of.cat
(node name) $k = nyanco
があるので それを使用した、その場合の テストは
$ /usr/sbin/sendmail -Ctest17.cf -bt Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,Hubset watasi 3 input: watasi 3 returns: watasi Hubset input: watasi Hubset returns: watasi @ nyanco . kingdom . of . cat > 3,Hubset omae@nyanco 3 input: omae @ nyanco 3 returns: omae @ nyanco Hubset input: omae @ nyanco Hubset returns: omae @ nyanco . kingdom . of . cat > 3,Hubset kokomo 3 input: kokomo 3 returns: kokomo Hubset input: kokomo Hubset returns: kokomo @ nyanco . kingdom . of . cat > 3,Hubset daresore@nyanco 3 input: daresore @ nyanco 3 returns: daresore @ nyanco Hubset input: daresore @ nyanco Hubset returns: daresore @ nyanco . kingdom . of . cat > /quit
ここまでは 良かった 良かった ということである が もし user@127.0.0.1 user@localhost という アドレスの 場合は どうなるであろうか? こんな奴は 無視するなん ということであれば 良いのですが 仲間やねん 一緒やねん とい う風に 同じ クラスの 同級生?? として 扱う事を 考えようという理由です
nakama 単独以外は 仲間はずれにしています
$ /usr/sbin/sendmail -Ctest17.cf -bt Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,Hubset nakama 3 input: nakama 3 returns: nakama Hubset input: nakama Hubset returns: nakama @ nyanco . kingdom . of . cat > 3,Hubset nakama@127.0.0.1 3 input: nakama @ 127 . 0 . 0 . 1 3 returns: nakama @ 127 . 0 . 0 . 1 Hubset input: nakama @ 127 . 0 . 0 . 1 Hubset returns: nakama @ 127 . 0 . 0 . 1 > 3,Hubset nakama@localhost 3 input: nakama @ localhost 3 returns: nakama @ localhost Hubset input: nakama @ localhost Hubset returns: nakama @ localhost > /quit
流行って欲しくない 〇〇〇 ですわ こんなことは しては いけません ほた ら どうすべい と云う事です
ここで
$ /usr/sbin/sendmail -C/etc/mail/sendmail.cf -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> $=w
localhost
...
[127.0.0.1]
...
と ルールセット Hubset の 部分
R$-@$w $@ $1@${HUB}
を考えてみよう ということです いままでは $w というのは (short domain name) $w = nyanco というもので 代用として 使いました ほたら ルールセット Hubset の 部分を
R$-@$w $@ $1@${HUB} :: $w (short domain name) $w = nyanco R$-@$=w $@ $1@${HUB} :: $=w class w を 使う
の様に 置き換える事ができれば と 考えるのです 置き換える前は LHS は
R$-@$w 何かトークン1個 $- その後 @ その後 (short domain name) $w = nyanco
置き換えた後は LHS は
R$-@$=w 何かトークン1個 $- その後 @ その後 クラス w (localhost [127.0.0.1]) 当然 nyanco も 同じ クラスです
再掲すれば 以下のものは 同じ クラス名 w の 仲間 と云う事です
> $=w nyanco.kingdom nyanco localhost [192.168.2.1] [192.168.0.5] [127.0.0.1] nyanco.kingdom.of.cat [localhost]
ほたら RHS は どうなるかといえば これは 最初のトークン $- はそのまま コピーします $1 その後は全て同じ @ nyanco . kingdom . of . cat にするので $1@${HUB} そうして これが 終われば リターン するので その前に $@ を 置 く形 つまり 変更は 無いと云う事に なります ほたら 試さねば いけん
そこんとこを変えたものを見てみましょう
$ cat test18.cf V10/Berkeley D{REMOTE}mailhost D{HUB}nyanco.kingdom.of.cat Mhub, P=[IPC], S=Hubset, R=0, F=mDFMuXa, T=DNS/RFC822/SMTP, A=IPC $h Mlocal, P=/bin/mail, F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail -d $u S0 R@$+ $#error $: Missing user name R$+ $#hub $@${REMOTE} $:$1 S3 R$* <> $* $n handle <> error address R$* < $* < $* > $* > $* $2 < $3 > $4 de-nest brackets R$* < $* > $* $2 basic RFC822 parsing SHubset R$- $@ $1@${HUB} R$-@$=w $@ $1@${HUB}
上手くいけば 御慰みです
$ /usr/sbin/sendmail -Ctest18.cf -bt Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,Hubset nakama@127.0.0.1 3 input: nakama @ 127 . 0 . 0 . 1 3 returns: nakama @ 127 . 0 . 0 . 1 Hubset input: nakama @ 127 . 0 . 0 . 1 Hubset returns: nakama @ 127 . 0 . 0 . 1 > 3,Hubset nakama@localhost 3 input: nakama @ localhost 3 returns: nakama @ localhost Hubset input: nakama @ localhost Hubset returns: nakama @ nyanco . kingdom . of . cat > 3,Hubset nakama@[127.0.0.1] 3 input: nakama @ [ 127 . 0 . 0 . 1 ] 3 returns: nakama @ [ 127 . 0 . 0 . 1 ] Hubset input: nakama @ [ 127 . 0 . 0 . 1 ] Hubset returns: nakama @ nyanco . kingdom . of . cat > 3,Hubset nakama@[localhost] 3 input: nakama @ [ localhost ] 3 returns: nakama @ [ localhost ] Hubset input: nakama @ [ localhost ] Hubset returns: nakama @ nyanco . kingdom . of . cat > /quit
へい 御慰みでした 仲間が無事増えました 同じクラスのものは 全て 書き換 えられる 事に なります。尚 上記のように IP アドレスが 数字の 並びの 場合 [ と ] で 囲まないと 仲間と 認識してくれないようです また localhost は class の 名前 w の 中で [ と ] で囲まれたものと そうでないものの 両方 入って入るようです。
にゃんたろう 拝!
2006年10月 7日 (土) 23:48:38 JST 作成