On Sat, Aug 27, 2011 at 10:20:38PM +0200, Axel Rau wrote:
> 
> Am 19.07.2011 um 21:45 schrieb Markus Friedl:
> 
> > All OpenBSD versions should have this problem as it's due to the way how
> > IPsec-flows are encoded in the routing table and I could not find and easy
> > fix.
> Does this explain, why I can't reach A from B and vice versa?

no, that's different. you probably have to setup
bypass flows in ipsec.conf.

however, i think this could help Pawel. you need to recompile
the kernel (and maybe some userland like netstat/route/ipsecctl).

-m


diff --git a/netinet/ip_ipsp.h b/netinet/ip_ipsp.h
index 0e9b8a1..86e3655 100644
--- a/netinet/ip_ipsp.h
+++ b/netinet/ip_ipsp.h
@@ -108,20 +108,20 @@ struct sockaddr_encap {
        union {
                struct {                                /* SENT_IP4 */
                        u_int8_t        Direction;
-                       struct in_addr  Src;
                        struct in_addr  Dst;
+                       struct in_addr  Src;
                        u_int8_t        Proto;
-                       u_int16_t       Sport;
                        u_int16_t       Dport;
+                       u_int16_t       Sport;
                } Sip4;
 
                struct {                                /* SENT_IP6 */
                        u_int8_t        Direction;
-                       struct in6_addr Src;
                        struct in6_addr Dst;
+                       struct in6_addr Src;
                        u_int8_t        Proto;
-                       u_int16_t       Sport;
                        u_int16_t       Dport;
+                       u_int16_t       Sport;
                } Sip6;
 
                struct ipsec_policy     *PolicyHead;    /* SENT_IPSP */

Reply via email to