Ranger802004
Very Senior Member
I made a slight tweak to the logic for this in beta14 but I added debug logging so if the problem persists please enable debug logging and collect the data for me, thank you.Nope it didn't. It remained on 150/15.
I made a slight tweak to the logic for this in beta14 but I added debug logging so if the problem persists please enable debug logging and collect the data for me, thank you.Nope it didn't. It remained on 150/15.
Everything is excellent.v1.5.6-beta14 Release: ***Disclaimer: This is a beta release and has been untested***
Manually upgrade to this beta by running the following command" ***Allow for cronjob to relaunch the script***
Clean installation:
Code:/usr/sbin/curl -s "https://raw.githubusercontent.com/Ranger802004/asusmerlin/main/wan-failover_v1.5.6-beta14.sh" -o "/jffs/scripts/wan-failover.sh" && chmod 755 /jffs/scripts/wan-failover.sh && sh /jffs/scripts/wan-failover.sh install
Upgrade from previous installation:
Code:/usr/sbin/curl -s "https://raw.githubusercontent.com/Ranger802004/asusmerlin/main/wan-failover_v1.5.6-beta14.sh" -o "/jffs/scripts/wan-failover.sh" && chmod 755 /jffs/scripts/wan-failover.sh && sh /jffs/scripts/wan-failover.sh restart
To revert back to Production Release:
Code:/jffs/scripts/wan-failover.sh update
Beta Readme
***WARNING*** There are some major changes from v1.5.6-beta9 so if you experience issues please collect debug logs and forward to me via DM!
***WARNING*** If you are using an RT-AX88U, read release notes!
***HIGHLIGHT*** Script will now send emails in Failover Mode if the Primary or Secondary WAN fails or is disabled.
***HIGHLIGHT*** Script will now create an alias as "wan-failover", once script is updated and restarted. Consoles can now use the new alias instead of the full script path "/jffs/scripts/wan-failover.sh". Consoles open while the script is updated may need to be restarted or the following command executed.
Code:source /jffs/configs/profile.add
Release Notes:
v1.5.6-beta14
Enhancements:
- General optimization
- Added a confirmation prompt to Restart Mode.
- Load Balance Monitor now triggers Service Restart function during failover events.
- Target IPs for both interfaces can now be the same the Target IP.
- Added Recursive Ping Check feature. If packet loss is not 0% during a check, the Target IP Addresses will be checked again based on the number of iterations specified by this setting before determing a failure or packet loss. RECURSIVEPINGCHECK (Value is in # of iterations). Default: 1
- Moved WAN0_QOS_OVERHEAD, WAN1_QOS_OVERHEAD, WAN0_QOS_ATM, WAN1_QOS_ATM, BOOTDELAYTIMER, PACKETLOSSLOGGING and WANDISABLEDSLEEPTIMER to Optional Configuration and no longer are required to be set during Config or Installation. They will be given Default values that can be modified in the Configuration file.
- Created new Optional Configured Option to specify the ping packet size. PACKETSIZE specifes the packet size in Bytes, Default: 56 Bytes.
- Load Balance Mode will now dynamically update resolv.conf (DNS) for Disconnected WAN Interfaces.
- Created Alias for script as wan-failover to shorten length of commands used in console.
- Enhanced WAN Disabled Logging, will relog every 5 minutes the condition causing the script to be in the Disabled State.
- Added additional logging throughout script.
- Added cleanup function for when script exits to perform cleanup tasks.
- Service Restarts now include restarting enabled OpenVPN Server Instances.
- Target IP Rules will now compensate for the RT-AX88U however this can create conflicts if the Target IPs are the same or are used for other services/scripts.
- Switch WAN Mode will now prompt for confirmation before switching.
- Script will now reset VPNMON-R2 if it is installed and running during Failover
- Enhanced Ping Monitoring to improve failure/packet loss detection time as well as failure and restoration logging notifications.
- An email notification will now be sent if the Primary or Secondary WAN fails or is disabled while in Failover Mode.
- If IPv6 6in4 Service is being used, wan6 service will be restarted during failover events.
- Updated Monitor Mode to dynamically search multiple locations for System Log Path such as if Scribe is installed
Fixes:
- Fixed visual bugs when running Restart Mode.
- YazFi trigger during service restart will no longer run process in the background to prevent issues with script execution of YazFi.
- IP Rules should no longer create conflict with other scripts such as VPNMON unless using the RT-AX88U.
- Resolved issues that prevented 4G USB Devices from properly working in Failover Mode.
- Resolve issue where script would loop from WAN Status to Load Balance Monitor when an interface was disabled.
- Fixed Cron Job deletion during Uninstallation.
- Corrected issue with Failure Detected log not logging if a device was unplugged or powered off from the Router while in Failover Mode.
- Modified Restart Mode logic to better detect PIDs of running instances of the script.
- Fixed issue where if the USB Device is unplugged and plugged back in, script will now leave Disabled State to go back to WAN Status.
- Email function will check if DDNS is enabled before attempting to use saved DDNS Hostname
- Fixed issue in DNS Switch in Load Balance Mode where WAN1 was using the Status of WAN0.
- Fixed issue where Switch WAN Mode would fail due to missing Status parameters acquired in Run or Manual Mode.
- Fixed issue where WAN Interface would not come out of Cold Standby during WAN Status Check.
- If an amtm email alert fails to send, an email attempt will be made via AIProtection Alerts if properly configured.
- Fixed issue in Load Balance Mode when a Disconnected WAN Interface would cause WAN Failover to error and crash when creating OpenVPN rules when OpenVPN Split Tunneling is Disabled.
- Fixed issue where QoS settings would not apply during WAN Switch
Hi,Everything is excellent.
Yes, that's right. @Ranger802004 well done.Hi,
Even the syslog location?
I didn't have the chance to test until now.
Thank you!
It should work for me too. But I have only syslog-ng without scribe so is not working.Try out beta14 for this issue and report back
_B88X_>140159/opt/sbin#:ls | grep syslog-ng
-rwxr-xr-x 1 root 14.8K Apr 2 18:00 syslog-ng
-rwxr-xr-x 1 root 24.0K Apr 2 18:00 syslog-ng-ctl
-rwxr-xr-x 1 root 50.5K Apr 2 18:00 syslog-ng-debun
Is this the default location from the firmware or do you have something else installed to have it there?It should work for me too. But I have only syslog-ng without scribe so is not working.
Could you please add in the in the IF another else for my case?
The log file location is the same: / opt/ var/ log/ messages; but the location to check in the if is:
/opt / sbin/ syslog-ng
Code:_B88X_>140159/opt/sbin#:ls | grep syslog-ng -rwxr-xr-x 1 root 14.8K Apr 2 18:00 syslog-ng -rwxr-xr-x 1 root 24.0K Apr 2 18:00 syslog-ng-ctl -rwxr-xr-x 1 root 50.5K Apr 2 18:00 syslog-ng-debun
Later edit: or, because syslog-ng is included in scribe to keep only a IF for syslog-ng
Thank you very much,
amplatfus
[[ "$(nvram get qos_obw)" -gt "1024" ]] && logger -p 4 -st "${0##*/}" "WAN Switch - QoS Settings: Upload Bandwidth: $(($(nvram get qos_obw)/1024))Mbps" || logger -p 4 -st "${0##*/}" "WAN Switch - QoS Settings: Upload Bandwidth: $(nvram get qos_obw)Kbps"
[[ "$(nvram get qos_ibw)" -gt "1024" ]] && logger -p 4 -st "${0##*/}" "WAN Switch - QoS Settings: Download Bandwidth: $(($(nvram get qos_ibw)/1024))Mbps" || logger -p 4 -st "${0##*/}" "WAN Switch - QoS Settings: Download Bandwidth: $(nvram get qos_ibw)Kbps"
It is a entware package installed in default entware folder like this:Is this the default location from the firmware or do you have something else installed to have it there?
_B88X_>194059/tmp/home/root#:opkg install syslog-ng
Package syslog-ng (3.37.1-1) installed in root is up to date.
_B88X_>194125/tmp/home/root#:cd /tmp/mnt/Disk/entware/sbin/
_B88X_>194156/tmp/mnt/Disk/entware/sbin#:ls | grep syslog-ng
-rwxr-xr-x 1 root 14.9K Jul 21 12:14 syslog-ng
-rwxr-xr-x 1 root 24.0K Jul 21 12:14 syslog-ng-ctl
-rwxr-xr-x 1 root 50.6K Jul 21 12:14 syslog-ng-debun
I have Scribe installed, I don't see the logging level. Judging by the conclusion, probably "all".In my case the syslog-ng is not getting messages from wan-failover.sh.
In System Log - General Log I have:
Default message log leve: notice
Log only messages more urgent than: debug
Please, are this 2 options set correct?
lbtboy, please, in your case, the logging is OK?
/tmp/home/root# nvram get log_level
8
Aug 12 23:54:38 src@B88X wan-failover.sh: Debug - Script Mode: cron
Aug 12 23:54:38 src@B88X wan-failover.sh: Debug - Function: cronjob
Aug 12 23:54:38 src@B88X wan-failover.sh: Cron - Creating Cron Job
Aug 12 23:54:38 src@B88X wan-failover.sh: Cron - Created Cron Job
Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Script Mode: kill
Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Function: killscript
Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Calling CronJob to delete jobs
Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Function: cronjob
Aug 12 23:54:56 src@B88X wan-failover.sh: Cron - Removing Cron Job
Aug 12 23:54:56 src@B88X wan-failover.sh: Cron - Removed Cron Job
Aug 12 23:54:56 src@B88X wan-failover.sh: Kill - Killing wan-failover.sh
Aug 12 23:55:15 src@B88X wan-failover.sh: Debug - Script Mode: cron
Aug 12 23:55:15 src@B88X wan-failover.sh: Debug - Function: cronjob
Aug 12 23:55:15 src@B88X wan-failover.sh: Cron - Creating Cron Job
Aug 12 23:55:15 src@B88X wan-failover.sh: Cron - Created Cron Job
Hmmmm that means syslog-ng doesn't use the priority queues built in, I assign debug -p 6 for example and -p 2 for errors and that works perfect for default system logging but with Scribe or the Entware Package it doesn't seem to filter that out.Yes 8 meaning all. I had 7 (debug) and after changed to 8 (all) like you is working for me too.
Thank you allCode:Aug 12 23:54:38 src@B88X wan-failover.sh: Debug - Script Mode: cron Aug 12 23:54:38 src@B88X wan-failover.sh: Debug - Function: cronjob Aug 12 23:54:38 src@B88X wan-failover.sh: Cron - Creating Cron Job Aug 12 23:54:38 src@B88X wan-failover.sh: Cron - Created Cron Job Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Script Mode: kill Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Function: killscript Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Calling CronJob to delete jobs Aug 12 23:54:56 src@B88X wan-failover.sh: Debug - Function: cronjob Aug 12 23:54:56 src@B88X wan-failover.sh: Cron - Removing Cron Job Aug 12 23:54:56 src@B88X wan-failover.sh: Cron - Removed Cron Job Aug 12 23:54:56 src@B88X wan-failover.sh: Kill - Killing wan-failover.sh Aug 12 23:55:15 src@B88X wan-failover.sh: Debug - Script Mode: cron Aug 12 23:55:15 src@B88X wan-failover.sh: Debug - Function: cronjob Aug 12 23:55:15 src@B88X wan-failover.sh: Cron - Creating Cron Job Aug 12 23:55:15 src@B88X wan-failover.sh: Cron - Created Cron Job
Published some minor tweaks to v1.5.6-beta14, reported version will show as v1.5.6-beta14c, I think this should cover everything and be ready for production.I published a revision to v1.5.6-beta14, reinstall from the same link and your version should report as v1.5.6-beta14b.
Changes:
- QoS Settings will set to Automatic Settings if WAN Interface Settings are set to 0 in configuration File.
- Updated Monitor Mode to dynamically search for Entware syslog-ng package if installed.
- Fixed issue where if WAN1 was connected but failing ping, the script would loop back and forth from WAN Status to WAN Disabled.
Published some minor tweaks to v1.5.6-beta14, reported version will show as v1.5.6-beta14c, I think this should cover everything and be ready for production.
That’s what I have been spending most of my time on is improving the email alerts and avoiding duplicate sends.In general, super worked out all my tests. Even the email alerts came in as expected - one for the problem, one for the recovery! Super! Enough I am going to sleep
Any idea why your WAN1 can't ping out? I see where it restarts it to get it into State 2 "Connected" but it can't ping the target IP you set.I'm still getting a loop when clean installing the latest beta14:
Aug 13 15:08:39 dropbear[6473]: Child connection from 192.168.1.75:2112Aug 13 - Pastebin.com
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.pastebin.com
My WAN1 is a LTE USB Stick with a SIM-card.
Aug 13 15:10:02 wan-failover.sh: WAN Status - Restarting wan1
Aug 13 15:10:02 rc_service: service 8834:notify_rc restart_wan_if 1
Aug 13 15:10:02 custom_script: Running /jffs/scripts/service-event (args: restart wan_if)
Aug 13 15:10:02 custom_script: Running /jffs/scripts/wan-event (args: 1 stopping)
Aug 13 15:10:02 custom_script: Running /jffs/scripts/wan-event (args: 1 init)
Aug 13 15:10:02 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:02 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 custom_script: Running /jffs/scripts/wan-event (args: 1 init)
Aug 13 15:10:03 custom_script: Running /jffs/scripts/wan-event (args: 1 connecting)
Aug 13 15:10:03 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:03 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:03 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:03 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 custom_script: Running /jffs/scripts/service-event-end (args: restart wan_if)
Aug 13 15:10:03 custom_script: Running /jffs/scripts/wan-event (args: 1 disconnected)
Aug 13 15:10:03 custom_script: Running /jffs/scripts/wan-event (args: 1 stopped)
Aug 13 15:10:03 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:03 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:03 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 custom_script: Running /jffs/scripts/wan-event (args: 1 connected)
Aug 13 15:10:03 custom_script: Running /jffs/scripts/firewall-start (args: eth7)
Aug 13 15:10:03 wan: finish adding multi routes
Aug 13 15:10:03 dhcp_client: bound 192.168.8.100/255.255.255.0 via 192.168.8.1 for 86400 seconds.
Aug 13 15:10:03 wan-failover.sh: Debug - Script Mode: cron
Aug 13 15:10:03 wan-failover.sh: Debug - Function: cronjob
Aug 13 15:10:03 wan-failover.sh: Debug - wan1 Post-Restart State: 2
Aug 13 15:10:33 wan-failover.sh: Debug - wan1 Packet Loss: 100%%
Aug 13 15:10:33 wan-failover.sh: WAN Status - wan1 has 100% packet loss ***Verify 1.1.1.1 is a valid server for ICMP Echo Requests***
It's in State 2 according to logs which is Connected and Dual WAN Mode will show this as "Hot-Standby" as opposed to "Cold-Standby" when it is the Secondary WAN and not Primary, that is correct. The problem is the inability to ping 1.1.1.1 out of WAN1.I guess the script does "not properly start WAN1".
My secondary WAN (WAN1) is just on hot-standby instead connected.
Welcome To SNBForums
SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.
If you'd like to post a question, simply register and have at it!
While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!