[strongSwan] Charon doesn't set the routes

Diego Woitasen diego at woitasen.com.ar
Fri Sep 30 18:52:53 CEST 2011


On Fri, Sep 30, 2011 at 8:12 AM, Diego Woitasen <diego at woitasen.com.ar> wrote:
> Hi,
>  I have the configure below. I don't know why Charon doesn't set the
> routes after SA establishment. It's a net-to-net tunnel and works
> perfectly for hosts behind the gateway but if I want to connect from
> one of the gateways to a host behind the peer I have to configure the
> route with "src" manually. In the IRC someone told me that Charon set
> the "src" in the route if it detects that one of the
> [left|right]subnet matches the IP if one of the interfaces.
>
> ipsec.conf:
> config setup
>        crlcheckinterval=30
>        cachecrls=yes
>        strictcrlpolicy=no
>        plutostart=no
>        hidetos=no
>        charondebug="knl 1"
>
> conn %default
>        ikelifetime=8h
>        lifetime=8h
>        rekeymargin=10m
>        keyingtries=3
>        keyexchange=ikev2
>        mobike=yes
>        dpddelay=5
>        dpdaction=clear
>        authby=rsasig
>        auto=add
>        ike=aes128-sha1-modp2048!
>        esp=aes128-sha1-modp2048!
>        leftsubnet=10.0.0.0/8
>        right=%defaultroute
>        rightid=@nodo668.foo.com
>        rightcert=nodo668-cert.pem
>        rightsubnet=10.12.160.0/24
>        compress=yes
>
> conn LabMPLS-drago
>        left=172.16.1.129
>        leftid=@concentrador-drago.foo.com
>
> conn Lab2MPLS-vera
>        left=172.19.1.130
>        leftid=@concentrador-vera.foo.com
>        right=172.19.1.1
>        rightsubnet=10.22.160.0/24
>
> conn LabMPLS-drago-voip
>        left=172.16.1.129
>        leftid=@concentrador-drago.foo.com
>        leftsubnet=10.87.0.0/16
>        rightsubnet=10.12.160.168/29
>        esp=null-sha1-modp2048!
>        compress=no
>
> conn Lab2MPLS-vera-voip
>        left=172.19.1.130
>        leftid=@concentrador-vera.foo.com
>        leftsubnet=10.87.0.0/16
>        right=172.19.1.1
>        rightsubnet=10.22.160.168/29
>        esp=null-sha1-modp2048!
>        compress=no
>
> strongswan.conf:
>
> charon {
>
>        # number of worker threads in charon
>        threads = 16
>
>        # send strongswan vendor ID?
>        # send_vendor_id = yes
>
>        retransmit_timeout = 1
>        retransmit_base = 1.8
>        retransmit_tries = 4
>        install_routes = yes   #I know that yes is the default, but I tried this anyway
>
>        plugins {
>
>                sql {
>                        # loglevel to log into sql database
>                        loglevel = -1
>
>                        # URI to the database
>                        # database = sqlite:///path/to/file.db
>                        # database = mysql://user:password@localhost/database
>                }
>        }
>
>        # ...
> }
>
> pluto {
>
> }
>
> libstrongswan {
>
>        #  set to no, the DH exponent size is optimized
>        #  dh_exponent_ansi_x9_42 = no
> }
>
> ip addr show:
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>    inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UP qlen 1000
>    link/ether 00:16:3e:9e:5f:51 brd ff:ff:ff:ff:ff:ff
>    inet 10.12.160.254/24 brd 10.12.160.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UP qlen 1000
>    link/ether 00:16:3e:9e:5f:52 brd ff:ff:ff:ff:ff:ff
>    inet 172.16.1.1/25 brd 172.16.1.127 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UP qlen 1000
>    link/ether 00:16:3e:9e:6f:52 brd ff:ff:ff:ff:ff:ff
>    inet 172.19.1.1/25 brd 172.19.1.127 scope global eth2
> 5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
>    link/ether 00:16:3e:9e:7f:52 brd ff:ff:ff:ff:ff:f
>
> ip route show:
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>    inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UP qlen 1000
>    link/ether 00:16:3e:9e:5f:51 brd ff:ff:ff:ff:ff:ff
>    inet 10.12.160.254/24 brd 10.12.160.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UP qlen 1000
>    link/ether 00:16:3e:9e:5f:52 brd ff:ff:ff:ff:ff:ff
>    inet 172.16.1.1/25 brd 172.16.1.127 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UP qlen 1000
>    link/ether 00:16:3e:9e:6f:52 brd ff:ff:ff:ff:ff:ff
>    inet 172.19.1.1/25 brd 172.19.1.127 scope global eth2
> 5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
>    link/ether 00:16:3e:9e:7f:52 brd ff:ff:ff:ff:ff:f
>
> ip route show table 220:
> [empty]
>
>
>
> Regards,
>  Diego
> --
> Diego Woitasen
>

Having a look at the code I discovered that Charon sets
mode=MODE_TRANSPORT is IP_COMP is used. Why? It doesn't have any sense
for me.

And if there is a good reason, Charon should consider this situation
to set the routers anyway.

Shall I report a bug?

Regards,
 Diego

-- 
Diego Woitasen




More information about the Users mailing list