dhcp server (DHCPFlags feature)
It's not bug ... but some feature. After some testing, i figured out, that some dhcp clients (udhcp) in discover message havn't set broadcast flag, so replay is also unicast. And thease clients can't get ip address. Is it possilbe to allow update DHCP-Flags in replay, i've tried in update section: DHCPFlags = Broadcast But looks like without success. Haralds
EvilEzh wrote:
It's not bug ... but some feature. After some testing, i figured out, that some dhcp clients (udhcp) in discover message havn't set broadcast flag, so replay is also unicast.
Ah... the server doesn't listen on a raw socket, so it sees the packets being sent to a destination of it's IP address... not the broadcast IP.
And thease clients can't get ip address. Is it possilbe to allow update DHCP-Flags in replay, i've tried in update section: DHCPFlags = Broadcast
I'll take a look. It may be simpler to just say that DHCP offers are broadcast. Alan DeKok.
And thease clients can't get ip address. Is it possilbe to allow update DHCP-Flags in replay, i've tried in update section: DHCPFlags = Broadcast
I'll take a look. It may be simpler to just say that DHCP offers are broadcast.
I use relays (because i want to use option 82 ... not tested yet) ... so replay to relay is unicast. And if i want relay to broadcast replay message, i need to update broadcast flag. So after relay receive message it will broadcast to client (i hope so).
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
EvilEzh wrote:
I use relays (because i want to use option 82 ... not tested yet) ... so replay to relay is unicast. And if i want relay to broadcast replay message, i need to update broadcast flag. So after relay receive message it will broadcast to client (i hope so).
Ah, OK. I've added the ability to update the flags via the flags attribute. Alan DeKok.
Ah, OK. I've added the ability to update the flags via the flags attribute.
Just checked out from cvs .. and got compile error: creating .libs/radiusdS.c (cd .libs && gcc -g -O2 -c -fno-builtin "radiusdS.c") rm -f .libs/radiusdS.c .libs/radiusd.nm .libs/radiusd.nmS .libs/radiusd.nmT gcc .libs/radiusdS.o -o .libs/radiusd .libs/acct.o .libs/auth.o .libs/client.o .libs/conffile.o .libs/crypt.o .libs/exec.o .libs/files.o .libs/listen.o .libs/log.o .libs/mainconfig.o .libs/modules.o .libs/modcall.o .libs/radiusd.o .libs/radius_snmp.o .libs/session.o .libs/smux.o .libs/threads.o .libs/util.o .libs/valuepair.o .libs/version.o .libs/xlat.o .libs/event.o .libs/realms.o .libs/evaluate.o .libs/vmps.o .libs/detail.o -Wl,--export-dynamic /root/freeradius/radiusd/src/lib/.libs/libfreeradius-radius.so -lnsl -lresolv -lpthread /usr/lib64/libsnmp.so -lcrypt /usr/lib64/libltdl.so -ldl -lssl -lcrypto .libs/listen.o: In function `rad_status_server': /root/freeradius/radiusd/src/main/listen.c:309: undefined reference to `request_stats_reply' .libs/listen.o: In function `acct_socket_recv': /root/freeradius/radiusd/src/main/listen.c:725: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:728: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:725: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:728: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:778: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:778: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:792: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:801: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:792: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:801: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:735: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:735: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:767: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:767: undefined reference to `radius_acct_stats' .libs/listen.o: In function `auth_socket_recv': /root/freeradius/radiusd/src/main/listen.c:675: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:623: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:626: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:623: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:626: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:690: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:696: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:690: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:696: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:633: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:633: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/listen.c:665: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/listen.c:665: undefined reference to `radius_acct_stats' .libs/radius_snmp.o: In function `radAuthServ': /root/freeradius/radiusd/src/main/radius_snmp.c:437: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:441: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:445: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:449: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:453: undefined reference to `radius_auth_stats' .libs/radius_snmp.o:/root/freeradius/radiusd/src/main/radius_snmp.c:457: more undefined references to `radius_auth_stats' follow .libs/radius_snmp.o: In function `radAccServ': /root/freeradius/radiusd/src/main/radius_snmp.c:292: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:296: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:300: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:304: undefined reference to `radius_acct_stats' /root/freeradius/radiusd/src/main/radius_snmp.c:308: undefined reference to `radius_acct_stats' .libs/radius_snmp.o:/root/freeradius/radiusd/src/main/radius_snmp.c:312: more undefined references to `radius_acct_stats' follow .libs/event.o: In function `wait_a_bit': /root/freeradius/radiusd/src/main/event.c:970: undefined reference to `request_stats_final' /root/freeradius/radiusd/src/main/event.c:961: undefined reference to `request_stats_final' .libs/event.o: In function `received_request': /root/freeradius/radiusd/src/main/event.c:1763: undefined reference to `radius_auth_stats' /root/freeradius/radiusd/src/main/event.c:1763: undefined reference to `radius_acct_stats' .libs/event.o: In function `remove_from_request_hash': /root/freeradius/radiusd/src/main/event.c:135: undefined reference to `request_stats_final' collect2: ld returned 1 exit status gmake[4]: *** [radiusd] Error 1 gmake[4]: Leaving directory `/root/freeradius/radiusd/src/main' gmake[3]: *** [common] Error 2 gmake[3]: Leaving directory `/root/freeradius/radiusd/src' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/root/freeradius/radiusd/src' gmake[1]: *** [common] Error 2 gmake[1]: Leaving directory `/root/freeradius/radiusd' make: *** [all] Error 2
Haralds Ulmanis wrote:
Just checked out from cvs .. and got compile error: ... /root/freeradius/radiusd/src/main/listen.c:309: undefined reference to `request_stats_reply'
Edit src/main/Makefile, and add "stats.c" to the SERVER_SRCS line. It's in Makefile.in, but you probably didn't re-run "configure", and likely don't want to do that, either. Alan DeKok.
I still can't get some clients to receive my dhcp packets. After some more testing i figured out packet size differences. In other dhcp server responses it's 342 bytes ... on radius dhcp server i've 618 bytes. Is it possible to make send back messages as short as possbile ? :) Also found some references that dhcp clients can refuse messages if thay are larger that expected. Haralds from rfc: The client SHOULD include the 'maximum DHCP message size' option to let the server know how large the server may make its DHCP messages. The parameters returned to a client may still exceed the space allocated to options in a DHCP message. In this case, two additional options flags (which must appear in the 'options' field of the message) indicate that the 'file' and 'sname' fields are to be used for options.
----- Original Message ----- From: "EvilEzh" <ezh@telcobalt.lv> To: "FreeRadius users mailing list" <freeradius-users@lists.freeradius.org> Sent: Friday, June 20, 2008 8:12 PM Subject: Re: dhcp server (udp packet size)
I still can't get some clients to receive my dhcp packets. After some more testing i figured out packet size differences. In other dhcp server responses it's 342 bytes ... on radius dhcp server i've 618 bytes. Is it possible to make send back messages as short as possbile ? :) Also found some references that dhcp clients can refuse messages if thay are larger that expected.
Have schange defaulr packet size to 300 in dhcp.c , looks ok now.
Hi,
In other dhcp server responses it's 342 bytes ... on radius dhcp server i've 618 bytes. Is it possible to make send back messages as short as possbile ? :) Also found some references that dhcp clients can refuse messages if thay are larger that expected.
Have schange defaulr packet size to 300 in dhcp.c , looks ok now.
hmm, i was going to advise doing a packet dump of each system to see how the 2 compare - where there are differences etc alan
I've net with over 1k dhcp clients. Problem with packet size was with linksys routers. They have udhcp client. Now it looks ok. Will do more testing.
In other dhcp server responses it's 342 bytes ... on radius dhcp server i've 618 bytes. Is it possible to make send back messages as short as possbile ? :) Also found some references that dhcp clients can refuse messages if thay are larger that expected.
Have schange defaulr packet size to 300 in dhcp.c , looks ok now.
hmm, i was going to advise doing a packet dump of each system to see how the 2 compare - where there are differences etc
alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
All of them .. i've redundant(duplicate) dhcp server also :) I tried to comapre response packets from both servers, new one (freeradius dhcp) and old one. And understand what's different. ----- Original Message ----- From: <A.L.M.Buxey@lboro.ac.uk> To: "FreeRadius users mailing list" <freeradius-users@lists.freeradius.org> Sent: Friday, June 20, 2008 11:54 PM Subject: Re: dhcp server (udp packet size)
Hi,
I've net with over 1k dhcp clients.
so? you just sniff the traffic of one of them...or a limited subnet of those. or, you sniff the traffic on a single client itself.
alan
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Can someone explain more about subj. Let see: incoming broadcast 0.0.0.0 -> 255.255.255.255 i can get thease packets incoming broadcast 10.4.0.1->255.255.255.255 i can't get thease packets. In another words, if there is ip address in source, i can't get thease packets to process (mostly thease are request packets to renew lease). I've binding ip = 0.0.0.0 interface = eth1 if i bind to ip address ip=xx.xx.xx.xx i can't get any packet to process. I've set up relay also ... so relay catch thease packets and forward to ip address. ip = 10.2.0.15 interface = eth0
Actualy i see in packet source x.x.x.x (client) -> z.z.z.z (server). replay is z.z.z.z -> y.y.y.y (relay). There is several retries from client. So i think clien't don't receive packet from relay. So if there is unicast from already configured client .. response should be sent directly back to client ignoring relay. DHCPREQUEST generated during RENEWING state: ........... This message will be unicast, so no relay agents will be involved in its transmission. Because 'giaddr' is therefore not filled in, the DHCP server will trust the value in 'ciaddr', and use it when replying to the client.
btw .. it works anyway with dhcp relay set. So nothing to do with it. With relay everything looks ok. :) It works. option 82 is also ok.
Actualy i see in packet source x.x.x.x (client) -> z.z.z.z (server). replay is z.z.z.z -> y.y.y.y (relay). There is several retries from client. So i think clien't don't receive packet from relay. So if there is unicast from already configured client .. response should be sent directly back to client ignoring relay.
DHCPREQUEST generated during RENEWING state: ........... This message will be unicast, so no relay agents will be involved in its transmission. Because 'giaddr' is therefore not filled in, the DHCP server will trust the value in 'ciaddr', and use it when replying to the client.
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Alan DeKok wrote:
Haralds Ulmanis wrote:
Just checked out from cvs .. and got compile error: ... /root/freeradius/radiusd/src/main/listen.c:309: undefined reference to `request_stats_reply'
Edit src/main/Makefile, and add "stats.c" to the SERVER_SRCS line.
It's in Makefile.in, but you probably didn't re-run "configure", and likely don't want to do that, either.
That sounds odd, assuming normal auto* practice. The top Makefile should contain a rule: Makefile: Makefile.in which would run "./config.status --recheck" What platform and version of make was this? -- REALITY.SYS not found: Universe halted.
Hi everybody: I am going to planify a new infrastructure with FreeRadius. I would like to ask to you, whats the rule to planify the use of proxy servers for the size in users or the size in use or the redundancy? Thank you from now
participants (6)
-
A.L.M.Buxey@lboro.ac.uk -
Alan DeKok -
Andrew Hood -
EvilEzh -
Haralds Ulmanis -
Yago F. Hansen