Hello Dusan,

On 05.05.2017 08:55, Dusan Ilic wrote:
> Okey, so I have tried different things now and I think that Charon source 
> routing seem to work better (atleast it looks like if after a couple of 
> reboots of the gateway). Im not source what did it, because I have both added 
> an Iptable mangling rule for UDP port 500 (IKE) marrking out the WAN 
> interface I want to use for IPsec, and changed settings so that Charon 
> ignores all but one routing table and also only listens to this interface 
> (and LAN), not the other WAN-interfaces. I have tried to force it in every 
> possible way to only do it's route lookup/next hop in ONE table for the right 
> WAN-interface.

You could try to disable the installation of routes in strongswan.conf 
(charon.install_routes = no).

> 
> However, the more I try the more I seem to understand that Strongswan seems 
> not to be good at handling a bit more advanced routing setups. My new issue 
> is that my other LAN (have two local subnets/VLANs) is also routed out the 
> 0.0.0.0 ipsec connection now, even though it isn't part of the TS-selectors. 
> My main LAN is on br0 and my second LAN on br1. I have even tried creating a 
> separate passthrough for the second LAN, but Charon oddly creates the 
> passthrough route out on the WAN IP-sec interface (instead of br1).

Weird. To be honest, if you make charon not install any routes, just the 
policies are added and traffic isn't routed differently.

> It looks like the biggest problem now is the 0.0.0.0 tunnel, by default a 
> default route is added to table 220. If I change charon routing table to main 
> table, Charon adds two new routes (I think cover the whole Internet) and 
> leaves the default main route (multipath netxhop route). However, because the 
> second LAN isn't a part of the 0.0.0.0 connection TS-selector, it won't be 
> allowed out this default route and tunnel (and that's how I want it). I would 
> like the second LAN to use the ordinary default routes to reach the internet, 
> and I'm really lost here how to handle Strongswan with multiple default 
> routes and/or routing tables with policy routing.

See above.

> 
> I know you said that Strongswan isn't adapted to work with multipath routes 
> and that sort of routing (loadbalancing), however, it seems that it has 
> issues with systems with several routing tables too. Do you have any 
> recommendations how I should go on from here, or is it just that simple that 
> Strongswan isn't going to be working reliably in an advanced routing setup?

See above.

> 
> I'm pasting all of my gateways routing and policy routing setup below, if 
> that is of any help.
> 
> # ip route show
> 90.225.194.1 dev vlan845  scope link
> 85.24.240.1 dev vlan847  scope link
> 85.24.244.1 dev vlan846  scope link
> 10.248.0.x dev ppp1  scope link
> 10.1.1.0/26 dev br0  proto kernel  scope link  src 10.1.1.1
> 10.1.2.0/26 dev br1  proto kernel  scope link  src 10.1.2.1
> 90.225.194.0/24 dev vlan845  proto kernel  scope link  src 90.225.194.x
> 85.24.244.0/24 dev vlan846  proto kernel  scope link  src 85.24.244.x
> 85.24.240.0/24 dev vlan847  proto kernel  scope link  src 85.24.240.x
> 127.0.0.0/8 dev lo  scope link
> default
>         nexthop via 90.225.194.1  dev vlan845 weight 1
>         nexthop via 10.248.0.21  dev ppp1 weight 256
>         nexthop via 85.24.240.1  dev vlan847 weight 1
> default via 85.24.244.1 dev vlan846  metric 1

Besides from the superfluous loopback route, it looks fine. You should probably 
set a src hint on the route to ppp1.

> # ip rule
> 0:      from all lookup local
> 101:    from 90.225.194.x lookup WAN1
> 102:    from 10.248.0.x lookup WAN2
> 103:    from 85.24.240.x lookup WAN3
> 121:    from all fwmark 0x100/0xf00 lookup WAN1
> 122:    from all fwmark 0x200/0xf00 lookup WAN2
> 123:    from all fwmark 0x300/0xf00 lookup WAN3
> 124:    from all fwmark 0x400/0xf00 lookup WAN4
> 32766:  from all lookup main
> 32767:  from all lookup default
> 
> Strongswan isn't running at the moment, that's way route table 220 is missing 
> above.
> 
> 
> Den 2017-05-04 kl. 14:52, skrev Dusan Ilic:
>> Okey, I will try some things out and see if it gets better. If not I will 
>> return with some logs :)
>> I'm just thinking out loud here regarding Charon source route selection, 
>> because you proposed leaving out the "left"-parameter (defaulting to %any I 
>> think) and my router is multihomed, what about if I mangle the output 
>> packets on UDP port 500 through the right WAN interface routing table? Will 
>> that force charon traffic out the right interface too?
>> Or maybe if I exlude all routing tables present on the gateway (except the 
>> one I want) in strongswan.conf, then that shoud force Charon to do source 
>> route lookups in this table only?
>>
>> I have made some completely different observations, I tried running 
>> Strongswan with libipsec instead of kernel modules and noticed two things.
>>
>> 1. The shunt policy doesn't work anymore, the route for local LAN gets 
>> created with dev ipsec0 (instead of br0). Is this a known bug? I had to add 
>> a manual route to table 220.
>>
>> 2. It's easier to route, maintain and so on because all traffic goes in/out 
>> on a dedicated interface (ipsec0), so no need for IP-tables policy matching. 
>> However, it's noticeable slower (througput) and when transferring traffic my 
>> routers almost hits 100% cpu load. Is this normal?
>>
>> With kernel modules I can reach double the througput (20 vs 50Mbps), however 
>> then the CPU is only around 50%. What do you think is the bottle neck here 
>> for achieving higher throughput? The remote endpoint? With Android 
>> Strongswan client it's even slower than that (tested on WiFi).
>> Both sides of the WAN-connection in this case have 100Mbps, so that's ruled 
>> out.
>>
>>
>> Den 2017-05-03 kl. 16:23, skrev Noel Kuntze:
>>>
>>> On 03.05.2017 13:51, Dusan Ilic wrote:
>>>> By the way, it seems the order of shunt connections do matter.
>>> They don't. XFRM doesn't care about what order any policies are inserted, 
>>> only the TS and the priority.
>>>
>>>> If I put it at the end after all other connections the network gets 
>>>> completely cut off...looks like I have to put it directly after the 
>>>> 0.0.0.0 <tel:0.0.0.0> connection.
>>> Sounds like you have a race condition between charon and the software that 
>>> gets your network connection(s) up. Make charon start after that software 
>>> is done.
>>> I can't tell for certain though, because you don't share the logs.
>>>
>>>> ---- Noel Kuntze skrev ----
>>>>
>>>>
>>>>
>>>> On 02.05.2017 17:41, Dusan Ilic wrote:
>>>>> I see, thank you.
>>>>>
>>>>> Well, I seem to have random issues now with my new configuration.
>>>>>
>>>>> After restartin Strongswan sometiems it works, sometimes it don't Very 
>>>>> unreliable.
>>>>> Sometimes it connects with right source interface, sometimes sending 
>>>>> packet: from 0.0.0.0[500] to 94.x.x.x[500] (1316 bytes) and this won't 
>>>>> work obviously. Why 0.0.0.0?
>>>>> When it connects from the right public WAN IP, sometimes it connects, 
>>>>> sometimes just retransmittings a bunch of packets. Never had these 
>>>>> problemse before, and I'm confused what's started causing them now.
>>>>>
>>>> Read your logs and compare them.
>>>>>
>>>>> *Regarding shunt connections, does it matter in which order they are put 
>>>>> in ipsec.conf? Like at the top, or the bottom and so on?*
>>>>>
>>>> No.
>>>> *
>>>> *
>>>>>
>>>>> Den 2017-05-02 kl. 09:41, skrev Noel Kuntze:
>>>>>> Yes, that's the reason why that happens. No, you need to start using 
>>>>>> another subnet.
>>>>>>
>>>>>> On 02.05.2017 02:02, Dusan Ilic wrote:
>>>>>>> I seem to have found the problem, it was on my local endpoint. The 
>>>>>>> gateway have default IP-table rules in prerouting table dropping 
>>>>>>> traffic entering any WAN-interface destined to a LAN-subnet, which I 
>>>>>>> understand is normal as long as their isn't any IPsec involved :) Below 
>>>>>>> exlude rule solves it.
>>>>>>>
>>>>>>> iptables -t mangle -I PREROUTING -d 10.1.1.0/26 -i $(nvram get 
>>>>>>> wan3_ifname) -m policy --dir in --pol ipsec --proto esp -j ACCEPT
>>>>>>>
>>>>>>>
>>>>>>> Now routing everything over IP-sec tunnel works great, but instead a 
>>>>>>> new issue have risen. My VPN remote access users cannot reach the 
>>>>>>> internet anymore (or the local subnet for that matter) when the gateway 
>>>>>>> are routing all traffic over another IPsec-tunnel, and from the LAN I 
>>>>>>> cannot ping the VPN-client (Android Strongswan) either. I'm wildly 
>>>>>>> guessing this is because my VPN-clients are getting IP's from the local 
>>>>>>> subnet (rightsourceip=%dhcp), the same subnet that I have to create a 
>>>>>>> passthrough connection for. Is this solvable in an easy way, or am I 
>>>>>>> forced put my VPN-clients on a separate subnet?
>>>>>>>
>>>>>>> Den 2017-05-01 kl. 14:57, skrev Noel Kuntze:
>>>>>>>> I can't  help you further easily. You need to check what happens to 
>>>>>>>> the packets and what actually needs to happen.
>>>>>>>>
>>>>>>>> On 30.04.2017 23:25, Dusan Ilic wrote:
>>>>>>>>> I have added following on local router
>>>>>>>>>
>>>>>>>>> iptables -t nat -I POSTROUTING -s 10.1.1.0/26 -o vlan847 -m policy 
>>>>>>>>> --dir out --pol ipsec --proto esp -j ACCEPT
>>>>>>>>> (before it was iptables -t nat -I POSTROUTING -s 10.1.1.0/26 -d 
>>>>>>>>> 192.168.1.0/24 -o vlan847 -m policy --dir out --pol ipsec --proto esp 
>>>>>>>>> -j ACCEPT)
>>>>>>>>>
>>>>>>>>> And on remote router
>>>>>>>>>
>>>>>>>>> iptables -I FORWARD -s 10.1.1.0/26 -j ACCEPT
>>>>>>>>> iptables -t nat -I POSTROUTING -s 10.1.1.0/26 -j MASQUERADE
>>>>>>>>>
>>>>>>>>> And now when the tunnel is up, internet doesnt work at all (all pings 
>>>>>>>>> time out), however I can still reach the remote subnet 192.168.1.0. 
>>>>>>>>> What is the best way to troubleshoot, if the error is on the local 
>>>>>>>>> gateway or on the remote?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Den 2017-04-30 kl. 20:39, skrev 
>>>>>>>>> [email protected]:
>>>>>>>>>> Fix your NAT rules.
>>>>>>>>>>
>>>>>>>>>> Am 30. April 2017 12:28:48 MESZ schrieb Dusan Ilic <[email protected]>:
>>>>>>>>>>
>>>>>>>>>>       Okey, so I found info about adding a "passthrough" connection 
>>>>>>>>>> for my
>>>>>>>>>>       local LAN. I have done this now and when i start the 
>>>>>>>>>> connection the
>>>>>>>>>>       network connection isn't cut off, however, it seems like my 
>>>>>>>>>> internet
>>>>>>>>>>       traffic i still using my local gateway (browsed to a check my 
>>>>>>>>>> ip-page).
>>>>>>>>>>       I can however still ping the remote network.
>>>>>>>>>>
>>>>>>>>>>       Here is my tabel 220
>>>>>>>>>>
>>>>>>>>>>       # ip route show table 220
>>>>>>>>>>       10.1.1.0/26 <http://10.1.1.0/26> dev br0  proto static  src 
>>>>>>>>>> 10.1.1.1 <http://10.1.1.1> # LAN passthrough?
>>>>>>>>>>       default via 85.24.x.x dev vlan847  proto static  src 10.1.1.1 
>>>>>>>>>> <http://10.1.1.1>
>>>>>>>>>>
>>>>>>>>>>       So instead of a route to 192.168.1.0/24 
>>>>>>>>>> <http://192.168.1.0/24> a default route is added, but it
>>>>>>>>>>       looks like it doesn't go through the tunnel... traffic to 
>>>>>>>>>> 192.168.1.0/24 <http://192.168.1.0/24>
>>>>>>>>>>       do get tunneled still though.
>>>>>>>>>>
>>>>>>>>>>       Den 2017-04-30 kl. 11:59, skrev Dusan Ilic:
>>>>>>>>>>
>>>>>>>>>>           Hello again, It worked with the hack! Thank you! Last 
>>>>>>>>>> question (hopefully! :P)), if I would like to use the remote 
>>>>>>>>>> endpoint to route *all* traffic over the vpn, is below the correct 
>>>>>>>>>> way? I have changed rightsubnet locally to 0.0.0.0/0 and leftsubnet 
>>>>>>>>>> remotely to 0.0.0.0/0, I have also added NAT on the remote router 
>>>>>>>>>> for the local subnet on the local endpoint, and finally I have added 
>>>>>>>>>> the local subnet to table 220 on the local router. I have also 
>>>>>>>>>> replaced the Iptable forward rule on local endpoint with 0.0.0.0/0 
>>>>>>>>>> instead of only the remote subnet. However, when I up the connection 
>>>>>>>>>> on the local router in a couple of seconds my SSH connection stops 
>>>>>>>>>> responding, and I cannot reach the local gateway or internet any 
>>>>>>>>>> longer. I have to reboot the local router to get access again. Is 
>>>>>>>>>> this familiar to you? What could be happening here? Den 2017-04-29 
>>>>>>>>>> kl. 18:44, skrev Noel Kuntze:
>>>>>>>>>>
>>>>>>>>>>               Hello Dusan, On 29.04.2017 18:34, Dusan Ilic wrote:
>>>>>>>>>>
>>>>>>>>>>                   It works! I found a hidden setting under Phase 1 
>>>>>>>>>> in Fortigate where i could add the local ID. Added it's dynamic dns 
>>>>>>>>>> hostname and now it connects.
>>>>>>>>>>
>>>>>>>>>>               Great!
>>>>>>>>>>
>>>>>>>>>>                   However, I still have issues with another endpoint 
>>>>>>>>>> I'm testing. My local endpoint have Strongswan 5.5.1 and the remote 
>>>>>>>>>> endpoint have 4.5.2. Would that present any issues or 
>>>>>>>>>> incompatibilites? Unfortunately it's not possible to upgrade the 
>>>>>>>>>> remote endpoint (Strongswan).
>>>>>>>>>>
>>>>>>>>>>               Pluto resolves IDs that are FQDNs. I think there was a 
>>>>>>>>>> hack, where you add the at-character in front of the FQDN in the ID 
>>>>>>>>>> settings and that stops it from doing that. Might apply to charon, 
>>>>>>>>>> too in such a low version number. Try the hack.
>>>>>>>>>>
>>>>>>>>>>                   I tried below, per your suggestion 
>>>>>>>>>> left=%local.example leftid=local.example right=%remote.example 
>>>>>>>>>> rightid=remote.example remote.example : PSK "PSKGOESHERE" Log when 
>>>>>>>>>> local sides initiates connection: parsed IKE_AUTH response 1 [ 
>>>>>>>>>> N(AUTH_FAILED) ] received AUTHENTICATION_FAILED notify error
>>>>>>>>>>
>>>>>>>>>>               You need to read the remote logs when the remote side 
>>>>>>>>>> sends you an error message.
>>>>>>>>>>
>>>>>>>>>>                   Log when remote side initiates connection: Apr 29 
>>>>>>>>>> 16:32:20 R6250 daemon.info <http://daemon.info> charon: 10[CFG] 
>>>>>>>>>> looking for peer configs matching 
>>>>>>>>>> 85.24.x.x[85.24.x.x]...94.254.x.x[94.254.x.x] Apr 29 16:32:20 R6250 
>>>>>>>>>> daemon.info <http://daemon.info> charon: 10[CFG] no matching peer 
>>>>>>>>>> config found It looks like the same issue, the remote endpoint 
>>>>>>>>>> doesnt send the configured ID?
>>>>>>>>>>
>>>>>>>>>>               Yes.
>>>>>>>>>>
>>>>>>>>>>                   And another question, when using dynamic hostnames 
>>>>>>>>>> instead of IP's as "right", how often does Strongswan make a new 
>>>>>>>>>> DNS-lookup? How does Strongswan handle the situation where let's say 
>>>>>>>>>> the remote endpoint suddenly receives a new IP? Or if the local side 
>>>>>>>>>> receives a new IP during established connection?
>>>>>>>>>>
>>>>>>>>>>               strongSwan does a DNS lookup whenever it tries to 
>>>>>>>>>> select a configuration. Well, depends on if mobike is used or no and 
>>>>>>>>>> if the peer who's IP changed can't send any traffic anymore. Mobike 
>>>>>>>>>> and connectivity: IKE_SA and CHILD_SAs are migrated No mobike and 
>>>>>>>>>> connectivity: Don't know. Maybe a new IKE_SA is negotiated, because 
>>>>>>>>>> the one peer knows the local address has vanished (and the CHILD_SAs 
>>>>>>>>>> migrated?). No mobike and no connectivity: Timeout, if DPD is used. 
>>>>>>>>>> Otherwise the IKE_SA and CHILD_SAs remain until the remote peer 
>>>>>>>>>> connects again. Mobike and no connectivity: Timeout, if DPD is used. 
>>>>>>>>>> Otherwise the IKE_SA and CHILD_SAs remain until the remote peer 
>>>>>>>>>> connects again. Kind regards, Noel
>>>>>>>>>>
>>>>>>>>>>
>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>
>>>>>>>>>>           Users mailing list [email protected] 
>>>>>>>>>> https://lists.strongswan.org/mailman/listinfo/users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Sent from mobile
>>>>
>>>
>>
>>
> 
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Users mailing list
[email protected]
https://lists.strongswan.org/mailman/listinfo/users

Reply via email to