Описания кейсов решения проблем DHCP.
{toc:maxlevel=2}
h2. Плавающая проблема когда абонент не может получить IP-адрес (SUP-647377)
Плавающая проблема когда абонент не может получить IP-адрес, описание задачи такое:
{quote}Перестал работать dhcpd сервер. Приходится каждый день перезапускать командой chroot /app/collector/ /etc/init.d/dhcpd restart{quote}
Чуть после дополнили (задача от 9 июня):
{quote}Когда перезапускаем dhcp он уже запущен, но не работает. Проблема наблюдается постоянно, сейчас она тоже есть. Адреса не выдаются, прописываем вручную.
При вводе команды для просмотра логов tail -f /app/collector/var/log/messages | grep DHCP
выводятся последние записи за 22 мая{quote}
Проблема палавающая и отловить в тестовой среде не получилось - поэтому сделали скрипт, которым можно получить основную вервичную диагностику.
К сожалению, проверить не удалось, так как проблема перестала появляться.
h3. Как диагностировать
Если Вы столкнулись с какой-то проблемой DHCP, которая то появляется, то пропадает - можете начать с того что в момент когда проблема наблюдается, собрать такую диагностику:
# Выполните набор команд, они создадут нужные папку и файл с правильными правами
{code:title=Предварительные дейсвтия}
mkdir -p /root/dhcp_analysis/
chmod a+x /root/dhcp_analysis/get_info.sh
{code}
# В файл /root/dhcp_analysis/get_info.sh запишите следующее содержимое:
{code:title=Содержимое скрипта /root/dhcp_analysis/get_info.sh}
#!/bin/bash -x
WORKING_DIR=/root/dhcp_analysis/
mkdir -p $WORKING_DIR
NAMES_DATE=$(date "+%Y-%m-%d_%H%M%S")
date "+%Y-%m-%d %H:%M:%S"
ps aux | grep -E 'dhcpd|PID'
cat /app/collector/var/run/dhcpd.pid
cat /app/collector/etc/dhcp/dhcpd.conf | wc -l
grep DHCPACK /app/collector/var/log/messages | tail
grep -i dhcp /app/collector/var/log/messages | tail -n 1
netstat -nlp | grep dhcp
ls -l /app/collector/etc/dhcp/dhcpd.conf
DHCP_PID=`cat /app/collector/var/run/dhcpd.pid`
ls -l /proc/$DHCP_PID/fd
lsof -p $DHCP_PID 2>/dev/null
ls /app/collector/mnt/var/lib/dhcpd/dhcpd.leases -l
cat /app/collector/mnt/var/lib/dhcpd/dhcpd.leases | wc -l
cp /app/collector/mnt/var/lib/dhcpd/dhcpd.leases $WORKING_DIR/dhcpd.leases_$NAMES_DATE
cp /app/collector/etc/dhcp/dhcpd.conf $WORKING_DIR/dhcpd.conf_$NAMES_DATE
{code}
# В момент когда происходит проблема, выполните команду:
{code}/root/dhcp_analysis/get_info.sh &> /root/dhcp_analysis/get_info.log{code}
Файл соберёт лог выполнения в файл /root/dhcp_analysis/get_info.log и скопирует БД активных dhcp-лиз и конфигурационный файл. Вы можете проанализировать их самостоятельно и попробовать найти проблему. Если не получится разобраться, передайте полученные файлы в техподдержку.
{toc:maxlevel=2}
h2. Плавающая проблема когда абонент не может получить IP-адрес (SUP-647377)
Плавающая проблема когда абонент не может получить IP-адрес, описание задачи такое:
{quote}Перестал работать dhcpd сервер. Приходится каждый день перезапускать командой chroot /app/collector/ /etc/init.d/dhcpd restart{quote}
Чуть после дополнили (задача от 9 июня):
{quote}Когда перезапускаем dhcp он уже запущен, но не работает. Проблема наблюдается постоянно, сейчас она тоже есть. Адреса не выдаются, прописываем вручную.
При вводе команды для просмотра логов tail -f /app/collector/var/log/messages | grep DHCP
выводятся последние записи за 22 мая{quote}
Проблема палавающая и отловить в тестовой среде не получилось - поэтому сделали скрипт, которым можно получить основную вервичную диагностику.
К сожалению, проверить не удалось, так как проблема перестала появляться.
h3. Как диагностировать
Если Вы столкнулись с какой-то проблемой DHCP, которая то появляется, то пропадает - можете начать с того что в момент когда проблема наблюдается, собрать такую диагностику:
# Выполните набор команд, они создадут нужные папку и файл с правильными правами
{code:title=Предварительные дейсвтия}
mkdir -p /root/dhcp_analysis/
chmod a+x /root/dhcp_analysis/get_info.sh
{code}
# В файл /root/dhcp_analysis/get_info.sh запишите следующее содержимое:
{code:title=Содержимое скрипта /root/dhcp_analysis/get_info.sh}
#!/bin/bash -x
WORKING_DIR=/root/dhcp_analysis/
mkdir -p $WORKING_DIR
NAMES_DATE=$(date "+%Y-%m-%d_%H%M%S")
date "+%Y-%m-%d %H:%M:%S"
ps aux | grep -E 'dhcpd|PID'
cat /app/collector/var/run/dhcpd.pid
cat /app/collector/etc/dhcp/dhcpd.conf | wc -l
grep DHCPACK /app/collector/var/log/messages | tail
grep -i dhcp /app/collector/var/log/messages | tail -n 1
netstat -nlp | grep dhcp
ls -l /app/collector/etc/dhcp/dhcpd.conf
DHCP_PID=`cat /app/collector/var/run/dhcpd.pid`
ls -l /proc/$DHCP_PID/fd
lsof -p $DHCP_PID 2>/dev/null
ls /app/collector/mnt/var/lib/dhcpd/dhcpd.leases -l
cat /app/collector/mnt/var/lib/dhcpd/dhcpd.leases | wc -l
cp /app/collector/mnt/var/lib/dhcpd/dhcpd.leases $WORKING_DIR/dhcpd.leases_$NAMES_DATE
cp /app/collector/etc/dhcp/dhcpd.conf $WORKING_DIR/dhcpd.conf_$NAMES_DATE
{code}
# В момент когда происходит проблема, выполните команду:
{code}/root/dhcp_analysis/get_info.sh &> /root/dhcp_analysis/get_info.log{code}
Файл соберёт лог выполнения в файл /root/dhcp_analysis/get_info.log и скопирует БД активных dhcp-лиз и конфигурационный файл. Вы можете проанализировать их самостоятельно и попробовать найти проблему. Если не получится разобраться, передайте полученные файлы в техподдержку.