Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
Synopsis: [carp] ipv6 does not work on carp interfaces [regression] Responsible-Changed-From-To: freebsd-net->glebius Responsible-Changed-By: glebius Responsible-Changed-When: Sat Oct 15 14:26:48 UTC 2011 Responsible-Changed-Why: I'm now working on major rewrite of CARP for FreeBSD 10, and I'd like to take all related PRs. http://www.freebsd.org/cgi/query-pr.cgi?pr=127050 ___ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
On 8/21/2011 1:47 AM, Ask Bjørn Hansen wrote: On Aug 19, 2011, at 1:30, Paul Herman wrote: --010305010708060807000808 Content-Type: application/gzip; name="carp_ip6_alias.patch.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="carp_ip6_alias.patch.gz" I wanted to try it, but gzip doesn't seem to like that file … (downloaded from http://www.freebsd.org/cgi/query-pr.cgi?pr=127050&cat= ) It's base64 encoded of course -- works for me when I pipe the text into openssl base64 -d | zcat (zipped to preserve white spacing) For those craving instant satisfaction, here it is in plain text. -Paul. --- sys/netinet/ip_carp.c.orig 2011-08-19 07:52:56.0 + +++ sys/netinet/ip_carp.c 2011-08-19 07:15:03.0 + @@ -1670,9 +1670,11 @@ struct carp_if *cif; struct in6_ifaddr *ia, *ia_if; struct ip6_moptions *im6o = &sc->sc_im6o; + struct in6_multi *in6m; struct in6_addr in6; int own, error; + error = 0; if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { @@ -1729,8 +1731,6 @@ } if (!sc->sc_naddrs6) { - struct in6_multi *in6m; - im6o->im6o_multicast_ifp = ifp; /* join CARP multicast address */ @@ -1745,24 +1745,24 @@ goto cleanup; im6o->im6o_membership[0] = in6m; im6o->im6o_num_memberships++; - - /* join solicited multicast address */ - bzero(&in6, sizeof(in6)); - in6.s6_addr16[0] = htons(0xff02); - in6.s6_addr32[1] = 0; - in6.s6_addr32[2] = htonl(1); - in6.s6_addr32[3] = sin6->sin6_addr.s6_addr32[3]; - in6.s6_addr8[12] = 0xff; - if (in6_setscope(&in6, ifp, NULL) != 0) - goto cleanup; - in6m = NULL; - error = in6_mc_join(ifp, &in6, NULL, &in6m, 0); - if (error) - goto cleanup; - im6o->im6o_membership[1] = in6m; - im6o->im6o_num_memberships++; } + /* join solicited multicast address */ + bzero(&in6, sizeof(in6)); + in6.s6_addr16[0] = htons(0xff02); + in6.s6_addr32[1] = 0; + in6.s6_addr32[2] = htonl(1); + in6.s6_addr32[3] = sin6->sin6_addr.s6_addr32[3]; + in6.s6_addr8[12] = 0xff; + if (in6_setscope(&in6, ifp, NULL) != 0) + goto cleanup; + in6m = NULL; + error = in6_mc_join(ifp, &in6, NULL, &in6m, 0); + if (error) + goto cleanup; + im6o->im6o_membership[1] = in6m; + im6o->im6o_num_memberships++; + if (!ifp->if_carp) { cif = malloc(sizeof(*cif), M_CARP, M_WAITOK|M_ZERO); ___ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
On Aug 19, 2011, at 1:30, Paul Herman wrote: > --010305010708060807000808 > Content-Type: application/gzip; > name="carp_ip6_alias.patch.gz" > Content-Transfer-Encoding: base64 > Content-Disposition: attachment; > filename="carp_ip6_alias.patch.gz" I wanted to try it, but gzip doesn't seem to like that file … (downloaded from http://www.freebsd.org/cgi/query-pr.cgi?pr=127050&cat= ) - ask
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
The following reply was made to PR kern/127050; it has been noted by GNATS. From: Paul Herman To: bug-follo...@freebsd.org Cc: Wouter de Jong , Jacek Zapala Subject: Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression] Date: Fri, 19 Aug 2011 10:13:46 +0200 This is a multi-part message in MIME format. --010305010708060807000808 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This one's been bothering me too, so I setup a test machine yesterday to figure out what's going on. I see two problems here. First of all, in6_ifinit() (called via in6_control() SIOCAIFADDR_IN6 -> in6_update_ifa()) only calls carp_ioctl() on the first IPv6 address. Whereas in the v4 case, carp_ioctl() does get called by in_ifinit() every time. Second of all, carp_set_addr6() (called via carp_ioctl()) only joins the CARP multicast group AND the solicitation group with the first address. The attached patch against 8-STABLE fixes these issues, alias IPs are now pingable. I have not tested actual carp functionality with a 2nd BACKUP carp. What this patch doesn't address is group membership removal when alias IPs are deleted (apparently also broken.) Try it out, if it works for you guys, maybe someone more familiar with in[6]_control() can chime in here and comment on a *real* way to fix this issue. :-) Cheers, -Paul. --010305010708060807000808 Content-Type: application/gzip; name="carp_ip6_alias.patch.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="carp_ip6_alias.patch.gz" H4sICDwXTk4CA2NhcnBfaXA2X2FsaWFzLnBhdGNoAJVVa0+jQBT9TH/F9UsDHbDQWvramhof CVlfsZpN1hiCCDobYAhD42Pd/753mNIHtlZJyuvee+7pOXcGwzCAv/JmEuQUf3aTJvauv8sy +qi0TMsyzJ5h9cHsDszeoG3umuUBRJxrhJA19dXS/qDT/lA6HoNhdffaehfI7Doe16AGCvWM feq53sNDBiNocMQcYsBQaAgqDT2fTZMcfozAgnodaJhieuhS5ueRBn9rpMirJL6/zxPz1zSA 0Qick2v38ODqUluLAooSZBkTDNTGahShUx0mzsXhxDk5ODq60kH1BVs316inDUWtoFDUz7AU nkYvKsegsSp5k6au72XpetU7rUHH3qb6AqJSbXUG5gbh7a6p91F4cbWsQnmF59nUz0FAuci/ 4dNwuHiNLuDbwpQG9XRxclcTUtuNWZpTlnCMxjZD7ercN/a574rHIVqzBBZPo5xiYmLHlTZF E+m6QtFB9pzoUKgp5oDg29IacygnBtV2zm3XmbjCD/fmfHJ5fOicOMdHal3MD3IogTXhiBy+ Vl/vieFrW7otJfg3h9uZEU9EDbdFkaFspG8UnuN/xDHBswz6Hs9RohR54lkyVZoN+MNoAmLy YJ4GokvAUbdmuTA6emuvWBnFTcFOUR5ZzsCPAi+ZpsNqzyC+DzL+RNNb8070nAm7nJNM46U8 ToigbixYcRZRn+bBw3pqmHn/FmRMrSO4Dpy+BSxU8V4Tg42dcPVzKbNlSxZPOY6Dar6Eodn6 kNRu3Vp30sYPgVZZHanWusK2iFe8XQlXa3q3VoEpuMiY2E6wkgc591kazP5VsbrPb05PNdjB bE2kVoSXwDGCibziuZzIYjR8V6gp9wkJKvLkfawj5ry/3CM2tFjrrbXw1tjmrRxo8lV7ySfu ki+YSzZ4Sz63lnzfWbLZWPJlX0lVc7LqKvm2qWTZ03Xw2xwlWwwl5e5UfpHEZj37xOB2jTix F0XMV2fmiT1c0+Gs+NDpIgvwOHN/HTjXFz/fz9zfx1cXSPw/VIIrJwgIAAA= --010305010708060807000808-- ___ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
The following reply was made to PR kern/127050; it has been noted by GNATS. From: Jacek Zapala To: bug-follo...@freebsd.org, maddo...@maddog2k.net Cc: Subject: Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression] Date: Mon, 07 Feb 2011 14:30:21 +0100 Bug is still present in 8.0. I have found that system joins multicast group only for the first address. For example: for address :::x::110:166 it joins ff02:1::1:ff10:166 as shown by netstat -ia (where it listens for example for neighbour solicitation messages), but for the second address assigned to the same carp4 interface it does not join another group. It works if I chose the second address with the same last 3 bytes as the first address - because it falls to the same multicast group. Regards, Jacek ___ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
The following reply was made to PR kern/127050; it has been noted by GNATS. From: =?ISO-8859-1?Q?Angelo_H=F6ngens?= To: bug-follo...@freebsd.org, maddo...@maddog2k.net Cc: Subject: Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression] Date: Sat, 11 Jul 2009 12:06:30 +0200 A few months ago I could not ping any virtual ipv6 addresses. However, I'm running 7.2 now, and decided to pick up this issue. Something seems to have changed, and I can ping at least the first ipv6 address of a carp interface (just not the others) Some more info: I have four reverse cache machines (simple Dell R300's), running Squid. The four machines are balanced by round robin DNS. The DNS publishes 4 virtual carp addresses, and each node has 4 carp interfaces, but is always the master over its own one. This way, up to three nodes can fail, and the other takes over. Works like a charm, but of course I want to enable ipv6 over the same infrastructure. I've configured ipv6 aliases on all interfaces, and rebooted all nodes. Now the funny thing is, I can ping all ipv4 ip's (it's been running in production for months), I can ping6 the the dedicated ip's of all nodes (2001:81:82::206:113 for the node below), and I can ping to all the FIRST ipv6 addresses of the carp interfaces. Could very well be something I'm doing wrong, but I think it's a bug in carp. (Of course I could work around it by creating 16 carp interfaces on each machine, but I don't know what's the best solution.) So: I can ping6 to 2001:81:82::206:81 I can ping6 to 2001:81:82::206:82 I can ping6 to 2001:81:82::206:83 I can ping6 to 2001:81:82::206:84 I can NOT ping6 to 2001:81:82::206:85 I can NOT ping6 to 2001:81:82::206:86 I can NOT ping6 to 2001:81:82::206:87 I can NOT ping6 to 2001:81:82::206:88 I can NOT ping6 to 2001:81:82::206:121 I can NOT ping6 to 2001:81:82::206:122 I can NOT ping6 to 2001:81:82::206:123 I can NOT ping6 to 2001:81:82::206:124 Here you see pings on the cluster node. Pings to :81 get answered, but the node does not answer of neighbor solicitaions to :85: $ sudo tcpdump -ni nic0 icmp6 listening on nic0, link-type EN10MB (Ethernet), capture size 96 bytes 11:54:09.846489 IP6 2001:610:6a8:0:223:6cff:fe8d:6775 > 2001:81:82::206:81: ICMP6, echo request, seq 0, length 16 11:54:09.846524 IP6 2001:81:82::206:81 > 2001:610:6a8:0:223:6cff:fe8d:6775: ICMP6, echo reply, seq 0, length 16 11:54:10.845796 IP6 2001:610:6a8:0:223:6cff:fe8d:6775 > 2001:81:82::206:81: ICMP6, echo request, seq 1, length 16 11:54:10.845829 IP6 2001:81:82::206:81 > 2001:610:6a8:0:223:6cff:fe8d:6775: ICMP6, echo reply, seq 1, length 16 11:54:11.848522 IP6 2001:610:6a8:0:223:6cff:fe8d:6775 > 2001:81:82::206:81: ICMP6, echo request, seq 2, length 16 11:54:11.848539 IP6 2001:81:82::206:81 > 2001:610:6a8:0:223:6cff:fe8d:6775: ICMP6, echo reply, seq 2, length 16 11:54:13.949889 IP6 fe80::203:feff:fea0:b000 > ff02::1:ff06:85: ICMP6, neighbor solicitation, who has 2001:81:82::206:85, length 32 11:54:14.846703 IP6 2001:81:82::206:113 > 2001:81:82::1: ICMP6, neighbor solicitation, who has 2001:81:82::1, length 32 11:54:14.847034 IP6 2001:81:82::1 > 2001:81:82::206:113: ICMP6, neighbor advertisement, tgt is 2001:81:82::1, length 24 11:54:14.948194 IP6 fe80::203:feff:fea0:b000 > ff02::1:ff06:85: ICMP6, neighbor solicitation, who has 2001:81:82::206:85, length 32 11:54:15.948203 IP6 fe80::203:feff:fea0:b000 > ff02::1:ff06:85: ICMP6, neighbor solicitation, who has 2001:81:82::206:85, length 32 11:54:16.954932 IP6 fe80::203:feff:fea0:b000 > ff02::1:ff06:85: ICMP6, neighbor solicitation, who has 2001:81:82::206:85, length 32 11:54:17.952257 IP6 fe80::203:feff:fea0:b000 > ff02::1:ff06:85: ICMP6, neighbor solicitation, who has 2001:81:82::206:85, length 32 11:54:18.952558 IP6 fe80::203:feff:fea0:b000 > ff02::1:ff06:85: ICMP6, neighbor solicitation, who has 2001:81:82::206:85, length 32 I am running: $ uname -a FreeBSD balancer3.domain.local 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Tue Jun 16 12:08:00 CEST 2009 r...@balancer3.domain.local:/usr/obj/usr/src/sys/GENERIC-CARP amd64 IP's below are scrambled and are not the real addresses: -- /etc/rc.conf - ifconfig_bge0_name="nic0" ifconfig_bge1_name="nic1" ipv6_enable="YES" ifconfig_nic0="inet 81.82.206.113 netmask 255.255.255.192" ifconfig_nic0_alias0="inet6 2001:81:82::206:113 prefixlen 48" ifconfig_nic1="inet 10.82.20.113 netmask 255.255.255.0" defaultrouter="81.82.206.65" ipv6_defaultrouter="2001:81:82::1" cloned_interfaces="carp0 carp1 carp2 carp3" ifconfig_carp0="vhid 103 pass blabla 81.82.206.81/26 advskew 0" ifconfig_carp0_alias0="inet6 2001:81:82::206:81 prefixlen 48" ifconfig_car
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
The following reply was made to PR kern/127050; it has been noted by GNATS. From: Jeff Wheelhouse <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Cc: Subject: Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression] Date: Wed, 10 Sep 2008 15:02:00 -0400 I am experiencing the identical behavior on the following releases: 6.3-RELEASE-p4 6.4-PRERELEASE (as of Sep 6) I have reproduced the problem on both amd64 and i386, on both physical interfaces and VLAN interfaces. The problem is the same: - two machines, both configured correctly - both machines can ping6 each other - carp configures correctly, and announcements are observed on the relevant LAN via tcpdump - one machine goes to MASTER and one goes to BACKUP - an additional machine on the same LAN can ping6 both machines - none of the three machines can ping (or route through) the CARP IPv6 address However, I'm *assuming* these are the CARP announcements (since they are from the right IPv6 addresses and MASTER/BACKUP status seems to work: 11:54:51.818511 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 11:54:52.855924 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 11:54:53.893300 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 11:54:54.930386 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 11:54:55.967965 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 11:54:57.004987 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 11:54:58.042481 IP6 A:B:C:D::1 > ff02::12: ip-proto-112 36 I would be happy to help troubleshoot this problem in any way possible. Thanks, Jeff ___ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: kern/127050: [carp] ipv6 does not work on carp interfaces [regression]
Old Synopsis: ipv6 does not work on carp interfaces New Synopsis: [carp] ipv6 does not work on carp interfaces [regression] Responsible-Changed-From-To: freebsd-bugs->freebsd-net Responsible-Changed-By: linimon Responsible-Changed-When: Tue Sep 2 22:37:07 UTC 2008 Responsible-Changed-Why: Over to maintainer(s). http://www.freebsd.org/cgi/query-pr.cgi?pr=127050 ___ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"