diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-09-14 09:40:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-14 09:40:13 +0200 |
commit | 24c4f9b6fa299e5bc67d82f5a8e0e5b4f9c4d04b (patch) | |
tree | e3b2a14c6104b8cb36a8977e0ca95ad799c5037c /src/op_mode/force_mtu_host.sh | |
parent | 8ae88b5ba5cbc34b9992ccdde4229d44cfe56225 (diff) | |
parent | b82871584b2a087b5b690f8eace1e99b7c948cf3 (diff) | |
download | vyos-1x-24c4f9b6fa299e5bc67d82f5a8e0e5b4f9c4d04b.tar.gz vyos-1x-24c4f9b6fa299e5bc67d82f5a8e0e5b4f9c4d04b.zip |
Merge pull request #545 from sever-sever/T2874
op-mode: T2874: Add new utill for mtu-check
Diffstat (limited to 'src/op_mode/force_mtu_host.sh')
-rwxr-xr-x | src/op_mode/force_mtu_host.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/op_mode/force_mtu_host.sh b/src/op_mode/force_mtu_host.sh new file mode 100755 index 000000000..02955c729 --- /dev/null +++ b/src/op_mode/force_mtu_host.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# +# Module: vyos-show-ram.sh +# Displays memory usage information in minimalistic format +# +# Copyright (C) 2020 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +target=$1 +interface=$2 + +# IPv4 header 20 byte + TCP header 20 byte +ipv4_overhead=40 + +# IPv6 headter 40 byte + TCP header 20 byte +ipv6_overhead=60 + +# If no arguments +if [[ $# -eq 0 ]] ; then + echo "Target host not defined" + exit 1 +fi + +# If one argument, it's ip address. If 2, the second arg "interface" +if [[ $# -eq 1 ]] ; then + mtu=$(sudo nmap -T4 --script path-mtu -F $target | grep "PMTU" | awk {'print $NF'}) +elif [[ $# -eq 2 ]]; then + mtu=$(sudo nmap -T4 -e $interface --script path-mtu -F $target | grep "PMTU" | awk {'print $NF'}) +fi + +tcpv4_mss=$(($mtu-$ipv4_overhead)) +tcpv6_mss=$(($mtu-$ipv6_overhead)) + +echo " +Recommended maximum values (or less) for target $target: +--- +MTU: $mtu +TCP-MSS: $tcpv4_mss +TCP-MSS_IPv6: $tcpv6_mss +" + |