Portál AbcLinuxu, 18. července 2025 07:04


Dotaz: Při offline v ipsec nefungují timeouty síť. aplikací

18.11.2009 11:53 timeouty
Při offline v ipsec nefungují timeouty síť. aplikací
Přečteno: 273×
Odpovědět | Admin
Narazil jsem na veliký problém. Mezi 2 pc mám na ipv4 zprovozněn ipsec v transport módu. O výměnu klíčů se stará racoon. Pokud je druhý pc vypnutý, tak se na něj samozřejmě nemohu dopingovat, ale nejhorší je, že nemohu pingu nastavit ani timeout, prostě to nefunguje. To samé pokud potřebuju z konzolového mysql provádět nějaké dotazy, tak místo toho, aby to skončilo na nastaveném timeout(na kterém to normálně končí pokud se nejedná o ipsec komunikaci), tak to zůstane viset. Můžete mi říct, co se děje a jak tam ten timeout nějak propašovat?


mysql --connect_timeout=3 .. nefunguje
ping -c1 -W1 -w1 -B -nr -v .. nefunguje
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.11.2009 21:58 timeouty
Rozbalit Rozbalit vše Re: Při offline v ipsec nefungují timeouty síť. aplikací
Odpovědět | | Sbalit | Link | Blokovat | Admin
-
19.11.2009 10:44 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Při offline v ipsec nefungují timeouty síť. aplikací
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zkoušel jsem ping a chová se normálně, to jest prakticky ihned mu jádro zakáže packet odeslat:

$ ping -c1 -W1 -w1 -B -n -v 147.251.23.28
PING 147.251.23.28 (147.251.23.28) from 147.251.23.20 : 56(84) bytes of data.
ping: sendmsg: Operation not permitted

--- 147.251.23.28 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

A odpovídající protokol racoonu při pokusu o ping:

Nov 19 10:23:34 album racoon: INFO: IPsec-SA request for 147.251.23.28 queued due to no phase1 found.
Nov 19 10:23:34 album racoon: INFO: initiate new phase 1 negotiation: 147.251.23.20[500]<=>147.251.23.28[500]
Nov 19 10:23:34 album racoon: INFO: begin Identity Protection mode.
Nov 19 10:23:34 album racoon: phase1(ident I msg1): 0.000780

a po chvíli:

Nov 19 10:24:05 album racoon: ERROR: phase2 negotiation failed due to time up waiting for phase1. ESP 147.251.23.28[0]->147.251.23.20[0] 
Nov 19 10:24:05 album racoon: INFO: delete phase 2 handler.
Nov 19 10:24:24 album racoon: ERROR: phase1 negotiation failed due to time up. 77584602df8e38cf:0000000000000000

Takhle vypadá moje politika:

# Test to dead end point
spdadd -4 147.251.23.20 147.251.23.28 any -P out prio def + 100 ipsec
   esp/transport//require
   ah/transport//require;
spdadd -4 147.251.23.28 147.251.23.20 any -P in prio def + 100 ipsec
   esp/transport//require
   ah/transport//require;

a takhle konfigurace IKE:

#remote anonymous
remote 147.251.23.19
{
        exchange_mode main,aggressive;
        #exchange_mode aggressive,main;
        #doi ipsec_doi;
        #situation identity_only;

    ca_type x509 "ipsec-ca.crt";
        my_identifier asn1dn;
    certificate_type x509 "album-racoon.crt" "album-racoon.key";
    peers_identifier asn1dn;
    peers_certfile x509 "router-racoon.crt";
    verify_identifier on;

        #generate_policy on;

        lifetime time 1 hour;   # sec,min,hour
        initial_contact on;
        proposal_check obey;    # obey, strict or claim

        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                #hash_algorithm md5;
                #authentication_method pre_shared_key;
                authentication_method rsasig;
                dh_group modp1024;
        }
}

# Test to dead end point
remote 147.251.23.28 inherit 147.251.23.19
{}

Používám jádro 2.6.31-gentoo-r6 a ipsec-tools-0.7.3. Pinganý stroj je směrován jako link-local a žádný takový neexistuje.

TCP klient (např. telnet) se chová tak, že se pokouší ustanovit spojení, dokud nevyprší limit TCP na sestavování spojení (spí uvnitř connect(2)).

19.11.2009 20:32 timeouty
Rozbalit Rozbalit vše Re: Při offline v ipsec nefungují timeouty síť. aplikací
Pokud z funkčního spojení pak odpojím druhý pc, tak ping skončí normálně:
ping -c1 -W1 -w1 -B -nr -v 192.168.1.21
PING 192.168.1.21 (192.168.1.21) from 192.168.1.20 : 56(84) bytes of data.

--- 192.168.1.21 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
ale pokud po přerušení spojení provedu /etc/init.d/racoon restart tak to právě zůstává ping viset. Když to visí tak je v logu tohle, což mi přijde normální:
Nov 19 20:22:27 x racoon: INFO: Reading configuration from "/etc/racoon/racoon.conf"
Nov 19 20:22:29 x racoon: INFO: Resize address pool from 0 to 255
Nov 19 20:22:29 x racoon: INFO: 127.0.0.1[500] used as isakmp port (fd=7)
Nov 19 20:22:29 x racoon: INFO: 127.0.0.1[500] used for NT-T
Nov 19 20:22:29 x racoon: INFO: 192.168.1.20[500] used as isakmp port (fd=8)
Nov 19 20:22:29 x racoon: INFO: 192.168.1.20[500] used for NAT-T
Nov 19 20:22:29 x racoon: INFO: ::1[500] used as isakmp port (fd=9)
Nov 19 20:22:29 x racoon: INFO: fe80::216:3eff:fe34:56fb%eth0[500] used as isakmp port (fd=10)
Nov 19 20:22:33 x racoon: INFO: IPsec-SA request for 192.168.1.21 queued due to no phase1 found.
Nov 19 20:22:33 x racoon: INFO: initiate new phase 1 negotiation: 192.168.1.20[500]<=>192.168.1.21[500]
Nov 19 20:22:33 x racoon: INFO: begin Identity Protection mode.
Nov 19 20:22:59 x racoon: ERROR: phase2 negotiation failed due to time up waiting for phase1. ESP 192.168.1.21[0]->192.168.1.20[0] 
Nov 19 20:22:59 x racoon: INFO: delete phase 2 handler.

Používám jádro distribuční 2.6.26-2-686-bigmem.
spdadd 192.168.1.20 192.168.1.21 any -P out ipsec

  esp/transport//require

  ah/transport//require;

 

spdadd 192.168.1.21 192.168.1.20 any -P in ipsec

  esp/transport//require

  ah/transport//require;


racoon.conf:
remote 192.168.1.21 {
        exchange_mode main;
	certificate_type x509 "x.pem" "x.private.pem";
        my_identifier asn1dn;
        peers_identifier asn1dn;
        proposal_check obey;
        verify_cert on;
        generate_policy on;
	peers_certfile x509 "peer.pem";
        lifetime time 79 min;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method rsasig;
                dh_group modp1024;
        }
        generate_policy off;
}
 
sainfo address 192.168.1.20 any address 192.168.1.21 any {
        pfs_group modp768;
        lifetime time 85 min;
        encryption_algorithm 3des;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}

19.11.2009 21:57 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Při offline v ipsec nefungují timeouty síť. aplikací

Přijde mi podezřelá volba generate_policy. Protože nepoužíváte (asi) dynamické adresy, tak ji zkuste vypnout a ujistěte, že se vám v jádře nepotulují zákeřné politiky (setkey, flush, nahrát politiky znova).

Pokud to tím není (z protokolu racoona není vidět, ke které politice chce vyrobit asociaci), tak by viděl rozdíl v jádře. Mám pocit, že se kdysi něco měnilo právě ohledně tohoto problému. Zkuste si to na současném jádře (třeba i z jiného stroje, kde si můžete dovolit nahodit poslední jádro).

20.11.2009 17:22 timeouty
Rozbalit Rozbalit vše Re: Při offline v ipsec nefungují timeouty síť. aplikací
Jo ta generate_policicy byl překlep, ale ničemu nevadil. Zkusil jsem jádro 2.6.30 z debian backports a tam už je to ok. Timeouty fungují. Nedalo by se něco zapsat do /proc aby to fungovalo i na 2.6.26, abych nemusel mít backport jádro?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.