Re: Troubleshooting connection loss (novice question)



On Mon, 29 Oct 2007 18:15:57 GMT, Allen Weiner wrote:
I run Fedora 7 and use Verizon DSL. My modem is a Westell 6100-E90
modem/router. My DSL connection usually runs well, but about once every
seven to ten days I lose my Internet connection.

My SWAG, for some reason, you are not renewing your dhcp lease in
the modem. You might root around in the modems web page and see what
you can see.

I can regain my
connection by rebooting Fedora. I've not been able to regain my Internet
connection without a reboot (e.g. "service network restart" hangs).

Now that is odd, I would have thought it would not matter unless your fedora
firewall gets in the way.

Would you dump your network settings for us to look at.

-------- standard debug network problem text/script follows: ------------
dump_net.txt version 3.4


If you read http://www.catb.org/~esr/faqs/smart-questions.html
it will suggest you provide any information about your setup which might
help troubleshoot your problem. Example, internet connection type,
(cable, adsl,,,), it's hardware, (vendor/model of the modem).
Maybe that your system is hooked to a hub/switch/router and type of
hookup, (ethernet,usb, wireless,...), distribution, config file values,... .

We need to know about your network hardware and see your config settings.

Something does not start up, try
dmesg
and/or look through /var/log/messages for an error message.

If your problem is slow network give a url so we can try it.

Once you get your network running, you may want to run xx one last time
and save the output file for disk crash/new installs :)

Might not hurt to save xx for one of a network debugging checklist steps.

The following ambidexterous script is for suse, mandriva, ubuntu, kubuntu
and will dump your hardware status, network settings and config files used
in network setup. We need that information to troubleshoot your problem.

If you are having to use windows to access Usenet:
Format a diskette on the windows system.


Copy the following xx.txt script into xx.txt using notepad.exe
then save xx.txt to the diskette/cd/usb stick.

To get the script results back to Windows and
none of the above hardware works, you can use http://www.fs-driver.org/
If you do not want some malware writting to linux. You can replace it
with http://www.diskinternals.com/linux-reader/ which does not
provide write access, if you have not created a FAT partition to
exchange files between OSs.
I do recommend removinguninstalling the windows/linux file system
driver after you get the linux network up.

Makes your Windows AntiVirus scanner run much faster after removal.


Also, if logged into windows, it would be nice to include your windows
network settings. Click up a Prompt/cmd/terminal and add in contents from
ipconfig /all
when you reply with linux settings.


If using linux for usenet access, su - root, copy script text into xx
chmod +x xx
./xx

and include a.txt (if on linux) or dosa.txt (if on windows) in your reply.


NOTE: to become root, you need to do a
su - root
not su root

For the suse, ubuntu, kubuntu users,
sudo -i
chmod +x xx
sudo xx

exit will exit the sudo -i command.

If xx is not in your home directory, you will have to provide the full
path in place of $HOME. Example:
sudo -i
chmod +x /some/where/xx
/some/where/xx



------------------ Script starts below this line -----------------------
#!/bin/bash
#******** start of xx.txt script ****************

_fn=a.txt
_out_fn=$PWD/$_fn
_dos_fn=$PWD/dos${_fn}
_home=$PWD

function cat_fn
{
_fn=$1
if [ -f $_fn ] ; then
_count=$(stat -c %s $_fn )
if [ $_count -gt 0 ] ; then
echo ======== cat $_fn ========== >> $_out_fn
cat $_fn >> $_out_fn
fi
fi
} # end cat_fn

function grep_fn
{
_fn=$1
if [ -e $_fn ] ; then
_count=$(stat -c %s $_fn )
if [ $_count -gt 0 ] ; then
_count=$(grep -v '^#' $_fn | wc -l)
if [ $_count -gt 0 ] ; then
echo "======== grep -v '^#' $_fn ==========" >> $_out_fn
if [ "$_fn" != "shorewall.conf" ] ; then
grep -v '^#' $_fn >> $_out_fn
else
awk 'empty{if (!/^#/) print; empty=0} /^$/{empty=1}' $_fn >> $_out_fn
fi
fi
fi
fi
} # end grep_fn

function ls_dir
{
_dr=$1
if [ -d $_dr ] ; then
echo "========= cd $_dr ; ls -al ========" >> $_out_fn
cd $_dr
ls -al >> $_out_fn
fi
} # end ls_dir

function tail_fn
{
_fn=$1
if [ -e $_fn ] ; then
echo "======== tail -18 $_fn ==========" >> $_out_fn
tail -18 $_fn >> $_out_fn
fi
} # end tail_fn

#********************************
# check if commands are in $PATH
# and if not add them path to $PATH
#********************************

_path=""
type ifconfig > /dev/null 2>&1
if [ $? -ne 0 ] ; then
_path="${_path}/sbin:"
fi

type cat > /dev/null 2>&1
if [ $? -ne 0 ] ; then
_path="${_path}/bin:"
fi

type id > /dev/null 2>&1
if [ $? -ne 0 ] ; then
_path="${_path}/usr/bin:"
fi

if [ -n "$_path" ] ; then
PATH=${_path}$PATH
export PATH
fi

#********************************
# check if root and logged in correctly
#********************************

_uid=$(id --user)

if [ $_uid -ne 0 ] ; then
echo " "
echo "You need to be root to run $0"
echo "CLick up a terminal and do the following:"
echo " "
echo "su - root"
echo "$PWD/xx"
exit 1
fi

root_flg=1

if [ -n "$LOGNAME" ] ; then
if [ "$LOGNAME" != "root" ] ; then
root_flg=0
fi
fi

if [ -n "$USER" ] ; then
if [ "$USER" != "root" ] ; then
root_flg=0
fi
fi

if [ $root_flg -eq 0 ] ; then
echo " "
echo "Guessing you did a su root"
echo "instead of a su - root"
echo "please exit/logout of this session and do the following:"
echo " "
echo "su - root"
echo "$PWD/xx"
echo " "
exit 1
fi


#********************************
# main code starts here
#********************************


echo "Working, output will be in $_out_fn "

date > $_out_fn
chmod 666 $_out_fn

if [ -n "$_path" ] ; then
echo ======== echo $PATH ========== >> $_out_fn
echo $PATH >> $_out_fn 2>&1
fi

cat_fn /etc/product.id

echo ======== cat /etc/*release ========== >> $_out_fn
cat /etc/*release >> $_out_fn 2>&1

echo ======== uname -rvi ============= >> $_out_fn
uname -rvi >> $_out_fn

echo ======== cat /etc/*version ========== >> $_out_fn
cat /etc/*version >> $_out_fn 2>&1

echo ======== cat /proc/version ========== >> $_out_fn
cat /proc/*version >> $_out_fn 2>&1

type lsb_release > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo ======== lsb_release -a ========== >> $_out_fn
lsb_release -a >> $_out_fn 2>&1
fi

echo " " >> $_out_fn
echo msec security level is $SECURE_LEVEL >> $_out_fn

echo ======== free ========== >> $_out_fn
free >> $_out_fn 2>&1

type chkconfig > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo ======== chkconfig --list ========== >> $_out_fn
for _serv in avahi named tmdns ; do
chkconfig --list | grep -i $_serv > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "Double check if /$_serv/ needs to be disabled on boot" >> $_out_fn
chkconfig --list | grep -i $_serv >> $_out_fn
fi
done

chkconfig --list >> $_out_fn

else
echo ======== ls -o /etc/rcS.d/ ========== >> $_out_fn
for _serv in avahi named tmdns ; do
ls /etc/rcS.d/S* | grep $_serv > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "Double check if /$_serv/ needs to be disabled on boot" >> $_out_fn
fi
done

ls -o /etc/rcS.d >> $_out_fn
fi

_fn=/etc/nsswitch.conf
if [ -e $_fn ] ; then
echo ======== grep hosts: $_fn ========== >> $_out_fn
grep hosts: $_fn >> $_out_fn
fi

grep_fn /etc/resolv.conf

grep_fn /etc/resolvconf/resolv.conf.d/head
cat_fn /etc/resolvconf/resolv.conf.d/base
cat_fn /etc/resolvconf/resolv.conf.d/tail


echo ======== hostname ========== >> $_out_fn
hostname >> $_out_fn

cat_fn /etc/netprofile/profiles/default/files/etc/hosts
cat_fn /etc/hostname
cat_fn /etc/HOSTNAME

ls /etc/mod*.conf > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "======== grep eth /etc/mod*.conf ==========" >> $_out_fn
grep eth /etc/mod*.conf >> $_out_fn
fi

cat_fn /etc/dhclient-enter-hooks
cat_fn /etc/dhclient-exit-hooks

grep_fn /etc/host.conf

echo ================ ifconfig -a =============== >> $_out_fn
ifconfig -a >> $_out_fn

cat_fn /etc/iftab
cat_fn /etc/udev/rules.d/61-net_config.rules

echo ============== route -n ================= >> $_out_fn
route -n >> $_out_fn

cat_fn /etc/sysconfig/network/routes

cat_fn /etc/sysconfig/network
grep_fn /etc/mkinitramfs/initramfs.conf

echo ============== head -15 /etc/hosts =============== >> $_out_fn
head -15 /etc/hosts >> $_out_fn

cat_fn /etc/network/interfaces
cat_fn /var/run/network/ifstate


_cmd=""
type ethtool > /dev/null 2>&1
if [ $? -eq 0 ] ; then
_cmd="ethtool"
fi

type mii-tool > /dev/null 2>&1
if [ $? -eq 0 ] ; then
_cmd="mii-tool -v"
fi

if [ -z "$_cmd" ] ; then
echo ======== mii-tool/ethtool NOT INSTALLED ========== >> $_out_fn
fi

for nic in 0 1 2 ; do

if [ -n "$_cmd" ] ; then
$_cmd eth$nic > /dev/null 2>&1
if [ $? -eq 0 ] ; then
echo ======== $_cmd eth$nic ========== >> $_out_fn
$_cmd eth$nic >> $_out_fn
fi
fi

echo ======== dmesg | grep eth$nic ========== >> $_out_fn
dmesg | grep eth$nic >> $_out_fn

cat_fn /etc/sysconfig/network-scripts/ifcfg-eth$nic

ifconfig eth$nic > /dev/null 2>&1
if [ $? -eq 0 ] ; then
set $(ifconfig eth$nic | tr [A-Z] [a-z])
cat_fn /etc/sysconfig/network/ifcfg-eth-id-$5
fi

tail_fn /var/lib/dhcp/dhclient-eth${nic}.leases
tail_fn /etc/dhcpc/dhcpcd-eth${nic}.info

done # end for nic in 0 1 2 ; do

_dir=/etc/NetworkManager/dispatcher.d
if [ -d $_dir ] ; then
ls_dir $_dir

for _d in "if-up.d" "if-down.d" "if-pre-up.d" "if-post-down.d" ; do
echo ==== cd /etc/network/${_d} ; ls -al === >> $_out_fn
cd /etc/network/${_d}
ls -al >> $_out_fn
done
fi

if [ -d /etc/sysconfig/network-scripts ] ; then
for _d in "ifdown.d" "ifup.d" ; do
_cmd="cd /etc/sysconfig/network-scripts/${_d} ; ls -al "
echo "===== $_cmd ====" >> $_out_fn
cd /etc/sysconfig/network-scripts/${_d}
ls -al >> $_out_fn
done
fi

ls_dir /etc/dhcp3/dhclient-exit-hooks.d
ls_dir /etc/resolvconf/update.d


if [ -d /etc/shorewall ] ; then
_count=$(chkconfig --list shorewall | grep -c :on )
if [ $_count -gt 0 ] ; then
echo "======= Shorewall settings =========" >> $_out_fn
cd /etc/shorewall
for _f in $(ls) ; do
echo "======= $_f =========" >> $_out_fn
grep_fn $_f
done
fi
fi

cd $_home

grep_fn /etc/hosts.allow
grep_fn /etc/hosts.deny
echo "======= end of config/network data dump ===========" >> $_out_fn

awk '{print $0 "\r" }' $_out_fn > $_dos_fn
chmod 666 $_dos_fn


echo " "
echo "If posting via linux, post contents of $_out_fn"
echo "You might want to copy it to your account with the command"
echo "cp $_out_fn ~your_login"
echo " "
echo "If posting via windows, post contents of $_dos_fn"
echo " "
echo "If using diskette,"
echo "Copy $_dos_fn to diskette with the following commands:"
echo " "
echo "mkdir -p /floppy"
echo "mount -t auto /dev/fd0 /floppy"
echo "cp $_dos_fn /floppy"
echo "umount /floppy "
echo " "
echo "and $_dos_fn is ready for windows from diskette"
echo " "

#*********** end of dump xx.txt script *********
----------- script ends above this line --------------------------------------

and then copy xx.txt to the diskette.

On some linux distributions, you may need to get into the User/Group
screen, show all users, double click root, create the password, and
enable root. Root's password should never be the same as anyone elses.

To move xx.txt from diskette to the linux box, click up a linux terminal
su - root
(root's passwd)

mkdir -p /floppy
mount -t auto /dev/fd0 /floppy
tr -d '\015' < /floppy/xx.txt > xx
chmod +x xx
../xx

Back on the windows OS, you can cut/paste the a:\dosa.txt into your reply
under windows.
Do not attach it.

When you do reply, please remove/trim my response/text/script from your reply
before you add in the results/output of the script.

If you are dual booting the box, you can copy xx.txt to linux from windows.
Note: The following assumes /dev/hda1 is where windows is installed on the
first partition on the C: drive
If you have sata drive, you may have to use /dev/sda1 instead of /dev/hda1.

cat /etc/fstab to see which value will be required.
Do keep quotes used in the following:
mkdir -p /doze
mount -t auto /dev/hda1 /doze
tr -d '\015' < "/doze/whever/you_saved/xx.txt" > xx
umount /doze


On windows you can read dosa.txt from a linux partition if you installed
windows linux filesystem driver from
http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm

Remember to remove/uninstall it to allow your Windows AntiVirus
scanner to run faster.
.



Relevant Pages

  • Re: New To Linux
    ... A file can be user root and group root, but when yo uhave a look you will ... The concept behind Linux IS confusing for someone accustomed to windows, ... execute, delete). ... In windows you are always an Administrator unless you use explicitely the ...
    (alt.os.linux.suse)
  • Re: What is seen in Local Network ? (newbie)
    ... That's because Linux doesn't communicate with SMB ... Windows. ... YaST is pretty comprehensive. ... If you run YaST as a normal user, it should ask you for root password ...
    (alt.os.linux.suse)
  • Re: virusscanner
    ... Are there good virusscanners for Linux, ... box than you are on a Windows machine. ... email in which the virus was transmitted. ... Log in as root to download the "virus" ...
    (alt.os.linux.suse)
  • Re: virus on linux?
    ... any machine I have running Linux or BSD. ... Not as much as I do in Windows, ... I don't run anything as root except apt-get, and I have multiple user accounts ... that it also looks for Windows Viruses that may not be able to infect you at ...
    (Debian-User)
  • Re: New To Linux
    ... > A file can be user root and group root, but when yo uhave a look you will ... > The concept behind Linux IS confusing for someone accustomed to windows, ... > User Read write execute ... > In windows you are always an Administrator unless you use explicitely the ...
    (alt.os.linux.suse)