{"id":115,"date":"2010-12-22T09:42:53","date_gmt":"2010-12-22T08:42:53","guid":{"rendered":"http:\/\/www.idoru.be\/notes\/?p=115"},"modified":"2012-09-18T21:08:49","modified_gmt":"2012-09-18T19:08:49","slug":"ipmi-gratuitous-arp","status":"publish","type":"post","link":"http:\/\/www.idoru.be\/notes\/ipmi-gratuitous-arp\/","title":{"rendered":"IPMI &#038; Gratuitous ARP"},"content":{"rendered":"<p>Here&#8217;s a odd one,<\/p>\n<p>on one of my networks, I discovered this flowing around:<\/p>\n<p><strong>09:56:02.660795 arp who-has 192.168.30.32 (ff:ff:ff:ff:ff:ff) tell 192.168.30.32<\/strong><\/p>\n<p>(even though i&#8217;m not in this subnet)<strong><br \/>\n<\/strong><\/p>\n<p>For those of you who have seen this,<\/p>\n<p>it&#8217;s called a Gratuitous ARP and originates from an IPMI enabled nic (Intel&#8217;s IPMI = Intelligent Platform Management Interface)<\/p>\n<p>IPMI basically allows for sysadmins to monitor and administrate a machine without having to go through the OS.<\/p>\n<p>I found some info <a href=\"http:\/\/ubuntuforums.org\/archive\/index.php\/t-310542.html\">here<\/a>:<\/p>\n<blockquote>\n<div>\n<div>\n<div>Naoi<\/div>\n<div>March 26th, 2008, 06:37 PM<\/div>\n<\/div>\n<div>This issue cropped up for me just recently so even though this is an old thread I thought I&#8217;d use it to document how I turned off the gratuitous arps on my Intel SE7221BK1-E server board.Just FYI I&#8217;m in no way a network expert, so please forgive any mistakes as I am relying on various threads I came by in Googling this issue. ;)<\/p>\n<p>This link (http:\/\/buttersideup.com\/docs\/howto\/IPMI_on_Debian.html ) describes the hardware and software involved, which is called IPMI and stands for Intelligent Platform Management Interface. Although the HOWTO part didn&#8217;t apply directly to my particular solution it cleared up a lot of my confusion over where these arps were coming from and why.<\/p>\n<p>To quote the link above<\/p>\n<p>IPMI stands for Intelligent Platform Management Interface and is an open standard for machine health, and control (including remote control), and is implemented by many hardware vendors &#8211; Intel is one of the originators, and early adopters of the standard. Here are some useful things that IPMI can do on the SR2300 with Linux:<\/p>\n<p>* Check on hardware health, and report on problems (via the OS, or autonomously via the network)<br \/>\n* Provide a watchdog timer (in case the OS goes away, or programs can otherwise not run, the machine will be reset)<br \/>\n* Provide remote &#8220;lights out&#8221; access to both the Linux console, and the BIOS via ethernet (no serial concentrators, multi-port serial cards, or extra cabling required)<br \/>\n* Provide remote, OS independent control over the reset, and power buttons via ethernet (no funny remote control power sockets, relays, or other hacks required)<br \/>\n* Provide remote control of a server over a modem connection<br \/>\n* Make emergency remote management possible from a variety of simple devices (e.g. PDAs)<br \/>\n&#8230;<\/p>\n<p>It is useful to know a bit about how IPMI does its stuff &#8211; so I&#8217;ll give an overview, and try to bust some weird IPMI\/Intel jargon. There is a second autonomous computer on the motherboard (or baseboard, in IPMI&#8217;s politically correct \/ obfusicated language), this is a very simple, low power-consumption device, which should operate as long as power is connected to the machine (including when the majority of the server is powered down) &#8211; in IPMI speak, this computer is called the BMC &#8211; the Baseboard Management Controller &#8211; it uses its own firmware, which is independent of the system BIOS.<\/p>\n<p>If you have an Intel motherboard it comes with software to control the BMC in various ways, but unfortunately the software only works on Windows or Redhat\/Fedora Linux, and after failed tries to get it to work remotely from another Windows machine and reading that the Linux package wouldn&#8217;t install properly on other versions of Linux (I didn&#8217;t try it on Ubuntu though) I decided to try the open source versions of IPMI.<\/p>\n<p>Freeipmi (http:\/\/www.gnu.org\/software\/freeipmi\/) and openipmi are two such programs and freeipmi worked for me in the end.<\/p>\n<p>I couldn&#8217;t find a debian\/ubuntu version of freeipmi but I did fine this Fedora rpm version (http:\/\/rpmfind.net\/linux\/RPM\/fedora\/devel\/x86_64\/freeipmi-0.5.1-3.fc9.i386.html) which I was able to convert to a debian package using alien then install. I wasn&#8217;t sure how to compile and install the source version so this was &#8220;the path of least resistance&#8221; for me. :)<\/p>\n<p>After downloading the .rpm file I did the following to install the package:<\/p>\n<p>sudo alien -d ipmiutil-2.0.9-1.i386.rpm<br \/>\nsudo dpkg -i ipmiutil_2.0.9-2_i386.deb<br \/>\nsudo ln -s \/usr\/lib\/libcrypto.so.0.9.8 \/lib\/libcrypto.so.4<\/p>\n<p>From this long thread (http:\/\/www.nabble.com\/problem-with-freeipmi-0.5.3-and-intel-SE7221BK1-E-td14865773.html) I found I decided to try and load the three modules below, the third one gave me an error so it apparently wasn&#8217;t necessary, and in fact I don&#8217;t know if I needed to load any of them manually, but I went ahead and did it anyway.<\/p>\n<p>sudo modprobe i2c-dev<br \/>\nsudo modprobe i2c-core<br \/>\nsudo modprobe i2c-i810<\/p>\n<p>Once freeipmi was working (at least in a basic manner, afaik there are problems reading the sensors but I haven&#8217;t tried it) I was able to turn off the gratuitous arps by reading this user&#8217;s guide (http:\/\/gnu.freemirror.de\/savannah-checkouts\/gnu\/freeipmi\/freeipmi.pdf) and using the &#8220;bmc-config&#8221; command (with a change\/correction for the &#8211;key-pair option based on &#8220;bmc-config &#8211;help&#8221;):<\/p>\n<p>sudo bmc-config &#8211;commit &#8211;key-pair &#8220;Lan_Conf_Misc:Enable_Gratuitous_ARPs=No&#8221; -D SSIF<br \/>\n&#8211;driver-address=0x42 &#8211;driver-device=\/dev\/i2c-0 &#8211;register-spacing=1<\/p>\n<p>The options in the command are particular to motherboards using the SSIF driver, for other types of boards I&#8217;d suggest reading this general description (http:\/\/openipmi.sourceforge.net\/IPMI.txt), this Ubuntu thread (https:\/\/help.ubuntu.com\/community\/IPMI) or this other thread (http:\/\/wiki.adamsweet.org\/doku.php?id=ipmi_on_linux) (they didn&#8217;t work for me but helped my understanding).<\/p>\n<p>If anyone has any tips to add here please do, I arrived at this solution after lots of trial and error and I&#8217;m sure there&#8217;s a better\/quicker way but this worked for me.<\/p>\n<p>I&#8217;d like to use the ipmi software to monitor the hardware so any information on how to get this to work on my type of server board would be greatly appreciated. :)<\/p>\n<\/div>\n<\/div>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s a odd one, on one of my networks, I discovered this flowing around: 09:56:02.660795 arp who-has 192.168.30.32 (ff:ff:ff:ff:ff:ff) tell 192.168.30.32 (even though i&#8217;m not in this subnet) For those of you who have seen this, it&#8217;s called a Gratuitous ARP and originates from an IPMI enabled nic (Intel&#8217;s IPMI = Intelligent Platform Management Interface) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-115","post","type-post","status-publish","format-standard","hentry","category-unixlinuxbsd"],"_links":{"self":[{"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/posts\/115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/comments?post=115"}],"version-history":[{"count":3,"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/posts\/115\/revisions"}],"predecessor-version":[{"id":117,"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/posts\/115\/revisions\/117"}],"wp:attachment":[{"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/media?parent=115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/categories?post=115"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.idoru.be\/notes\/wp-json\/wp\/v2\/tags?post=115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}