WOL is sent over a wrong NIC

Bug #1343317 reported by Filip Krikava
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Won't Fix

Bug Description

Based on this questions: http://askubuntu.com/questions/499060/wake-on-lan-with-maas-stuck-in-commissioning-does-not-turn-on-the-machine I made more debugging and found that WOL packets are sent over a wrong NIC.

The cluster controller has eth1 (public network - set and unmanaged) and p1p1 (maas node network - set as managed dhcp/dns).
When I commission a node or start a node the WOL is sent over the eth1 not the p1p1 (found using `sudo tcpdump -i eth1 port 9 -vvvv -s0 -n`).

stack@helios:~$ dpkg -l '*maas*'|cat
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
ii maas 1.5.2+bzr2282-0ubuntu0.2 all MAAS server all-in-one metapackage
ii maas-cli 1.5.2+bzr2282-0ubuntu0.2 all MAAS command line API tool
ii maas-cluster-controller 1.5.2+bzr2282-0ubuntu0.2 all MAAS server cluster controller
ii maas-common 1.5.2+bzr2282-0ubuntu0.2 all MAAS server common files
ii maas-dhcp 1.5.2+bzr2282-0ubuntu0.2 all MAAS DHCP server
ii maas-dns 1.5.2+bzr2282-0ubuntu0.2 all MAAS DNS server
ii maas-region-controller 1.5.2+bzr2282-0ubuntu0.2 all MAAS server complete region controller
ii maas-region-controller-min 1.5.2+bzr2282-0ubuntu0.2 all MAAS Server minimum region controller
ii python-django-maas 1.5.2+bzr2282-0ubuntu0.2 all MAAS server Django web framework
ii python-maas-client 1.5.2+bzr2282-0ubuntu0.2 all MAAS python API client
ii python-maas-provisioningserver 1.5.2+bzr2282-0ubuntu0.2 all MAAS server provisioning libraries

Tags: power
Revision history for this message
Julian Edwards (julian-edwards) wrote :

The askubuntu link is dead, can you supply another please?

Revision history for this message
Filip Krikava (krikava) wrote :
description: updated
Changed in maas:
status: New → Triaged
importance: Undecided → Low
tags: added: power
Revision history for this message
Filip Krikava (krikava) wrote :

If you could point me where to look, I'd happily help. For us this is a blocking issue.

Revision history for this message
Julian Edwards (julian-edwards) wrote :

You will need to pass the IP of the cluster interface into the power template and use it as the -i arg on the wol command.

The parameters are constructed in src/maasserver/models/node.py in the get_effective_power_parameters() method.


Revision history for this message
Raymond Tau (raymondtau) wrote :

Follow the advice of comment #4, I've tried to make this work by applying this change to the code which belong to the package maas version 1.6.0+bzr2545-0ubuntu1~ppa1.

Revision history for this message
Filip Krikava (krikava) wrote :

Thanks Raymond for the patch. I tried it, but I have a mixed results. It seems that it does not work always. For example if in the web ui I click add node, fill in MAC address and set power type to WOL it won't do anything.

I don't know the internals of MAAS, but it seems that the problem is that it does not know the IP address of the node since it has not yet been allocated (I might be wrong).
In the apache error.log I see the following:

[Wed Oct 29 16:19:43.494623 2014] [:error] [pid 4121:tid 140717661169408] [provisioningserver.tasks.power_on(u'ether_wake', username=u'', ipmipower=u'/usr/sbin/ipmipower', ipmitool=u'/usr/bin/ipmitool', fence_cdu=u'/usr/sbin/fence_cdu', power_id=u'node-0223131c-5f7f-11e4-b10d-0010185ab789', ipmi_chassis_config=u'/usr/sbin/ipmi-chassis-config', power_address=u'', system_id=u'node-0223131c-5f7f-11e4-b10d-0010185ab789', mac_address=u'00:23:24:0e:0d:e7', power_driver=u'', power_pass=u'', ipmi_config=u'ipmi.conf')]

No ip_address entry.

Wouldn't be a better strategy to get a list of all cluster managed interfaces and try them all?

Revision history for this message
Filip Krikava (krikava) wrote :

One more thing, in the issue_power_action method in provisioningserver/tasks.py the ip_address is already being injected using find_ip_via_arp so the change in the node.py is actually not needed.

Changed in maas:
milestone: none → next
Changed in maas:
status: Triaged → Won't Fix
Changed in maas:
milestone: next → none
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers