Hi,
I use shorewall-4.5.4 + lsm-0.143 and it does not seem to work as expected...
When all providers are up, everything seems fine.
When one goes down, lsm says "link <provider> down event"... and
it seems
ok but we then experience some problems such as a few unreachable sites, 
DNS problems...
If I remove the downed provider from all confs and restart, everything works
again.
Also, when the providers goes back up, lsm seems not to detect it when I use 
external IPs or the next hop.  He does if I use the LAN IPs but he
won''t
detect a failure past the box.
Could someone check my confs to see if certain parameters would prevent 
graceful deactivation of a provider...?
Maybe the accounting rules that use all 3 providers?
About lsm, do I need to manualy add routes for the checked WAN IPs to go 
through the respecting devices (as I read on the net) even though the 
devices are in the conf?
I am also not sure about the ttl parameter... Should it match the numbers 
of hops from the firewall?  By example, if the provider has 192.168.2.254 
for lan, a.b.c.d for wan et w.x.y.z for the next hop... if I do the lsm 
check on w.x.y.z, should I put a ttl=2? and 1 if I check a.b.c.d?
Thx,
JD
----------------------------------------------------------------------
/etc/shorewall/shorewall.conf
----------------------------------------------------------------------
STARTUP_ENABLED=Yes
VERBOSITY=1
BLACKLIST_LOGLEVELLOG_MARTIANS=Yes
LOG_VERBOSITY=2
LOGALLNEWLOGFILE=/var/log/messages
LOGFORMAT="Shorewall:%s:%s:"
LOGTAGONLY=No
LOGLIMITMACLIST_LOG_LEVEL=info
RELATED_LOG_LEVELSFILTER_LOG_LEVEL=info
SMURF_LOG_LEVEL=info
STARTUP_LOG=/var/log/shorewall-init.log
TCP_FLAGS_LOG_LEVEL=info
CONFIG_PATH="${CONFDIR}/shorewall:${SHAREDIR}/shorewall"
GEOIPDIR=/usr/share/xt_geoip/LE
IPTABLESIPIPSETLOCKFILEMODULESDIRPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin"
PERL=/usr/bin/perl
RESTOREFILE=restore
SHOREWALL_SHELL=/bin/sh
SUBSYSLOCK=/var/lock/subsys/shorewall
TCACCEPT_DEFAULT=none
DROP_DEFAULT=Drop
NFQUEUE_DEFAULT=none
QUEUE_DEFAULT=none
REJECT_DEFAULT=Reject
RCP_COMMAND=''scp ${files} ${root}@${system}:${destination}''
RSH_COMMAND=''ssh ${root}@${system} ${command}''
ACCOUNTING=Yes
ACCOUNTING_TABLE=filter
ADD_IP_ALIASES=Yes
ADD_SNAT_ALIASES=No
ADMINISABSENTMINDED=Yes
AUTO_COMMENT=Yes
AUTOMAKE=No
BLACKLISTNEWONLY=Yes
CLAMPMSS=No
CLEAR_TC=Yes
COMPLETE=No
DELETE_THEN_ADD=Yes
DETECT_DNAT_IPADDRS=No
DISABLE_IPV6=Yes
DONT_LOADDYNAMIC_BLACKLIST=Yes
EXPAND_POLICIES=Yes
EXPORTMODULES=Yes
FASTACCEPT=No
FORWARD_CLEAR_MARKIMPLICIT_CONTINUE=Yes
IPSET_WARNINGS=Yes
IP_FORWARDING=On
KEEP_RT_TABLES=No
LEGACY_FASTSTART=Yes
LOAD_HELPERS_ONLY=No
MACLIST_TABLE=filter
MACLIST_TTLMANGLE_ENABLED=Yes
MAPOLDACTIONS=No
MARK_IN_FORWARD_CHAIN=No
MODULE_SUFFIX=ko
MULTICAST=No
MUTEX_TIMEOUT=60
NULL_ROUTE_RFC1918=No
OPTIMIZE=0
OPTIMIZE_ACCOUNTING=No
REQUIRE_INTERFACE=No
RESTORE_DEFAULT_ROUTE=Yes
RETAIN_ALIASES=No
ROUTE_FILTER=No
SAVE_IPSETS=No
TC_ENABLED=No
TC_EXPERT=No
TC_PRIOMAP="2 3 3 3 2 3 1 1 2 2 2 2 2 2 2 2"
TRACK_PROVIDERS=No
USE_DEFAULT_RT=No
USE_PHYSICAL_NAMES=No
ZONE2ZONE=2
BLACKLIST_DISPOSITION=DROP
MACLIST_DISPOSITION=REJECT
RELATED_DISPOSITION=ACCEPT
SMURF_DISPOSITION=DROP
SFILTER_DISPOSITION=DROP
TCP_FLAGS_DISPOSITION=DROP
TC_BITSPROVIDER_BITSPROVIDER_OFFSETMASK_BITSZONE_BITS=0
IPSECFILE=zones
----------------------------------------------------------------------
/etc/shorewall/interfaces
----------------------------------------------------------------------
sdsl   eth1   dhcp,tcpflags,routefilter,nosmurfs,logmartians,optional
free   eth2   dhcp,tcpflags,routefilter,nosmurfs,logmartians,optional
#ovh   eth3   dhcp,tcpflags,routefilter,nosmurfs,logmartians,optional
loc    eth0   tcpflags,nosmurfs,routeback
vpn    tun0   tcpflags,nosmurfs
----------------------------------------------------------------------
/etc/shorewall/providers
----------------------------------------------------------------------
sdsl   1   1   main   eth1   <IPWAN_SDSL>    track,balance   eth0
free   2   2   main   eth2   192.168.0.254   track,balance   eth0
ovh    3   3   main   eth3   192.168.2.254   track,balance   eth0
----------------------------------------------------------------------
/etc/shorewall/zones
----------------------------------------------------------------------
fw      firewall
loc     ipv4
sdsl    ipv4
vpn     ipv4
free    ipv4
ovh     ipv4
----------------------------------------------------------------------
/etc/shorewall/policy
----------------------------------------------------------------------
loc     fw      ACCEPT
fw      loc     ACCEPT
loc     sdsl    ACCEPT
fw      sdsl    ACCEPT
loc     vpn     ACCEPT
vpn     loc     ACCEPT
loc     free    ACCEPT
fw      free    ACCEPT
loc     ovh     ACCEPT
fw      ovh     ACCEPT
sdsl    all     DROP            info
free    all     DROP            info
ovh     all     DROP            info
all     all     REJECT          info
----------------------------------------------------------------------
/etc/shorewall/tcinterfaces
----------------------------------------------------------------------
eth0            internal        1000mbit        1000mbit
eth1            external        4mbit           4mbit
tun0            internal        2mbit           1mbit
eth2            external        6mbit           796kbit
eth3            external        6610kbit        796kbit
----------------------------------------------------------------------
/etc/shorewall/rtrules
----------------------------------------------------------------------
192.168.16.0/20         <IP>/23        sdsl            1000
----------------------------------------------------------------------
/etc/shorewall/tunnels
----------------------------------------------------------------------
openvpn:1194            sdsl    <IP>
...
----------------------------------------------------------------------
/etc/shorewall/rules
----------------------------------------------------------------------
some rules (only the sdsl)...
----------------------------------------------------------------------
/etc/shorewall/masq
----------------------------------------------------------------------
eth1   192.168.16.0/20   <IPWAN_SDSL>
eth2   192.168.16.0/20   192.168.0.251
eth3   192.168.16.0/20   192.168.2.251
eth0   tun0
----------------------------------------------------------------------
/etc/shorewall/accounting
----------------------------------------------------------------------
many accounting rules on all 3 providers like:
client1_sdsl -   eth0:192.168.16.22   eth1                 tcp
client1_sdsl -   eth1                 eth0:192.168.16.22   tcp
client1_sdsl -   eth0:192.168.16.22   eth1                 udp
client1_sdsl -   eth1                 eth0:192.168.16.22   udp
COUNT   client1_sdsl   eth0:192.168.16.22   eth1
COUNT   client1_sdsl   eth1                 eth0:192.168.16.22
client1_free -   eth0:192.168.16.22   eth2                 tcp
client1_free -   eth2                 eth0:192.168.16.22   tcp
client1_free -   eth0:192.168.16.22   eth2                 udp
client1_free -   eth2                 eth0:192.168.16.22   udp
COUNT   client1_free   eth0:192.168.16.22   eth2
COUNT   client1_free   eth2                 eth0:192.168.16.22
client1_ovh  -   eth0:192.168.16.22   eth3                 tcp
client1_ovh  -   eth3                 eth0:192.168.16.22   tcp
client1_ovh  -   eth0:192.168.16.22   eth3                 udp
client1_ovh  -   eth3                 eth0:192.168.16.22   udp
COUNT   client1_ovh    eth0:192.168.16.22   eth3
COUNT   client1_ovh    eth3                 eth0:192.168.16.22
...
----------------------------------------------------------------------
/etc/lsm/lsm.conf
----------------------------------------------------------------------
debug=8
defaults {
  name=defaults
  checkip=127.0.0.1
  eventscript=/etc/lsm/script
  notifyscript=/usr/share/lsm/default_script
  max_packet_loss=15
  max_successive_pkts_lost=7
  min_packet_loss=5
  min_successive_pkts_rcvd=10
  interval_ms=1000
  timeout_ms=1000
  warn_email=alert@ipernity.com
  check_arp=0
  sourceip  ttl=0
}
include /etc/lsm/shorewall.conf
----------------------------------------------------------------------
/etc/lsm/shorewall.conf
----------------------------------------------------------------------
connection {
    name=sdsl
    checkip=<EXTERNAL_IP_SDSL>
    device=eth1
    ttl=2
}
connection {
    name=free
    checkip=<EXTERNAL_IP_FREE>
    device=eth2
    ttl=2
}
connection {
    name=ovh
    checkip=<EXTERNAL_IP_OVH>
    device=eth3
    ttl=2
}
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
On 09/10/2013 08:24 AM, John Doe wrote:> Hi, > > I use shorewall-4.5.4 + lsm-0.143 and it does not seem to work as expected... > When all providers are up, everything seems fine. > > When one goes down, lsm says "link <provider> down event"... and it seems > > ok but we then experience some problems such as a few unreachable sites, > > DNS problems... > If I remove the downed provider from all confs and restart, everything works again.DNS problems can be eliminated by running your own caching name server.> > Also, when the providers goes back up, lsm seems not to detect it when I use > external IPs or the next hop. He does if I use the LAN IPs but he won''t > detect a failure past the box.Your main routing table *must* contain host entries for the external IPs out of the appropriate interface.> > Could someone check my confs to see if certain parameters would prevent > graceful deactivation of a provider...? > Maybe the accounting rules that use all 3 providers? > > About lsm, do I need to manualy add routes for the checked WAN IPs to go > through the respecting devices (as I read on the net) even though the > devices are in the conf?Yes!> I am also not sure about the ttl parameter... Should it match the numbers > of hops from the firewall?Yes. -Tom -- Tom Eastep \ When I die, I want to go like my Grandfather who Shoreline, \ died peacefully in his sleep. Not screaming like Washington, USA \ all of the passengers in his car http://shorewall.net \________________________________________________ ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
On 9/10/2013 11:24 AM, John Doe wrote:> > ---------------------------------------------------------------------- > /etc/lsm/lsm.conf > ---------------------------------------------------------------------- > > debug=8 > defaults { > name=defaults > checkip=127.0.0.1 > eventscript=/etc/lsm/script > notifyscript=/usr/share/lsm/default_script > max_packet_loss=15 > max_successive_pkts_lost=7 > min_packet_loss=5 > min_successive_pkts_rcvd=10 > interval_ms=1000 > timeout_ms=1000 > warn_email=alert@ipernity.com > check_arp=0 > sourceip> ttl=0 > } > include /etc/lsm/shorewall.conf >One pitfall that I found is that "status=1" is set to zero by default in the stock /etc/lsm/lsm.conf file. The Shorewall scripts in the MultiISP document depend on LSM assuming that the link is "up" when LSM starts. Since the stock config is "status=0", LSM is assuming that links are "down" when LSM starts. ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
From: Tom Eastep <teastep@shorewall.net>> To: shorewall-users@lists.sourceforge.net > Cc: > Sent: Tuesday, September 10, 2013 6:34 PM > Subject: Re: [Shorewall-users] lsm configuration issues... > > On 09/10/2013 08:24 AM, John Doe wrote: >> Hi, >> >> I use shorewall-4.5.4 + lsm-0.143 and it does not seem to work as > expected... >> When all providers are up, everything seems fine. >> >> When one goes down, lsm says "link <provider> down > event"... and it seems >> >> ok but we then experience some problems such as a few unreachable sites, >> >> DNS problems... >> If I remove the downed provider from all confs and restart, everything > works again. > > DNS problems can be eliminated by running your own caching name server. > >> >> Also, when the providers goes back up, lsm seems not to detect it when I > use >> external IPs or the next hop. He does if I use the LAN IPs but he > won''t >> detect a failure past the box. > > Your main routing table *must* contain host entries for the external IPs > out of the appropriate interface. > >> >> Could someone check my confs to see if certain parameters would prevent >> graceful deactivation of a provider...? >> Maybe the accounting rules that use all 3 providers? >> >> About lsm, do I need to manualy add routes for the checked WAN IPs to go >> through the respecting devices (as I read on the net) even though the >> devices are in the conf? > > Yes! > >> I am also not sure about the ttl parameter... Should it match the numbers >> of hops from the firewall? > > Yes.Finally found the time to test and... it still fails... If I put the next hop, with the manual routes (which do work with a ping test), lsm will correctly detect the link down, but will never detect the link back up (even if I have no problem manually pinging the next hop). If I put the external IP of the ADSL box, lsm will of course not see if the link is down past the box. Also, I caught many times zombie lsms that I had to kill manually... Is there a way to at least do lsm jobs manually? If I know one adsl link is down, what can I do to gracefully remove it from shorewall without having to go through all the configuration files to comment references to it? From: Thomas Harold <thomas-lists@nybeta.com>> One pitfall that I found is that "status=1" is set to zero by default > in > the stock /etc/lsm/lsm.conf file.In my version of lsm, it says: # assume initial up state at lsm startup (1 = up, 0 = down, 2 = unknown (default)) So unknown seems to be the default now... Thx, JD ------------------------------------------------------------------------------ LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
On 9/23/2013 3:05 AM, John Doe wrote:> > Finally found the time to test and... it still fails... > If I put the next hop, with the manual routes (which do work with a ping test), > lsm will correctly detect the link down, but will never detect the link back up (even if > I have no problem manually pinging the next hop). > If I put the external IP of the ADSL box, lsm will of course not see if the link is down > past the box. > Also, I caught many times zombie lsms that I had to kill manually...If you need LSM help, you need to consult the LSM mailing list.> > Is there a way to at least do lsm jobs manually?Of course. LSM just runs /etc/lsm/script. From http://www.shorewall.net/MultiISP.html#LSM if [ ${STATE} = up ]; then ${VARDIR}/firewall enable ${DEVICE} else ${VARDIR}/firewall disable ${DEVICE} fi Rather than running ${VARDIR}/firewall, you can just run ${SBINDIR}/shorewall (usually /sbin/shorewall or /usr/sbin/shorewall): shorewall disable <device-or-provider> shorewall enable <device-provider> -Tom -- Tom Eastep \ When I die, I want to go like my Grandfather who Shoreline, \ died peacefully in his sleep. Not screaming like Washington, USA \ all of the passengers in his car http://shorewall.net \________________________________________________ ------------------------------------------------------------------------------ LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
From: Tom Eastep <teastep@shorewall.net>> Rather than running ${VARDIR}/firewall, you can just run > ${SBINDIR}/shorewall (usually /sbin/shorewall or /usr/sbin/shorewall): > > shorewall disable <device-or-provider> > shorewall enable <device-provider>Thx, JD ------------------------------------------------------------------------------ LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
On Thu, 12 Sep 2013 03:24:40 -0400 Thomas Harold <thomas-lists@nybeta.com> wrote:> One pitfall that I found is that "status=1" is set to zero by default > in the stock /etc/lsm/lsm.conf file.That''s not true. Default of status is 2 eg unknown.> The Shorewall scripts in the MultiISP document depend on LSM assuming > that the link is "up" when LSM starts. Since the stock config is > "status=0", LSM is assuming that links are "down" when LSM starts.You should really let lsm to control shorewall - not shorewall to control lsm, that''s how lsm is designed to work. That''s pretty simple on redhat based systems where you do something like this: Note, I only use lsm for ipv4 here. /etc/sysconfig/lsm: #!/bin/sh # # LSM to Shorewall Multi-ISP integration script # # Copyright © 2009-2013 Tuomo Soini <tis@foobar.fi> # DAEMON_COREFILE_LIMIT=unlimited VARDIR=$(/sbin/shorewall show vardir) if [ $1 = start -o $1 = restart ]; then # # Set all interfaces to up state on startup. # We will fail soon enough. # rm -f ${VARDIR:-/var/lib/shorewall}/*.status # umask=$(umask) umask 077 >/dev/null /sbin/shorewall -q restart >> /var/log/lsm 2>&1 /sbin/shorewall show routing >> /var/log/lsm umask ${umask} >/dev/null fi That''s how I run lsm with shorewall on rhel6 based system. On connection it''s important to have: eventscript=/usr/share/lsm/shorewall_script -- Tuomo Soini <tis@foobar.fi> Foobar Linux services +358 40 5240030 Foobar Oy <http://foobar.fi/> ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk