Date: Tue, 30 Jul 2024 10:06:17 -0400 From: Karl Denninger <karl@denninger.net> To: freebsd-net@freebsd.org Subject: Re: DHCPv6 IA_PD - how-to Message-ID: <fb6a9b28-7d52-42d8-a9e3-cd693b746bd2@denninger.net> In-Reply-To: <20240730.091027.1008656135460861216.moto@kawasaki3.org> References: <050440F8-B3D8-4B2C-85BD-D5C09C303037@distal.com> <20240727.122108.862717899466090274.moto@kawasaki3.org> <190fdf3e353.11351bb5e292296.3216692081725884177@marples.name> <20240730.091027.1008656135460861216.moto@kawasaki3.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------zwB9lScjVzp2Sh9VSvln5Ezo Content-Type: multipart/mixed; boundary="------------KIy3x40ZUjXgPmECqTymWZO3"; protected-headers="v1" From: Karl Denninger <karl@denninger.net> To: freebsd-net@freebsd.org Message-ID: <fb6a9b28-7d52-42d8-a9e3-cd693b746bd2@denninger.net> Subject: Re: DHCPv6 IA_PD - how-to References: <050440F8-B3D8-4B2C-85BD-D5C09C303037@distal.com> <20240727.122108.862717899466090274.moto@kawasaki3.org> <190fdf3e353.11351bb5e292296.3216692081725884177@marples.name> <20240730.091027.1008656135460861216.moto@kawasaki3.org> In-Reply-To: <20240730.091027.1008656135460861216.moto@kawasaki3.org> --------------KIy3x40ZUjXgPmECqTymWZO3 Content-Type: multipart/alternative; boundary="------------A2GWymyMuBN4nH3z2ZfjIaOM" --------------A2GWymyMuBN4nH3z2ZfjIaOM Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T2sgc28gSSBoYXZlIGEgIm5ldyBwcm9ibGVtIiBhdHRlbXB0aW5nIHRvIHVzZSBkaGNwNmMg Zm9yIEJPVEggSVB2NCBhbmQgDQpJUHY2Lg0KDQpUaGlzIGlzIHRoZSBzYWxpZW50IHBhcnQg b2YgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSAodGhlIHJlc3QgaXMgDQpiYXNpY2FsbHkgZGVm YXVsdHMpOg0KDQojIEdlbmVyYXRlIFNMQUFDIGFkZHJlc3MgdXNpbmcgdGhlIEhhcmR3YXJl IEFkZHJlc3Mgb2YgdGhlIGludGVyZmFjZQ0KI3NsYWFjIGh3YWRkcg0KIyBPUiBnZW5lcmF0 ZSBTdGFibGUgUHJpdmF0ZSBJUHY2IEFkZHJlc3NlcyBiYXNlZCBmcm9tIHRoZSBEVUlEDQoj c2xhYWMgcHJpdmF0ZQ0KDQphbGxvd2ludGVyZmFjZXMgaWdiMA0KDQojaXB2Nm9ubHkNCiNp cHY0b25seQ0KDQojDQojIERvIG5vdCBydW4gdGhlc2UgaG9va3M7IERPIHJ1biB0aGUgRERO UyBvbmUgaW4gZXhpdC1ob29rcw0KIw0Kbm9ob29rIHJlc29sdi5jb25mIGhvc3RuYW1lIG50 cC5jb25mDQoNCmludGVyZmFjZSBpZ2IwDQogwqDCoMKgwqDCoMKgwqAgaWFfbmEgMQ0KIMKg wqDCoMKgwqDCoMKgIGlhX3BkIDEvOjovNTYgaWdiMS8wLzY0IGlnYjEuNC8xLzY0DQoNCklm IEkgZG8gImlwdjZvbmx5IiBhbmQgcnVuIGRoY3BjZCAtVCB0aGVuIEkgZG8gZ2V0IGEgcHJl Zml4Og0KDQpyb290QElwR3c6L3Vzci9sb2NhbC9ldGMgIyBkaGNwY2QgLVQNCmRoY3BjZC0x MC4wLjggc3RhcnRpbmcNCkRVSUQgMDA6MDE6MDA6MDE6MmU6M2E6NzY6ZjE6MDA6MGQ6Yjk6 NDY6NzE6ODgNCmlnYjA6IElBSUQgYjk6NDY6NzE6ODgNCmlnYjA6IElBIHR5cGUgMyBJQUlE IDAwOjAwOjAwOjAxDQppZ2IwOiBJQSB0eXBlIDI1IElBSUQgMDA6MDA6MDA6MDENCmlnYjA6 IHNvbGljaXRpbmcgYSBESENQdjYgbGVhc2UNCmlnYjE6IGFjdGl2YXRpbmcgZm9yIGRlbGVn YXRpb24NCmlnYjE6IElBSUQgYjk6NDY6NzE6ODkNCmlnYjEuNDogYWN0aXZhdGluZyBmb3Ig ZGVsZWdhdGlvbg0KaWdiMS40OiBJQUlEIGZmOjAwOjAwOjA0DQppZ2IwOiBzb2xpY2l0aW5n IGFuIElQdjYgcm91dGVyDQppZ2IwOiBBRFYgMjYwMDo2YzVkOjcwMDk6NjAwOmM1ZTA6MjVl ZDpiMzY0OjM2YzIvMTI4IGZyb20gDQpmZTgwOjoyMDE6NWNmZjpmZTcwOjdjNDYNCmlnYjA6 IFJFUExZNiByZWNlaXZlZCBmcm9tIGZlODA6OjIwMTo1Y2ZmOmZlNzA6N2M0Ng0KaW50ZXJm YWNlPWlnYjANCnBpZD0zMzk1DQpwcm90b2NvbD1kaGNwNg0KcmVhc29uPVRFU1QNCnNraXBf aG9va3M9J3Jlc29sdi5jb25mIGhvc3RuYW1lIG50cC5jb25mJw0KaWZjYXJyaWVyPXVwDQpp ZmZsYWdzPTM0ODgzDQppZm1ldHJpYz0xMDAxDQppZm10dT0xNTAwDQppZndpcmVsZXNzPTAN Cm5ld19kaGNwNl9jbGllbnRfaWQ9MDAwMTAwMDEyZTNhNzZmMTAwMGRiOTQ2NzE4OA0KbmV3 X2RoY3A2X2RvbWFpbl9zZWFyY2g9c2VhcmNoLmNoYXJ0ZXIubmV0DQpuZXdfZGhjcDZfaWFf bmExX2lhX2FkZHIxPTI2MDA6NmM1ZDo3MDA5OjYwMDpjNWUwOjI1ZWQ6YjM2NDozNmMyDQpu ZXdfZGhjcDZfaWFfbmExX2lhX2FkZHIxX3BsdGltZT0zMzM3DQpuZXdfZGhjcDZfaWFfbmEx X2lhX2FkZHIxX3ZsdGltZT0zMzM3DQpuZXdfZGhjcDZfaWFfbmExX2lhaWQ9MDAwMDAwMDEN Cm5ld19kaGNwNl9pYV9uYTFfdDE9MTUzNw0KbmV3X2RoY3A2X2lhX25hMV90Mj0yNjE3DQpu ZXdfZGhjcDZfaWFfcGQxX2lhaWQ9MDAwMDAwMDENCm5ld19kaGNwNl9pYV9wZDFfcHJlZml4 MT0yNjAwOjZjNWQ6NWQwMDo5ZDAwOjoNCm5ld19kaGNwNl9pYV9wZDFfcHJlZml4MV9sZW5n dGg9NTYNCm5ld19kaGNwNl9pYV9wZDFfcHJlZml4MV9wbHRpbWU9MzMzNw0KbmV3X2RoY3A2 X2lhX3BkMV9wcmVmaXgxX3ZsdGltZT0zMzM3DQpuZXdfZGhjcDZfaWFfcGQxX3QxPTE1MzcN Cm5ld19kaGNwNl9pYV9wZDFfdDI9MjYxNw0KbmV3X2RoY3A2X25hbWVfc2VydmVycz0nMjYw NzpmNDI4OmZmZmY6ZmZmZjo6MSAyNjA3OmY0Mjg6ZmZmZjpmZmZmOjoyJw0KbmV3X2RoY3A2 X3NlcnZlcl9pZD0wMDAxMDAwMTIyNjFiNzNkMDAxNDRmOWJjYzg0DQpkaGNwY2QgZXhpdGVk DQoNClRoaXMgbG9va3Mgb2suwqAgVGhhdCBwcmVmaXggaXMgZ29vZCBhbmQgSSBwcmVzdW1l IGlmIEkgbGV0IGl0IHNldCB0aGUgDQpvdGhlciBpbnRlcmZhY2VzIGl0IHdpbGwgYmUgb2su DQoNCkJ1dCBpZiBJIGRvIG5vdCBzYXkgImlwdjZvbmx5IiwgbGVhdmluZyBpdCB0aGF0IGNv bW1lbnRlZCBvdXQgc28gSSBjYW4gDQpnZXQgYm90aCwgSSBnZXQgb24gZGhjcGNkIC1UOg0K DQpyb290QElwR3c6L3Vzci9sb2NhbC9ldGMgIyBkaGNwY2QgLVQNCmRoY3BjZC0xMC4wLjgg c3RhcnRpbmcNCkRVSUQgMDA6MDE6MDA6MDE6MmU6M2E6NzY6ZjE6MDA6MGQ6Yjk6NDY6NzE6 ODgNCmlnYjA6IElBSUQgYjk6NDY6NzE6ODgNCmlnYjA6IElBIHR5cGUgMyBJQUlEIDAwOjAw OjAwOjAxDQppZ2IwOiBJQSB0eXBlIDI1IElBSUQgMDA6MDA6MDA6MDENCmlnYjA6IHNvbGlj aXRpbmcgYSBESENQdjYgbGVhc2UNCmlnYjE6IGFjdGl2YXRpbmcgZm9yIGRlbGVnYXRpb24N CmlnYjE6IElBSUQgYjk6NDY6NzE6ODkNCmlnYjEuNDogYWN0aXZhdGluZyBmb3IgZGVsZWdh dGlvbg0KaWdiMS40OiBJQUlEIGZmOjAwOjAwOjA0DQppZ2IwOiByZWJpbmRpbmcgbGVhc2Ug b2YgNzEuMTUuMjUzLjIwMw0KaWdiMDogbGVhc2VkIDcxLjE1LjI1My4yMDMgZm9yIDI4MTMg c2Vjb25kcw0KaW50ZXJmYWNlPWlnYjANCnBpZD0zMzU4DQpwcm90b2NvbD1kaGNwDQpyZWFz b249VEVTVA0Kc2tpcF9ob29rcz0ncmVzb2x2LmNvbmYgaG9zdG5hbWUgbnRwLmNvbmYnDQpp ZmNhcnJpZXI9dXANCmlmZmxhZ3M9MzQ4ODMNCmlmbWV0cmljPTEwMDENCmlmbXR1PTE1MDAN Cmlmd2lyZWxlc3M9MA0Kb2xkX2Jyb2FkY2FzdF9hZGRyZXNzPTI1NS4yNTUuMjU1LjI1NQ0K b2xkX2RoY3BfbGVhc2VfdGltZT0zNjAwDQpvbGRfZGhjcF9tZXNzYWdlX3R5cGU9NQ0Kb2xk X2RoY3BfcmViaW5kaW5nX3RpbWU9MzE1MA0Kb2xkX2RoY3BfcmVuZXdhbF90aW1lPTE4MDAN Cm9sZF9kaGNwX3NlcnZlcl9pZGVudGlmaWVyPTk2LjMzLjE5Mi4xDQpvbGRfZG9tYWluX25h bWVfc2VydmVycz0nNzEuMTAuMjE2LjEgNzEuMTAuMjE2LjInDQpvbGRfaW50ZXJmYWNlX210 dT0xNTAwDQpvbGRfaXBfYWRkcmVzcz03MS4xNS4yNTMuMjAzDQpvbGRfbmV0d29ya19udW1i ZXI9NzEuMTUuMjUyLjANCm9sZF9yb3V0ZXJzPTcxLjE1LjI1Mi4xDQpvbGRfc3VibmV0X2Np ZHI9MjINCm9sZF9zdWJuZXRfbWFzaz0yNTUuMjU1LjI1Mi4wDQpuZXdfYnJvYWRjYXN0X2Fk ZHJlc3M9MjU1LjI1NS4yNTUuMjU1DQpuZXdfZGhjcF9sZWFzZV90aW1lPTI4MTMNCm5ld19k aGNwX21lc3NhZ2VfdHlwZT01DQpuZXdfZGhjcF9yZWJpbmRpbmdfdGltZT0yMzYzDQpuZXdf ZGhjcF9yZW5ld2FsX3RpbWU9MTAxMw0KbmV3X2RoY3Bfc2VydmVyX2lkZW50aWZpZXI9OTYu MzMuMTkyLjENCm5ld19kb21haW5fbmFtZV9zZXJ2ZXJzPSc3MS4xMC4yMTYuMSA3MS4xMC4y MTYuMicNCm5ld19pbnRlcmZhY2VfbXR1PTE1MDANCm5ld19pcF9hZGRyZXNzPTcxLjE1LjI1 My4yMDMNCm5ld19uZXR3b3JrX251bWJlcj03MS4xNS4yNTIuMA0KbmV3X3JvdXRlcnM9NzEu MTUuMjUyLjENCm5ld19zdWJuZXRfY2lkcj0yMg0KbmV3X3N1Ym5ldF9tYXNrPTI1NS4yNTUu MjUyLjANCmRoY3BjZCBleGl0ZWQNCg0KQW5kIGlmIEkgYWN0dWFsbHkgYm9vdCB0aGUgbWFj aGluZSB0aGF0IHdheSAocmF0aGVyIHRoYW4gcnVuIGl0IGluIHRlc3QpIA0KSSBnZXQgb25s eSBJcFY0OyB0aGUgdjYgc29saWNpdGF0aW9uIG5ldmVyIGhhcHBlbnMuDQoNCk9uIDcvMjkv MjAyNCAyMDoxMCwgbW90byBrYXdhc2FraSB3cm90ZToNCj4gSGkgUm95LA0KPg0KPiBUaGFu ayB5b3UgdmVyeSBtdWNoIGZvciB0aGUgY29uZmlndXJhdGlvbiBleGFtcGxlIHdpdGggZGhj cGNkIQ0KPiBBbHNvIEkgZGlkbid0IGtub3cgZGVsYXllZCBhdXRoIGhhZCBiZWVuIG9ic29s ZXRlZCwgdGhhbmtzIGZvciBsZXR0aW5nDQo+IG1lIHRvIG5vdGljZS4NCj4gSSdsbCB0cnkg ZGhjcGNkIGluc3RlYWQgb2YgZGhjcDZjLg0KPg0KPiBCZXN0IFJlZ2FyZHMsDQo+DQotLSAN CkthcmwgRGVubmluZ2VyDQprYXJsQGRlbm5pbmdlci5uZXQNCi9UaGUgTWFya2V0IFRpY2tl ci8NCi9bUy9NSU1FIGVuY3J5cHRlZCBlbWFpbCBwcmVmZXJyZWRdLw0K --------------A2GWymyMuBN4nH3z2ZfjIaOM Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <!DOCTYPE html> <html> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF= -8"> </head> <body> <p>Ok so I have a "new problem" attempting to use dhcp6c for BOTH IPv4 and IPv6.</p> <p>This is the salient part of the configuration file (the rest is basically defaults):</p> <p># Generate SLAAC address using the Hardware Address of the interface<br> #slaac hwaddr<br> # OR generate Stable Private IPv6 Addresses based from the DUID<br>= #slaac private<br> <br> allowinterfaces igb0<br> <br> #ipv6only<br> #ipv4only<br> <br> #<br> # Do not run these hooks; DO run the DDNS one in exit-hooks<br> #<br> nohook resolv.conf hostname ntp.conf<br> <br> interface igb0<br> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ia_na 1<br> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ia_pd 1/::/56 igb1/0/64 = igb1.4/1/64<br> <br> If I do "ipv6only" and run dhcpcd -T then I do get a prefix:</p> <p>root@IpGw:/usr/local/etc # dhcpcd -T<br> dhcpcd-10.0.8 starting<br> DUID 00:01:00:01:2e:3a:76:f1:00:0d:b9:46:71:88<br> igb0: IAID b9:46:71:88<br> igb0: IA type 3 IAID 00:00:00:01<br> igb0: IA type 25 IAID 00:00:00:01<br> igb0: soliciting a DHCPv6 lease<br> igb1: activating for delegation<br> igb1: IAID b9:46:71:89<br> igb1.4: activating for delegation<br> igb1.4: IAID ff:00:00:04<br> igb0: soliciting an IPv6 router<br> igb0: ADV 2600:6c5d:7009:600:c5e0:25ed:b364:36c2/128 from fe80::201:5cff:fe70:7c46<br> igb0: REPLY6 received from fe80::201:5cff:fe70:7c46<br> interface=3Digb0<br> pid=3D3395<br> protocol=3Ddhcp6<br> reason=3DTEST<br> skip_hooks=3D'resolv.conf hostname ntp.conf'<br> ifcarrier=3Dup<br> ifflags=3D34883<br> ifmetric=3D1001<br> ifmtu=3D1500<br> ifwireless=3D0<br> new_dhcp6_client_id=3D000100012e3a76f1000db9467188<br> new_dhcp6_domain_search=3Dsearch.charter.net<br> new_dhcp6_ia_na1_ia_addr1=3D2600:6c5d:7009:600:c5e0:25ed:b364:36c2<= br> new_dhcp6_ia_na1_ia_addr1_pltime=3D3337<br> new_dhcp6_ia_na1_ia_addr1_vltime=3D3337<br> new_dhcp6_ia_na1_iaid=3D00000001<br> new_dhcp6_ia_na1_t1=3D1537<br> new_dhcp6_ia_na1_t2=3D2617<br> new_dhcp6_ia_pd1_iaid=3D00000001<br> new_dhcp6_ia_pd1_prefix1=3D2600:6c5d:5d00:9d00::<br> new_dhcp6_ia_pd1_prefix1_length=3D56<br> new_dhcp6_ia_pd1_prefix1_pltime=3D3337<br> new_dhcp6_ia_pd1_prefix1_vltime=3D3337<br> new_dhcp6_ia_pd1_t1=3D1537<br> new_dhcp6_ia_pd1_t2=3D2617<br> new_dhcp6_name_servers=3D'2607:f428:ffff:ffff::1 2607:f428:ffff:ffff::2'<br> new_dhcp6_server_id=3D000100012261b73d00144f9bcc84<br> dhcpcd exited<br> </p> <p>This looks ok.=C2=A0 That prefix is good and I presume if I let it= set the other interfaces it will be ok.<br> </p> <p>But if I do not say "ipv6only", leaving it that commented out so I can get both, I get on dhcpcd -T:</p> <p>root@IpGw:/usr/local/etc # dhcpcd -T<br> dhcpcd-10.0.8 starting<br> DUID 00:01:00:01:2e:3a:76:f1:00:0d:b9:46:71:88<br> igb0: IAID b9:46:71:88<br> igb0: IA type 3 IAID 00:00:00:01<br> igb0: IA type 25 IAID 00:00:00:01<br> igb0: soliciting a DHCPv6 lease<br> igb1: activating for delegation<br> igb1: IAID b9:46:71:89<br> igb1.4: activating for delegation<br> igb1.4: IAID ff:00:00:04<br> igb0: rebinding lease of 71.15.253.203<br> igb0: leased 71.15.253.203 for 2813 seconds<br> interface=3Digb0<br> pid=3D3358<br> protocol=3Ddhcp<br> reason=3DTEST<br> skip_hooks=3D'resolv.conf hostname ntp.conf'<br> ifcarrier=3Dup<br> ifflags=3D34883<br> ifmetric=3D1001<br> ifmtu=3D1500<br> ifwireless=3D0<br> old_broadcast_address=3D255.255.255.255<br> old_dhcp_lease_time=3D3600<br> old_dhcp_message_type=3D5<br> old_dhcp_rebinding_time=3D3150<br> old_dhcp_renewal_time=3D1800<br> old_dhcp_server_identifier=3D96.33.192.1<br> old_domain_name_servers=3D'71.10.216.1 71.10.216.2'<br> old_interface_mtu=3D1500<br> old_ip_address=3D71.15.253.203<br> old_network_number=3D71.15.252.0<br> old_routers=3D71.15.252.1<br> old_subnet_cidr=3D22<br> old_subnet_mask=3D255.255.252.0<br> new_broadcast_address=3D255.255.255.255<br> new_dhcp_lease_time=3D2813<br> new_dhcp_message_type=3D5<br> new_dhcp_rebinding_time=3D2363<br> new_dhcp_renewal_time=3D1013<br> new_dhcp_server_identifier=3D96.33.192.1<br> new_domain_name_servers=3D'71.10.216.1 71.10.216.2'<br> new_interface_mtu=3D1500<br> new_ip_address=3D71.15.253.203<br> new_network_number=3D71.15.252.0<br> new_routers=3D71.15.252.1<br> new_subnet_cidr=3D22<br> new_subnet_mask=3D255.255.252.0<br> dhcpcd exited<br> <br> </p> And if I actually boot the machine that way (rather than run it in test) I get only IpV4; the v6 solicitation never happens. <p></p> <div class=3D"moz-cite-prefix">On 7/29/2024 20:10, moto kawasaki wrote:<br> </div> <blockquote type=3D"cite" cite=3D"mid:20240730.091027.1008656135460861216.moto@kawasaki3.org"= > <pre class=3D"moz-quote-pre" wrap=3D""> Hi Roy, Thank you very much for the configuration example with dhcpcd! Also I didn't know delayed auth had been obsoleted, thanks for letting me to notice. I'll try dhcpcd instead of dhcp6c. Best Regards, </pre> </blockquote> <div class=3D"moz-signature">-- <br> Karl Denninger<br> <a href=3D"mailto:karl@denninger.net" class=3D"moz-txt-link-freetex= t">karl@denninger.net</a><br> <i>The Market Ticker</i><br> <font size=3D"-2"><i>[S/MIME encrypted email preferred]</i></font><= /div> </body> </html> --------------A2GWymyMuBN4nH3z2ZfjIaOM-- --------------KIy3x40ZUjXgPmECqTymWZO3-- --------------zwB9lScjVzp2Sh9VSvln5Ezo Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEvWWSxnGhSYSUSaCtby3AFeuPWXgFAmao81kFAwAAAAAACgkQby3AFeuPWXhb QhAAh2mvzO4/s0zGlpofM8+WTRgxfuFOkEV9jSXhK+PfI2tKXNsDu9f6XvDJegZ38CfuOBuisliP f7DGF2yIAEiUMFlTuJY5MT3dx6YNYQX89V6xTPwBnbQPyzAnIx2wdNmWJ1URv0/XthtBr0tzs4zJ HhAqGtCLWD+ZjMOMNgE2V1TBVLt+s64R0dUkFtVXg0asplAW84XyQ8I/7wbeQN3FS6T9w5BDcKcX /LThZQtXXF0vEEAZkqMD3EBM+mm2V/d9A4OVAbCeSg5nGbIMOHrae08GS2ymr+dKSVnEsiKdAQwU mmdX6WkfiNDle98XyjTqP20diqahN5DR8vAIg8SSFDEs+TSoydhHqilpWwK7rr7bRJzQi47lJ27P 5Emlzs9KaYLac0qHsOwUlzX7s9j+nn8nvMy45hc7+6hmkaLS73cY7CahPWsa2GPHJPKKkN703o9I WscXQpRdj1HeNIqNp8jFU40MDpPBlci/ommykR319AiRpWIZbBnQiVPN7dVE3a+A6gfuz3A6ZkF7 JEsCCnoIIYt2e4v5PjboT/4afkKZI0Eq4HmnrGxliefGJURA2AHvNHKsk8ORDlcWcaXeOZUhiJfH 18TiP2n+BDlrheJGCCUBkMrSD/212kj9GBQvp0QjIs+Ur6FWKmGgahEz9aH5qsbE54yQfZR47AnY 5cU= =rGrS -----END PGP SIGNATURE----- --------------zwB9lScjVzp2Sh9VSvln5Ezo--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fb6a9b28-7d52-42d8-a9e3-cd693b746bd2>