Hello Noel,

You keep suggesting disabling route installation (and before also a random fwmark in netlink plugin), well, could you explain a little more detailed what would/should happen if I follow these instructions, and also what else I will have to do? I mean, without routes there will be no routing obviously :)

Never the less, thank you for your feedback on the routing table.


Den 2017-05-05 kl. 21:38, skrev Noel Kuntze:
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




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

Reply via email to