Re: Simple cell with standalone router/server + backup
"Elvis Stansvik" <[email protected]> Sat, 13 Sep 2008 13:00:50 +0200
| Newsgroups | gmane.network.silc.user |
|---|---|
| Message-ID | <[email protected]> |
2008/9/13 Elvis Stansvik <[email protected]>: > 2008/9/12 Elvis Stansvik <[email protected]>: >> 2008/9/12 Pekka Riikonen <[email protected]>: >>> : > Unfortuantely the current silcd requires ServerConnection entry, real or >>> : > dummy, for it to recognize that it is router. This will be fixed in 1.2. >>> : > I'm not sure if the backup router stuff requires IP addresses instead of >>> : > host names, but you may also attempt to use only IP addresses and see if >>> : > it makes a difference, also. >>> : >>> : Hm. Okay. I tried making it a dummy connection like you suggested, and >>> : also changed to using only IP addresses, but still tcpdump shows >>> : absolutely no traffic on port 706 between the two hosts when I do >>> : state changing stuff like e.g. /join foo followed by /cmode foo +f. >>> : >>> The backup router configuration is wrong as well. The backup router needs >>> to use the primary router as its primary router connection and thus use >>> RouterConnection. But because it is also router it also must have real >>> or dummy ServerConnection entry: >>> >>> ServerConnection { >>> host = "dummy"; >>> backup = true; >>> }; >>> >>> RouterConnection { >>> host = "silc.dose.se" >>> initiator = true; >>> }; >>> >>> Backup router must initiate connection to primary. >>> >>> Primary then has: >>> >>> ServerConnection { >>> host = "dummy"; >>> }; >>> >>> RouterConnection { >>> host = "silc2.dose.se" >>> backuphost = "silc.dose.se" >>> backupport = 706; >>> backuplocal = true; >>> }; >>> >>> I tested this and it worked... >> >> Thanks a lot for your patience with me. I see how I got it wrong now. >> However after I've adjusted my configuration to be: >> >> Backup Router >> -------------- >> ServerConnection { >> Host = "dummy"; >> Backup = true; >> }; >> RouterConnection { >> Host = "silc.dose.se"; >> Port = 706; >> PublicKey = "/opt/etc/silc.dose.se.pub"; >> Params = "normal"; >> Initiator = true; >> }; >> >> Primary Router >> --------------- >> ServerConnection { >> Host = "dummy"; >> }; >> RouterConnection { >> Host = "silc2.dose.se"; >> PublicKey = "/usr/local/etc/silc/silc2.dose.se.pub"; >> BackupHost = "silc.dose.se"; >> BackupPort = 706; >> BackupLocal = true; >> }; >> >> I first start up silcd on the primary router like this: >> >> [astan@franz /var/log/silc]$ sudo silcd -D 99 >> [Logging] [Info] SILC Server started >> >> But then when I start up silcd on the backup router, I get a segfault >> on the primary: >> >> [Logging] [Info] Incoming connection h251n2fls33o879.telia.com (213.66.197.251) >> Segmentation fault: 11 (core dumped) >> >> It segfaults right at the connection attempt from the backup. Got any >> ideas off the top of your head about this, or should I bring out gdb? >> :) > > I now compiled silc-server with --enable-debug on the primary router > and got a backtrace from the segfault: > > Starting program: /usr/home/astan/silc/sbin/silcd -f > /usr/local/etc/silc/silcd.conf -D 99 > [New LWP 100212] > [New Thread 0x28401100 (LWP 100212)] > [New Thread 0x28401200 (LWP 100162)] > [Thread 0x28401200 (LWP 100162) exited] > [New Thread 0x28401200 (LWP 100162)] > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x28401100 (LWP 100212)] > silc_pkcs_public_key_copy (public_key=0x0) at silcpkcs.c:637 > 637 key->pkcs = public_key->pkcs; > #0 silc_pkcs_public_key_copy (public_key=0x0) at silcpkcs.c:637 > #1 0x08061ff5 in silc_server_accept_completed (ske=0x284490c0, > status=SILC_SKE_STATUS_OK, prop=0x284058a0, > keymat=0x2840eca0, rekey=0x2840b820, context=0x2842c080) at server.c:2578 > #2 0x0810f8ee in silc_ske_st_responder_end (fsm=0x28449124, > fsm_context=0x284490c0, state_context=0x0) > at silcske.c:969 > #3 0x080b0db4 in silc_fsm_run (schedule=0x2841f1a0, > app_context=0x28406140, type=0, fd=0, context=0x28449124) > at silcfsm.c:429 > #4 0x080b0eb1 in silc_fsm_continue_sync (fsm=0x28449124) at silcfsm.c:309 > #5 0x0810afbd in silc_ske_packet_receive (engine=0x2840f1f0, > stream=0x2842c080, packet=0x2840eb20, > callback_context=0x284490c0, app_context=0x2842c0f0) at silcske.c:121 > #6 0x08094c14 in silc_packet_dispatch (packet=0x2840eb20) at silcpacket.c:2054 > #7 0x08098b10 in silc_packet_read_process (stream=0x2842c080) at > silcpacket.c:2318 > #8 0x0809ae84 in silc_packet_stream_io (stream=0x2840ebb0, > status=SILC_STREAM_CAN_READ, context=0x2842c080) > at silcpacket.c:436 > #9 0x08118de6 in silc_socket_stream_io (schedule=0x2841f1a0, > app_context=0x28406140, type=SILC_TASK_READ, > fd=10, context=0x2840ebb0) at silcunixsocketstream.c:36 > #10 0x080a879a in silc_schedule_dispatch_fd (schedule=0x2841f1a0) at > silcschedule.c:61 > #11 0x080a99e5 in silc_schedule_iterate (schedule=0x2841f1a0, > timeout_usecs=-1) at silcschedule.c:455 > #12 0x080a9abc in silc_schedule (schedule=0x2841f1a0) at silcschedule.c:499 > #13 0x0805900f in silc_server_run (server=0x28406140) at server.c:1192 > #14 0x080503b5 in main (argc=Error accessing memory address 0x0: Bad address. > ) at silcd.c:753 > > It seems that the key is NULL for some reason, not sure what to make > of it. Maybe it's a missing NULL-check somewhere or the value really > shouldn't be NULL there. So I tried with simple passphrase > authentication instead of using PublicKey, and then I get on the > primary router: > > [astan@franz ~/silc/sbin]$ sudo ./silcd -f /usr/local/etc/silc/silcd.conf -D 99 > [Logging] [Info] SILC Server started > [Logging] [Info] Incoming connection h251n2fls33o879.telia.com (213.66.197.251) > [Logging] [Error] Remote connection not configured > [Logging] [Error] Authentication failed > [Logging] [Info] Authentication failed for h251n2fls33o879.telia.com > (213.66.197.251) [Unknown] > [Logging] [Info] Closing connection h251n2fls33o879.telia.com:25591 [Unknown] > > Sorry for all the troubles, but I really think it should work when I > use just Passphrase. Any more ideas? I forgot to say, I also tried without any authentication, no Passphrase and no PublicKey, and I still get the above connection failure. Elvis > > Elvis > >> >> Elvis >> >>> >>> : > All state data is transferred, topics, modes, clients, channels, servers, >>> : > etc. >>> : >>> : Okay that's great. I forgot to ask though; are the public keys that >>> : the server read in from PublicKeyDir considered state data? So that if >>> : I at some point E would actually allow client connections to my backup >>> : router, could my clients authenticate with their public keys to the >>> : backup router and it would work? E.g. the keys would have been >>> : transferred to the backup? >>> : >>> Public keys are not transferred. >>> >>> Pekka >>> ________________________________________________________________________ >>> Pekka Riikonen priikone at silcnet.org >>> Secure Internet Live Conferencing (SILC) http://silcnet.org/ >>> >> > _______________________________________________________________ Info: https://lists.silcnet.org/mailman/listinfo/silc-users Archive: https://lists.silcnet.org/pipermail/silc-users FAQ: http://silcnet.org/support/faq/