- PR -

エラー「klips_error:ipsec_xmit_send: ip_send() failed, err=-1」が!

1
投稿者投稿内容
Yuka
会議室デビュー日: 2003/12/06
投稿数: 9
投稿日時: 2004-07-01 15:24
全てRedHat9で(ipsec)VPNを構築しています。

jitaku.dyndns.com
(ppp0)
|
WAN─(ppp0)daigaku.dyndns.net
|
(ppp0)
shokuba.dyndns.co.jp

という構成になっていまして今現在は

[root@daigaku.dyndns.net]# rpm -qa |grep freeswan
freeswan-userland-2.01_2.4.20_8-0
freeswan-module-2.01_2.4.20_8-0

[root@daigaku.dyndns.net]# cat /etc/ipsec.conf | grep -v ^# | grep -v ^$
version 2.0 # conforms to second version of ipsec.conf specification
config setup
interfaces="ipsec0=ppp0"
klipsdebug=none
plutodebug=none
conn %default
type=tunnel
keyingtries=3
authby=rsasig
keylife=1h
pfs=yes
conn jitaku-to-daigaku
left=ddd.ddd.ddd.ddd
leftsubnet=192.168.3.0/24
leftid=@daigaku.dyndns.net
leftrsasigkey=0sAQO…iap
leftnexthop=DDD.DDD.DDD.DDD
right=jj.jjj.jjj.jjj
rightsubnet=192.168.0.0/24
rightid=@jitaku.dyndns.com
rightrsasigkey=0sAQ…9VU9
rightnexthop=JJJ.JJJ.JJJ.JJJ
auto=add
conn daigaku-to-shokuba
left=ddd.ddd.ddd.ddd
leftsubnet=192.168.3.0/24
leftid=@daigaku.dyndns.net
leftrsasigkey=0sAQ…jSRYiap
leftnexthop=DDD.DDD.DDD.DDD
right=sss.sss.sss.sss
rightsubnet=192.168.2.0/24
rightid=@shokuba.dyndns.co.jp
rightrsasigkey=0sAQN…5S6IXIn
rightnexthop=SSS.SSS.SSS.SSS
auto=add
conn block
auto=ignore
conn private
auto=ignore
conn private-or-clear
auto=ignore
conn clear-or-private
auto=ignore
conn clear
auto=ignore
conn packetdefault
auto=ignore

残りの2ホストの/etc/ipsec.confも同様に記述しています。

[root@daigaku.dyndns.net]# service ipsec start
[root@daigaku.dyndns.net]# ipsec auto --up jitaku-to-daigaku
[root@daigaku.dyndns.net]# ipsec auto --up daigaku-to-shokuba

      daigaku.dyndns.net
        /   \
shokuba.dyndns.co.jp─jitaku.dyndns.com

のVPNを構築しています。
時々、

Jul 1 14:39:40 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:39:45 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:39:45 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:39:49 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:39:49 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:39:55 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:39:55 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:39:59 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:39:59 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:40:06 daigaku kernel: NET: 2 messages suppressed.
Jul 1 14:40:06 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:40:10 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:40:10 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:40:15 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:40:15 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:40:16 daigaku kernel: application bug: perl(14371) has SIGCHLD set to SIG_IGN but calls wait().
Jul 1 14:40:16 daigaku kernel: (see the NOTES section of 'man 2 wait'). Workaround activated.
Jul 1 14:40:19 daigaku kernel: NET: 1 messages suppressed.
Jul 1 14:40:19 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1
Jul 1 14:40:26 daigaku kernel: NET: 2 messages suppressed.

というエラーがえんえんと表示されます。
これは一体何が原因なのでしょうか?


因みに/var/log/secureには下記のように出ています。

Jul 1 13:47:25 daigaku pluto[19130]: "jitaku-to-daigaku" #41: responding to Main Mode
Jul 1 13:47:25 daigaku pluto[19130]: "jitaku-to-daigaku" #41: sent MR3, ISAKMP SA established
Jul 1 13:56:55 daigaku pluto[19130]: packet from 219.111.67.245:500: Informational Exchange is for an unknown (expired?) SA
Jul 1 14:14:13 daigaku pluto[19130]: "jitaku-to-daigaku" #42: responding to Quick Mode
Jul 1 14:14:13 daigaku pluto[19130]: "jitaku-to-daigaku" #42: IPsec SA established {ESP=>0x3fe688ab <0xecb087bc}
Jul 1 14:25:47 daigaku pluto[19130]: "jitaku-to-daigaku" #41: ignoring Delete SA payload: PROTO_IPSEC_ESP SA(0x3fe688aa) not found (maybe expired)
Jul 1 14:27:35 daigaku sshd[6919]: debug2: channel 0: rcvd adjust 32806
Jul 1 14:33:19 daigaku pluto[19130]: "jitaku-to-daigaku" #43: responding to Main Mode
Jul 1 14:33:20 daigaku pluto[19130]: "jitaku-to-daigaku" #43: sent MR3, ISAKMP SA established
Jul 1 14:46:56 daigaku sshd[6919]: debug2: channel 0: rcvd adjust 32880
Jul 1 14:47:25 daigaku pluto[19130]: packet from 219.111.67.245:500: Informational Exchange is for an unknown (expired?) SA
Jul 1 15:04:58 daigaku pluto[19130]: "jitaku-to-daigaku" #44: responding to Quick Mode
Jul 1 15:04:58 daigaku pluto[19130]: "jitaku-to-daigaku" #44: IPsec SA established {ESP=>0x3fe688ac <0xecb087bd}
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-07-01 20:37
ipsec のことは全然知りませんが...

引用:

Jul 1 14:39:40 daigaku kernel: klips_error:ipsec_xmit_send: ip_send() failed, err=-1


通信の問題にみえます。
ネットワークインタフェースカードがヘタレだとか、ドライバが
バグってるとか、あるいはもっと先のほうでスイッチがおかしい
とかの可能性もあるかしら?
・・・いえ、ip_send() がエラーを返す条件は知らないのですが、
たぶんそんなところではないかなあ、と。

引用:

Jul 1 14:40:16 daigaku kernel: application bug: perl(14371) has SIGCHLD set to SIG_IGN but calls wait().


これはこれでどうかと思うですが。
Linux で SIGCHLD に SIG_IGN を設定するのはマズイです。
wait()してるのも謎ですが。
・・・まあ、それほど気にしなくてもいいかもしれませんが、
私の経験としては SIGCHLD に SIG_IGN を設定したらプロセスが
思わぬ挙動をした、ということがあるです。
Yuka
会議室デビュー日: 2003/12/06
投稿数: 9
投稿日時: 2004-07-04 15:27
遅くなりましてすいません。

> これはこれでどうかと思うですが。
> Linux で SIGCHLD に SIG_IGN を設定するのはマズイです。
> wait()してるのも謎ですが。
> ・・・まあ、それほど気にしなくてもいいかもしれませんが、
> 私の経験としては SIGCHLD に SIG_IGN を設定したらプロセスが
> 思わぬ挙動をした、ということがあるです。
とりあえず、原因となるファイルを探しました。

# grep SIGCHLD /usr/bin/spamd
# this can happen when interrupted by SIGCHLD on Solaris,
# with our SIGCHLD handler, but best to keep it around anyway.)

# grep wait /usr/bin/spamd
use POSIX qw(:sys_wait_h);
# now allow waiting processes to connect, if they're watching the log.
"): waiting for some to exit";
while ( my $kid = waitpid(-1, &WNOHANG) > 0 ) {
Specify a maximum number of children to spawn. Spamd will wait until another

だと思います。

# chmod 644 /usr/bin/spamd

としてみましたが同様のログが出てしまいます。

うーん、どうすれば
SIGCHLD に SIG_IGN を設定しないようにできるのでしょうか?
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-07-04 20:46
すみません、混乱させてしまったようですが、SIGCHLD の問題は
おそらく本筋ではありません。
KLIPS がエラーを吐いているところが、やはり本題でしょう。

ip_send() がエラーを出しているのは「どうもネットワーク
カードが怪しいな」と思ったのですが、そうでもないかも。
検索かけてみると、KLIPS にバグがあるとか、ip_send() のエラーの
取り扱いがどうこうとか、そういった情報がひっかかってきます。
・・・してみると、とりあえずは FreeS/WAN を最新版に
アップデートしてみる、といったところでしょうか。
どうにもはっきりしない話ですみませんが...
1

スキルアップ/キャリアアップ(JOB@IT)