Re: vmac mode send out arp request with MAC of physical interface
Alexandre Cassen <[email protected]>
| Newsgroups | gmane.linux.keepalived.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Sial, waaaaoooo, 2.6.32… is really an old man… well, I will have a look at this on my devel env but it sound it is a kernel arp issue according to your log. regs, Alexandre On 01 Jun 2014, at 19:15, Sial Nije <[email protected]> wrote: > Greetings, > > Ran a quick test using macvlan interface doing arp request. It uses the MAC of the physical interface in the arp request, not the artificial MAC I assigned to it. > Tested on a up-to-date CentOS 6.5 box to ensure I am not interfered by any modifications done by Vyatta. CentOS 6.5 runs 2.6.32-431.17.1.el6.x86_64 kernel. > > Steps: > 1. set up [arp_ignore, arp_announce, arp_filter, rp_filter] for [all, eth0, default] under /proc/sys/net/ipv4/conf according to the scheme: > - all.arp_ignore=1, all.arp_announce=1, all.arp_filter=0 > - eth0.arp_filter=1 > - default.arp_filter=0 > - rp_filter is 0 for everything > > 2. add a macvlan interface: > ip link add link eth0 v1 address 00:00:5e:00:01:bb type macvlan mode vepa > > 3. assign v1 an IP in the same segment as the physical interface: > ip addr add 192.168.12.11/24 broadcast 192.168.12.255 dev v1 > ip link set v1 up > > 4. Go to another box 192.168.12.99 and run tcpdump to catpure arp traffic. > > 5. From my testbox ping 192.168.12.99 from the macvlan interface > ping -c2 -I 192.168.12.11 192.168.12.99 > > 6. tcpdump output with -e -X options: > 09:00:17.966944 00:0c:29:64:5c:13 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: > Request who-has 192.168.12.99 tell 192.168.12.11, length 28 > 0x0000: 0001 0800 0604 0001 000c 2964 5c13 c0a8 ..........)d\... > 0x0010: 0c0b 0000 0000 0000 c0a8 0c63 ...........c > > Inside the packet, 000c 2964 5c13 is the field for src MAC. It is the MAC of > the physical interface. It is not using 0000 5e00 01bb as assigned. > c0a80c0b is the field for src IP address which is 192.168.12.11. > Following that target MAC (all 0) and target IP address. > > 7. Tried changing all/arp_announce to 0, v1/arp_announce to 0. > No change. > > Thus the underlying macvlan interface does not use its own MAC when it sends out arp requests. May be keepalived has a hook to override this behavior. I will try to install latest keepalived on CentOS 6.5 to see how it goes, when return to work on Monday. > > Regards, > sial > > > > On Sat, May 31, 2014 at 8:37 PM, Sial Nije <[email protected]> wrote: > Greetings, > > Appreciate if someone not using Vyatta can confirm that vrrp vmac mode does not use the physical MAC to send out arp requests. The steps are quite simple: > 1. Suppose Virtual IP is 10.10.10.2 and there is a host 10.10.10.x (e.g. the backup) in the network. > 2. arp -d 10.10.10.x > 3. on 10.10.10.x run "tcpdump -nnq -i <10.10.10_interface> -e arp > 4. ping -c2 -I 10.10.10.2 10.10.10.x > The tcpdump should tell which MAC is used in the arp request. > > > > ------------------------------------------------------------------------------ > Time is money. Stop wasting it! Get your web API in 5 minutes. > www.restlet.com/download > http://p.sf.net/sfu/restlet_______________________________________________ > Keepalived-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/keepalived-devel ------------------------------------------------------------------------------ HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions Find What Matters Most in Your Big Data with HPCC Systems Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. Leverages Graph Analysis for Fast Processing & Easy Data Exploration http://p.sf.net/sfu/hpccsystems _______________________________________________ Keepalived-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/keepalived-devel