Support for multiple nics / subnets
-
Originally mistakenly posted to “Latest FOG 0.33b” topic.
Hi. So I decided not to work on multiinterface patch - because of time and because there is too much change on 0.33 now and haven't time to figure out which code is involved. So I will postpone it for now. If you would have time, Tom (or anybody who has some idea about it), to write down the internals of multicasting in FOG 0.33 - which parts of code are involved (I think it should be enough which classes and scripts (just file names) - I think I would be able to understand the logic when I have an idea where to start from. If not, I will ask :) ), it would be really good - I will look here occasionally.
-
The multicast works based on three areas.
The first part: (The actual classes)
MulticastSessions.class.php (Just to create the actual session for use. Multiple or individual system.)
MulticastSessionsManager.class.php (Just the manager for finding/obtaining the sessions.)
MulticastSessionsAssociation.class.php (Used for the host/task relationship, Number of pc’s in tasking are counted through this. Associates the Session with the Tasks and Hosts.)
MulticastSessionsAssociationManager.class.php (Just to help find which tasks are part of a specific session.)
MulticastTask.class.php (Used to actually generate the command, kill the task when complete, update relevant fields as necessary.)
Host.class.php (The function createImagePackage() actually generates the package so hosts can operate as with any other tasking generated, but has separated methods to deal with multicast vs. unicast.)That’s pretty much it. It looks like a lot, but it really isn’t. The main files you’ll need to work with are:
MulticastSessions.class.php (To generate the session based on interface)
MulticastSessionsAssociation.class.php (So you can assign hosts/groups with a specific interface, this links the session with the tasking.)
MulticastTask.class.php (Really just to make sure the interface setting is where you need it.) -
Thanks much Tom. I will look at it when time permits (I suppose in few weeks).
[quote=“Tom Elliott, post: 22323, member: 7271”]The multicast works based on three areas.
The first part: (The actual classes)
[/quote]What’s the second part, is there any? Thanks.
-
Yeah,
The classes are all separated into their own parts.
First Part: (These files handle the sessions generated.)
MulticastSessions.class.php
MulticastSessionsManager.class.phpSecond Part: (These files associate the Task to the Session based on the Image)
MulticastSessionsAssociation.class.php
MulticastSessionsAssociationManager.class.phpThird Part: (These files deal with Task Creation and Command Creation:
Host.class.php (The function createImagePackage generates the taskings.)
MulticastTask.class.php (This file creates the command line and handles the stuff on the server.) -
Ok, thanks.
-
So, finally I’ve time to look at this again. I decided that I at first try to tinker with interface settings. But I can’t find right setting which affects udp-sender’s interface - I tried settings in FOG Configuration (FOG_WOL_INTERFACE, FOG_UDPCAST_INTERFACE, FOG_NFS_ETH_MONITOR), in Storage Management and in /var/www/fog/lib/fog/Config.class.php, and some combinations of these, but nothing works.
What’s the right way to change it? Is there some other setting I missed?
Thanks.
-
the interface for udp-sender is stored in /var/www/fog/lib/fog/Config.class.php under svc_setting method. I believe it’s defined value is:
MULTICASTINTERFACE -
Hi, thanks. I tried this already, but tried it once again and the same result. Then I realized, that maybe it needs /etc/init.d/FOGMulticastManager restart and yes, now the interface is changed
Few questions however - what is that setting - FOG_UDPCAST_INTERFACE - in FOG Configuration for? And why are there 2 configuration places - database and config file? Is it for some legacy reasons, or?
-
I think UDPCAST_INTERFACE is the intentional item to be used for dynamics. I can take a look on the SVN side of the house and get the interface from there.
-
SVN 2004 now uses the FOG_UDPCAST_INTERFACE rather than the defined interface in Config.class.php.
-
So, if I upgrade to SVN 2004, it should no longer use config and there will by only database (via FOG Configuration web interface) as configuration storage?
And what’s “dynamics”?
Thanks.
-
Dynamics, I am only guessing here that it works in this way now that we’re pulling from db. You wouldn’t have to restart the FOGMulticastManager service to change which interface you’re attempting to use.
-
It seem to work - svn 2014 - creates udp-sender processes with right interface no matter what’s in /var/www/fog/lib/fog/Config.class.php. Didn’t test deploying.
-
OK, so here is what’s needed to switch FOG 1.2.0 between networks (interfaces):
- FOG System Settings -> FOG Configuration:
* General Settings: FOG_WOL_HOST (change ip); FOG_WOL_INTERFACE (change iface)
* Multicast Settings: FOG_UDPCAST_INTERFACE (change iface)
* NFS Server: FOG_NFS_ETH_MONITOR (change iface)
* TFTP Server: FOG_TFTP_HOST (change ip)
* Web Server: FOG_WEB_HOST (change ip) - Storage Management -> DefaultMember:
* IP Address (change ip)
* Interface: (no changes) - /tftpboot/default.ipxe: change ip in last line
- change default gateway using ip command (to make wake on lan work - it uses default gw for broadcasts):
* ip r del default - delete current
* ip r add default via <gw for second network>
- FOG System Settings -> FOG Configuration: