Étude des Interactions IPsec / DNS
Transcription
Étude des Interactions IPsec / DNS
04002-LOR 2004 Mars 2004 LES INTERACTIONS IPSEC/DNS ---oOo--- Abstract : ! ! ! $ ! " ! ! # ! ! " ! # % $ & '( $ ) * $ # # + , , * $ # ---oOo— - - * 0 4 ! %- 6 " 6 8 ./ 1 02322 4 " - * # 5 "# 0 4 Mars 2004 6 7 ./ ! 1 02322 4 " %6 " #6 7 5 "# , - - * 6 " [email protected] 6 7 [email protected] Mars 2004 .6 6 9 /4 2# " 1 2#2# ! ##############################################################################################################: / ##################################################################################################################: 2#;# ######################################################################################################################: 2#<# , = 2#?# ###################################################################################################################################> 1 ####################################################################################################################> ;# ##################################################################################################################################@ ;#2# ! / ##################################################################################################################@ ;#;# ######################################################################################################################@ ;#<# , = ;#?# <# #################################################################################################################################2@ 1 ##################################################################################################################;2 ################################################################################################################################;; <#2# <#;# <#<# ?# 9A , 4 ##########################################################################################################;; * ########################################################################################################;; B4################################################################################################################;< #####################################################################################################;: ?#2# #######################################################################################################################;: ?#;# #######################################################################################################################;> :# ###########################################################################################################################################;C / ###############################################################################################################################################;@ Mars 2004 !" # $ = # " * , # % "& " 9G1/ ' ! G1/+# #. , D E ( *F E H I # * I ! % dig int-evry.fr. @pompei.int-evry.fr. AXFR E E "# J "# # # $ F * " $ ! # ! IH * $, ! , L F # ") ! $ E " , ) M$* $ * # ! ! ' & * *F $ ! +# , ! L , ) ! $ *, $ , E $ # 4 !$ # ' " $ # ") *F ") $, * $ $ # , " * , & , '$ I * # * H G1/ * $ I K $ , ( $ # ( , , # , * ! , , * ") E * , !* +# 4 * $ * F + ( *, , , ( + ( % *F " 9G1/ ) = M$ , $ #4 , *F F! , E F # $ F $ ) , , ( +# Mars 2004 # $ H E ! & I ! $ ! '$ (# % * * * ) ! J $ $ +# $ *, ! , # , ! +# 4 * " , • (# % , 8 ") )I ) *+ 8 , * # , ") , * * * * , I +$ N , # O , I , ( " * 9 6 • , # , *F , # $ $ " * $ * +# , * * # , , $ $ $ ( I * * *F * , $ $ F ! ,) # ! * # ! " ! ( * $* I $ , * # $ I $ E # H ! $ ! , I, * $ $ #+ , ! # # * * * , # % , * ") # # $ & ' $ * , J & % 6 • ") , # • = ") • * ) ' * $ F % # ! & +# * # * ") ) (# H • , , ! ' , # $ H # = Mars 2004 # N * • 4 E $ ") $ L +# = $ L $ & , ) * ,) HI L (, # % , , , ' ! * , = = , *F * , F $ Mars 2004 , & ) I !* # ! '# P $ # " ( -$ * , ( % , ) #/ "& " $ ! ( # + ( $, #4 , $ ( + , * * # * $ , * ! H F , , 4 B4R ! * $ "# # , O$, $ * Q ,H * # , I, * $ ! L , )$ ! Q #4 ) # 6 ) J F 4 B4R$ F * * & " , 4 B4R Q ' * $ $ # " *, #9 , F I , $ , , , ( $ F ' (( . // 01 /$ 2 S $ ") F " 9 $ * $, $ , * (( , H , ! ' +# # ") # , & * J , , + F E P % ' $ , ! I ! $ , * , # $ # , Mars 2004 % * , E # ' " " ,---------------. | Correspondant | | Légitime | ,-------. `---------------' ,------. +-->| DNS 1 |--+ | | Hôte | | `-------' | | `------' | | | | ,-----------. | ,-------. | #---------# o------------o | Attaquant |**+-->| DNS 2 |--+-->| Routeur |**| Passerelle |--> `-----------' | `-------' | #---------# | IPsec | | | | o------------o +..............| v | | | v | ,-------. | +-->| DNS n |--+ (*) liens bas débit `-------' (-) liens haut débit , * , # , $ , !L # $ , * I * " ) , * $, ! , $ , ) , , +$ , !L # $ $ &E I, * , * # , * ' ### *F ") 6 $ O *F & * $ , ' , F * ) , $ " 4!#4 $ $ E = (T2U+# (# % H # H I ! * % ping -n -q -f -Q 0x08 -M dont -l nombre -s taille destination([2]). % • • • 9 V 2>333333 V 2?C; ( +# V 20;#2>@#2#@3 * ( , ") " Mars 2004 ;#?#;< 1 ;#3?+% # (% * ,--------------. | 192.168.2.50 | | ( Extrémité | | du tunnel ) | `--------------' ,--------------. | | 192.168.1.80 | | `--------------' | | #----------------# o----------------o | 192.168.2.1 | | 192.168.1.1 | ,--------------. | 157.159.100.49 |**| 157.159.100.52 | | 192.168.3.76 |--| 192.168.3.1 | | ( Extrémité | `--------------' #----------------# | du tunnel ) | o----------------o (*) liens bas débit (-) liens haut débit , * $ L I ") $ & '$ 20;#2>@#<#C>$* 2:C#2:0#233#?0 2:C#2:0#233#:;# 9 * L , , " % tc qdisc add dev eth2 root handle 1: cbq avpkt 1000 bandwidth 1mbit tc class add dev eth2 parent 1: classid 1:1 cbq rate 64kbit \ allot 1500 prio 5 bounded isolated tc filter add dev eth2 parent 1: protocol ip prio 16 u32 \ match ip dst 157.159.100.52 flowid 1:1 ([3]) % 20;#2>@#;#:3 20;#2>@#2#@3 ! I &E '$ * , I I , * # $ ! #= ( $ + B4 * $ * $ *, ") # * ((( . $ * " !)* F = N $ 8 ! #= $ ") $ H # , , # ! , , * $ • • • ( ;#?#;< " ( ! ! ! " % # 1 ") # ;#3?+$ % +# # # $ ) $ * ! * & * ' I # Mars 2004 !# , $ $ # ! #. ((( " , % CONFIG_IP_NF_MATCH_AH_ESP CONFIG_IPSEC_IPIP CONFIG_IPSEC_AH CONFIG_IPSEC_AUTH_HMAC_MD5 CONFIG_IPSEC_AUTH_HMAC_SHA1 CONFIG_IPSEC_ESP CONFIG_IPSEC_ENC_3DES CONFIG_IPCOMP CONFIG_IPSEC_DEBUG CONFIG_IPSEC_REGRESS 9 , # (((( " ! , # * ! (/ 9+ ( B+ , , " , *, F * $ $ F $ *, / 9$ $ $ * / X Y>X9 * F ! $ ) " /# B4$ # , , I, * / 9 * B $, $ $, B4 ( * +# # , , * # F ) , + $, (# * ( ) ! Z I ! ! * $* % $ H ' * $, * $ ! ! +# )* * 9 " / * , ! # $ ! , * " " ' ! % Mars 2004 ! # , I, ' J , # (((( * * , $ ! W "$W "># I , * * * 2# ;# , # # $ X Y?X9 " * , ! , $ I I # , B4# , $ # ) ' ,--------------. | 192.168.2.50 | | ( Extrémité | | du tunnel ) | `--------------' ,--------------. | | 192.168.1.80 | | `--------------' | | #----------------# o----------------o | 192.168.2.1 | | 192.168.1.1 | | 157.159.100.49 |--| 157.159.100.52 | #----------------# | ( Extrémité | | du tunnel ) | o----------------o ! ! * ! $ # I 20;#2>@#;#:3 ( H ! ) * $ F , $ +# I % roadwarrior.maquette.int-evry.fr: RSA { ... clef RSA 1 ... } : RSA { ... clef RSA 2 ... } , F ! N $ 20;#2>@#2#2 * ! $ #4 # Z $ * % , ) 20;#2>@#;#:3# * * $ ! $ , * & '* * F $* $ * $ * * * I / 9 2$ $ * * ) % * ! , * $ ) $ Z ! : RSA { ... clef RSA 2 ... } roadwarrior.maquette.int-evry.fr: RSA { ... clef RSA 1 ... } ! * (, $ * + ! * ! , $ ! , !L , * * # $ # ,K , ) , $ $ ! * / 9 ; (# * / 92 $ +% ( 2+# $ ( ;+# , Mars 2004 , ! # * , , !L , F * , , * # [1, [2, [3, [4, [5, [6, ( ;, +# # , IP, Nr, Nb, Nr, * , * , *, *, C, C, C, C, RSA] RSA] RSA] PSK] PSK] RSA] [3, [4, [1, [2, [5, [6, Liste 1 Nb, Nr, IP, Nr, * , * , C, C, *, *, C, C, RSA] PSK] RSA] RSA] PSK] RSA] [4, [1, [2, [3, [5, [6, Liste 2 Nr, IP, Nr, Nb, * , * , C, *, *, C, C, C, PSK] RSA] RSA] RSA] PSK] RSA] Liste 2' Légende: [ordre, hôte, partenaire, clef] Nb : Nom bloqué (résolution contrée) Nr : Nom résolu IP : Adresse IP * : Masque (Sélecteur par défaut) 9 $ $/ 9U+$ $ $ * * ) , ;, # , ) #4 !$ T2$ $[$/ 9U J ( I$ * 2# , * ,! , * ) ;# *, I , , / 9+$ B+# $ , J $ # I * , !L # ! # ' , O ) $ *, F ' F % , * , !L # , *, * , , ( ! " *, , N $ ((((( (T<$ $ # I ( <# $ , !L $, !L / 9+# H " / " ) N $ ;J * $ * , !L $ " I, , $ Mars 2004 X2 , * * , !L # X2 % # 3 [1, IP_1, IP_C1, RSA] [2, IP_2, IP_C2, RSA] [3, Nb_1, IP_C2, RSA] [4, Nr_2, IP_C3, PSK] [5, * [6, [7, [8, [9, [A, , Nr_C1, RSA] @N_2, @N_1, IP_3, * , * , Nb_C2, Nr_C2, IP_C3, %any , * , RSA] PSK] PSK] RSA] RSA] [1, IP_1, IP_C1, RSA] [3, Nb_1, IP_C2, RSA] [6, @N_2, Nb_C2, RSA] [3, Nb_1, IP_C2, RSA] [6, @N_2, Nb_C2, RSA] [7, @N_1, Nr_C2, PSK] -(B1)-----------------[7, @N_1, Nr_C2, PSK] [1, IP_1, IP_C1, RSA] -(A)------------------------------------------[2, IP_2, IP_C2, RSA] [2, IP_2, IP_C2, RSA] -(B2)-----------------[4, Nr_2, IP_C3, PSK] [4, Nr_2, IP_C3, PSK] [5, * , Nr_C1, RSA] [5, * , Nr_C1, RSA] [8, IP_3, IP_C3, PSK] [8, IP_3, IP_C3, PSK] [9, * , %any , RSA] [9, * , %any , RSA] [A, * , * , RSA] [A, * , * , RSA] Liste 1 Liste 2 Liste 3 Légende: [ordre, hôte, partenaire, clef] Nb : Nom bloqué (résolution contrée) Nr : Nom résolu @N : Nom symbolique (non-résolu) IP : Adresse IP * : Masque (Sélecteur par défaut) %any: n'importe quel correspondant 2 , * * 5 X;$ < * (9+ , !L J ! # #. , ) $ * (9+$ $ (P;+# # ! $ (P2+ * , * $ % # 4 [1, IP_1, IP_C1, RSA] [2, IP_2, IP_C2, RSA] [3, Nb_1, IP_C2, RSA] [4, Nr_2, IP_C3, PSK] [5, * , Nr_C1, RSA] [6, [7, [8, [9, [A, @N_2, @N_1, IP_3, * , * , Nb_C2, Nr_C2, IP_C3, %any , * , Liste 1 RSA] PSK] PSK] RSA] RSA] [1, IP_1, IP_C1, RSA] [7, @N_1, Nr_C2, PSK] -(B1)-----------------[6, @N_2, Nb_C2, RSA] [1, IP_1, IP_C1, RSA] [7, @N_1, Nr_C2, PSK] [6, @N_2, Nb_C2, RSA] -(A)------------------------------------------[3, Nb_1, IP_C2, RSA] [3, Nb_1, IP_C2, RSA] [2, IP_2, IP_C2, RSA] [2, IP_2, IP_C2, RSA] -(B2)-----------------[4, Nr_2, IP_C3, PSK] [4, Nr_2, IP_C3, PSK] [5, * , Nr_C1, RSA] [5, * , Nr_C1, RSA] [8, IP_3, IP_C3, PSK] [8, IP_3, IP_C3, PSK] [9, * , %any , RSA] [9, * , %any , RSA] [A, * , * , RSA] [A, * , * , RSA] Liste 2' Liste 3' Légende: [ordre, hôte, partenaire, clef] Nb : Nom bloqué (résolution contrée) Nr : Nom résolu @N : Nom symbolique (non-résolu) IP : Adresse IP * : Masque (Sélecteur par défaut) %any: n'importe quel correspondant Mars 2004 ; 4 * $I X2 J , X ;$ , * * $ F * # * • • • I " ! , * , ! # / 9# , F $ % * F , I * $ $ H H ! * # $ F $ *, I F # In many cases it is a bad idea to use domain names because the name server may not be running or may be insecure. * $ # * ((() " 1 F I - ! # # % ((() *, " # - \ , ! $ ) , *, " $ I , " # B4 2# 9 ;# <# ?# & # ( " F X Y?X9 / ( " " X1] ! ( , * ) " # , % X Y>X9 /+# X Y?X9 / X= 4/X1] X Y>X9 /+# +# ' , $ " ^; ) # B4 $ $ , ! # "% 024 need --listen before --initiate B4$ + L *, I , $ *, B4 ) $ $ ) " F % 2# 9 4 B4R (T?U+ , F I , , F ( ) # , , !L , +$ " ) , " & ( ( ###+# * $ I * $ E I Mars 2004 , # $ ' , ;# , !L (! +$ 4 B4R F E # <# & , ' I * $, * , , *, * * * +# , , , *F * * * E *F ( $ $ * , * 4 $ ) * I # , , * * ( +$ , * F F E # ) " , * $, * # , $, , , * # ((()( " # ) % • • • • • ( !+ ( ! ! ( ! ( ! + 7 "( ! + ! + 7 "$ 7 ";$ ! 7 ";+ ! & L , * # $ # ") ") # * ! +$ ! ) & ' I, # $ +# * • #4 W " $ & " * ") $ F F F! B4 ! * I, '$* $, I ( % _V` # , $ $ ( " & H7 '% ) , F • W * , , 1 ;#33# • W * ") # $ $ B4 ! ! ' $ , F # # / I I F , ! I , !L % 022 "rwsg": we have no ipsecN interface for either end of this connection Mars 2004 # # 4 $ " 4 !$ I, !L $ * $, ! ! * , , , " X Y?X9 / X Y>X9 /$ E " X1] X= 4/X1] $ E $, , I $, B4 , $ * F I $H * , I , % * # * , # # # 031 "rwsg" #1: max number of retransmissions (2) reached STATE_MAIN_I3. Possible authentication failure: no acceptable response to our first encrypted message • W F , / * , F # # ) 9 = 1 $ $ * ;$& * '$2:C#2:0#233#:; , ") ;?$ K 20;#2>@#2#3;?# '# 4 ! ( $ * ) & , " $ +# S # 20;#2>@#2#3;?# * * $ B4 % 021 no connection named "rwsg" $, , B4( & 7 '= G+ * % ipsec__plutorun: whack error: "rwsg" does not look numeric and name lookup failed "toto-le-sous-reseau/24" ipsec__plutorun: ...could not add conn "rwsg" , # F! ) ! $ * ! $, F! , ! , " F * * $, ! $ ! ! * , * # # * ! V 2$ # J * $ , % 024 need --listen before --initiate * % ipsec__plutorun: whack error: "rwsg" does not look numeric and name lookup failed "toto-le-routeur/24" ipsec__plutorun: ...could not add conn "rwsg" ) , # " $ I ") ! 7" 7 "+# ! ) $ ) B4# * * ) Mars 2004 ") W & ! '( W ) * # ! ! I, * $ ! #= *F % 021 no connection named "rwsg" * % ipsec__plutorun: 028 failure to fetch key for @toto-la-passerelle from DNS: failure querying DNS for TXT of toto-la-passerelle: Hostname lookup failure ipsec__plutorun: 028 failure to fetch key for @toto-la-passerelle from DNS: failure querying DNS for KEY of toto-la-passerelle: Hostname lookup failure ipsec__plutorun: ...could not add conn "rwsg" $ # () *+ " , $ $ * K + " #4 , " # F ! () ) I # # " / N $ # ' 5 - " ! # * , , F " * $ % , !L $ * , !L $ 4 $ (+ , I ( +# $ • , I ," , *, $ I * F $ , $ I & * F J ' ( +# $ $ ") $ % 003 "rwsg" #1: unable to locate my private key for RSA Signature $ (+ (+ , , " ( $ +$ F *, $ $ # * * # # % H ( * • , * # , * , ! $ , 33<, +# * F! I $ I , , L !L # * (+ $ * ") # , Mars 2004 OF +# I (F , !L $ $ I ! $ # ! 4 F $ # * $ , , 33<,( $ * $ * ! , ()( + " ) " / "' -' " (# $, H $ ! +# , , , (# $ , +# " - + *, I ( * + ! * $ % ipsec__plutorun: 027 bad --keyid "%myid": illegal (non-DNS-name) character in name I F! $, * *, , , $ * * W " , " $ * # * $, * * # 4 B4R # , * $ ) * I ! ! , # ! J * ") ") ! $ $ ") $ , #4 * , * F I # ) $ , ") * $* # ) # * * ;?# * $ ) #6 I # I $ * % 6 ,--------------. | 192.168.2.50 | | ( Extrémité | | du tunnel ) | `--------------' ,--------------. | | 192.168.1.80 | | `--------------' | | #----------------# o----------------o | 192.168.2.1 | | 192.168.1.1 | | 157.159.100.49 |--| 157.159.100.52 | #----------------# | ( Extrémité | | | du tunnel ) | ,-----. o----------------o | DNS | | `-----' ,--------------. | 192.168.3.27 | `--------------' Mars 2004 F F $ ) $ # * 20;#2>@#2#3;? I * 20;#2>@#<#3;? 20;#2>@#;#:3 ( + 2:C#2:0#233#:; ( + N * ") (, ) $ * , +$ " * ;?$ 20;#2>@#2#2 # $ , * I L I 20;#2>@#<#2 ( +$ E $ * # $ , " , $ * * , * * N # * , , I * # # $ * %* # , * ! H ! #= $ *, # , , # $, F , , * " * " * & '# $ ) $ " ) " $ # ) # , & ! ' & ' ) # $ , !L $ , ( * +# , $ ! ! # $ , * ) $ *, , $ * , F ( * , ! & '* , , " $ * , +# = ) , , 4 B4R # $ , * I I I $ #4 $ * , #. H # , ( * 4 B4R+$ ) ! 7 "$* * # ) F ! , I I , 4 B4R # * $ F # * , , , 4 B4R# ! # , $ I & ' * 4 B4R , , ! ( +# 4 $ , ! # ,H ! , $ L , # , $ * $, * $ ,* , # Mars 2004 (, # * , # 1 $ !" !) * * % , ) " $ , ! * , * ") F ) ! $ +# I , $, ) ( N # #4 $ , , # , F 4 B4R ! $ J , $ ! $ , * ") * ( ") $ ") + ( +$ $ ( * , +# $ ( $ $ * , I ") +# Mars 2004 , !L , ) -& #/ • • • % (9A = I * '$ * ( ,! 4 + + (B4 ) 78 B4 ;+ . $9A 4 # $ I $, $ $ * ! , = * $ ! = # % # 9 +-----+ | DNS | +-----+ +---+ | H | +---+ \ / +----------+ | Pare-Feu | +----------+ +------+ | SG-B | +------+ \ / +------+ | SG-A | +------+ $ * * = * H 1 1 $ A * , ") ) E $ H * ! 6 = '# ,1 # , * I M P# 6 ! * ,1 #= ,1 * # # $ #] * $ * = " * I M9 * $ * 6 " " I # , 6 $ , = ! I , , # * ( 1 $ * )( * a9 + , 6 # F I $ I I * " I * F 6 = $ ! ! & A # $ # Mars 2004 L , = * J 6 H 2# I , L * & H * 1 7 '# , K # # , % *F $ , I *F # ,! 6b , ;# , % , , ") $ # I $ ,! * , # * .A.J % : +--------+ | Hôte-1 | +--------+ +---------+ | Serveur | +---------+ \ / +-----+ +------+ +----------+ +------+--| DNS | | SG-A |--| Internet |--| SG-B | +-----+ +------+ +----------+ +------+ / +--------+ | Hôte-2 | +--------+ * % $ H I $ AL 2 # $ * ( * $ ! ! M9 +# 4 I $ $ , $* $ AL 2 #6 ! * AL 2 , * '$ ( , # , )) * ! * L $ ( *F # *F $ $ ' *, $ * * # " I , # " B4 # , ;. B4 ! , , 4 B4R# * * , ! # *F $ $ & 4 B4R , +# , # * ! I, ! E * $ I * +# , ) , * * , H * $ # *F F <# = F ! I $ F * & AL ; B4 ! = I, $ , $, I # Mars 2004 $ $ = $ (* $ B4 , * I # , = $ # % < +-------+ | Net-A | +-------+ \ +------+ | SG-A | +------+ +-------+ +--------+ | DNS-C | | Net-B1 | +-------+ +--------+ \ / +---------+ +------+ | Routeur | | SG-B | +---------+ +------+ \ / \ / +------+ +------+ | GW-A | | GW-B | +------+ +------+ \ +--------+ | Net-B2 | +--------+ $ M9 $& ! #= P; MP , !L J '$ #+$ 9 MP * F B4 Ma P F J N * L # +$ * * ! Mars 2004 P2$ I / / $ *F " ( # # B4 $ !* I !* # , , , ") , (, +# , J ) $ F , , " # $ 4=/ ! $ F # $ I F #/ , H , * , # * " ) $ , I 6 K, H $ , F! ( 6 G+# * * # I E , F I $ I " $ % • • ( * ( , = ! * & , ' , E * ! B4R + 1 # # , # , * , I $ , , 4 B4R$ F , , , # , ) # , $ ( BG 4/ +# 9 $ ! ! B4R G ( +# 9 $ ! 4 B4R$ " $ , ( * * * ! +# I * %& .K , Q'# 4 $ * I $ " E X E X # $ E !L $ • F I E $R " &6 F I + * ( , + ! - '+# =- > , I E * $ , !L OI N ") " * • , !L (" * $ $ " # !"" ! % * , 2 , I ## $ * + " B4 (& - J ! $ E X * # F * , (, +# , ! E #H ! $ E X # E'+ I $ I I # , # Mars 2004 * # , E $ , ( + 1 E X ,! FI * ) 6 ! S = # * $ , J # E E ) , I X E $ # $ * * , " I $ !$ F ") *, * $ I *, #4 # $ # # 4 $ B $ O # ! $ * "! # ,( ") \ $ ) $ * I, ( I $ , ) I, I " $I * , +# $ # , J, $ $ ") E # $ ! " , L $ 6 $ * # ! $ F *, # , % • , , , ) +# • , ! # ! • E ! * F , • $, , ) ( ! F , # $ , * ( E , * L ! # *F 6 ! L E +# Mars 2004 $ 3% $ $ 9 * # $ $ F $ ") # $ %6 8 * * ) ! , $ * , I # , $ Mars 2004 , , # , Z $* ! # ") , , , ! $ ) 8 '-' TP 3<U $ ! % % !#! T P6 3<U & S P $ 6 " T T1 &'# "U T U T 6 7 ! # 7 T ;:<:U # (# 22# ' & * # (# 6 # #! % /# :;# - # 7# 200@# ! % '0 '* 1 & # ! 7# $&' + 1 * # # 6 +* * 1&1 0 & 0# ' "( *, 7 # *' $ '&1 0 # # 6 * # #P #1 # #4 $ 7# 6 $ , ;33;# # 20@C# /1 7 # 200># /1 202;# 4 1# 2000# /1 ;:<:# 4 1# I # T;U '# ?# "# '# ! T 23<:U 0 & & * 20@C# /1 23<:# 4 1# 202;U' $- # & ! ;33;# // 3<33; ./ # -.& # ! % U& 9 6 T ;33<# - * " ) T 23<?U 0 & 23<?# 4 1# '# - ! M ) (! ""# ! % ;3 . ;33<# '# ! ,$ # '# 4 # 6 " T 4 6 # 1 a 9 U+ T2U . 6 9 3;U* ! 9 P # 6 7 T 6 3;U& - - * T 9 ! 3;U& 4 ;33;# TM 3;U& # # I % WARNING: probably, rcvbuf is not enough to hold preload. T<U D # ") # Mars 2004 $ T?U 4 $ * G 4 B4R$ F , 4 B4R F H ) # # Mars 2004 , I , $ $ *