Инструментите на мрежовия администратор

The network administrator tools in linux router

  1. ifconfig
  2. iproute
  3. arp
  4. ping
  5. traceroute
  6. nmap
  7. netstat
  8. tcpdump
  9. top, htop
  10. whois
  11. dig
  12. iftop
  13. bmon
  14. nload
  15. conntrack
  16. lm-sensors
  17. badblocks
  18. lsmod
  19. lspci
  20. iptraf
  21. dmesg
  22. iptables
  23. powertop
  24. ethstats
  25. taskset
  26. smp_affinity
  27. traffic control
  28. policy routing
  29. mii-tool

1. ifconfig

ifconfig служи за конфигурация на мрежовите интерфейси.

Какво означава показаната от ifconfig информация?
lo loopback-устройство. Мрежовите карти се означават с eth.
inet addr: Интернет адрес (виж долу). За loopback този адрес е винаги 127.0.0.1
Bcast: Broadcast адрес. Broadcast се отнася за всички компютри в мрежата.
Mask: Мрежова маска. Тук се дефинира адресната област и с това броя компютри в една мрежа..
MTU: Максимална големина на пренасяните пакети през този интерфейс (англ. Maximum Transfer Unit).
Metric: Няма значени при сегашните версии на Linux.
RX packets: Приети (англ. received) пакети.
TX packets: Изпратени (англ. transmitted) пакети.

2. ip route

3. arp

Протоколът ARP (Address Resolution Protocol) е средството, чрез което компютрите а мрежата съпоставят логически IP адреси с физически хардуерни (МАС) адреси. ARP изгражда и поддържа таблица, наречена ARP кеш, в която се съдържат тези съпоставяния.Помощната програма ARP работи от командния ред и се разпространява с TCP/IP стека на UNIX/Linux. Тя може да се използва за разглеждане и промяна на съпоставянията между IP и МАС адреси. C помощта на програмата ARP можете да покажете съдържанието на кеша и да добавяте или изтривате специфични записи:

sami@sami:~$ arp -a
? (172.16.50.198) at 00:1d:7d:aa:1b:19 [ether] on wlan0
? (172.16.50.1) at 00:0c:42:71:48:b7 [ether] on wlan0

4. ping

Ping (пинг) е компютърна програма за мрежова администрация, използвана за проверка на достъпността на хостове в интернет или локална мрежа. Използва протокола (ICMP) . Името пинг произлиза от сонарната терминология.
Ping работи на принципа на ехото, като изпраща съобщение чрез ICMP протокола до отдалечен компютър. Съобщението съдържа „искане“ за отговор от хоста. В този процес се измерва времето от предаване на съобщението до времето на получаването му от първоначалния компютър (двупосочния път) и се записва всяка загуба на пакети. Резултатите от теста се отпечатват на екрана под формата на статистически съобщения.
Резултат от програмата Ping, при тестване на хоста google.com:

sami@sami:~$ ping abv.bg
PING abv.bg (194.153.145.104) 56(84) bytes of data.
64 bytes from abv.bg (194.153.145.104): icmp_req=1 ttl=60 time=9.10 ms
64 bytes from abv.bg (194.153.145.104): icmp_req=2 ttl=60 time=8.46 ms
64 bytes from abv.bg (194.153.145.104): icmp_req=3 ttl=60 time=8.19 ms
64 bytes from abv.bg (194.153.145.104): icmp_req=4 ttl=60 time=8.96 ms
^C
--- abv.bg ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 8.199/8.682/9.107/0.379 ms

Ping може да се стартира чрез използване на различни опции в командния ред, които позволяват специални режими на работа, като например да се уточни размера на изпращаните пакети и др. С Ping може да се злоупотребява, обикновено под формата елементарна DoS-атака, в която програмата е настроена така, че да изпраща много пакети с големи размери, които да „наводнят“ атакувания хост и да затруднят работата му.

5. traceroute

Често пъти е полезно да бъде проследен маршрута, по който даден пакет поема пътя от компютъра източник до хоста местоназначение. TCP/IP стековете включват помощна програма за проследяване на маршрута, която позволява да идентифицирате маршрутизаторите, през които преминава съобщението.
В следващият пример е използване командата traceroute за да бъде проследен маршрута на пакетите от източника до местоназначението:

sami@sami:~$ traceroute abv.bg
traceroute to abv.bg (194.153.145.104), 30 hops max, 60 byte packets
 1  172.16.50.1 (172.16.50.1)  3.660 ms  3.642 ms  3.634 ms
 2  93.155.130.57 (93.155.130.57)  3.625 ms  3.616 ms  3.606 ms
 3  212.70.158.89 (212.70.158.89)  10.177 ms * *
 4  netinfo.bix.bg (193.169.198.168)  10.149 ms  10.150 ms  10.142 ms
 5  abv.bg (194.153.145.104)  10.131 ms  10.124 ms  10.115 ms

Както можете да видите, проследяването показва IP адрес и името на препращащия компютър или маршрутизатор. На пакета са му били необходими четиринадесет скока, за да достигне до своето местоназначение, което е хостьт с име www.google.bg. Времената за отиване и връщане (в милисекунди) са показани за всеки скок.

6. nmap

Nmap (Network Mapper) е порт-скенер с отворен код създаден от Гордън Лайън. Използва се за откриване на хостове и активни услуги в компютърна мрежа.
Nmap изпраща специално изработени пакети до хостa и след това анализира отговорите. За разлика от други порт-скенери, Nmap проверява условията в мрежата (претоварване на мрежата и др.) преди сканирането. Благодарение на голямата общност от активни потребители, които предоставят информация и подобряват характеристиките му, Nmap е успял да разшири възможностите си за сканиране, като освен, че открива, дали един хост е активен или определен порт е отворен, той може да определи операционната система на хоста и нейната версия, наименованието и версиите на услугите, които са активни на хоста, типа на устройството, наличието на защитна стена и др.

sami@sami:~$ nmap 10.129.3.7
 
Starting Nmap 6.00 ( http://nmap.org ) at 2012-12-18 09:55 EET
Nmap scan report for 10.129.3.7
Host is up (0.011s latency).
Not shown: 987 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
53/tcp   open     domain
80/tcp   open     http
139/tcp  filtered netbios-ssn
445/tcp  filtered microsoft-ds
1433/tcp open     ms-sql-s
1947/tcp open     sentinelsrm
2000/tcp open     cisco-sccp
2002/tcp open     globe
3389/tcp open     ms-wbt-server
8080/tcp open     http-proxy
8291/tcp open     unknown

Nmap done: 1 IP address (1 host up) scanned in 14.40 seconds

7.netstat

Често пъти е полезно да разгледате мрежовите статистики. Командата netstat се използва в UNIX/Linux, за да покаже информация за TCP/IP връзките и протокола. Командата netstat предоставя списък с връзки, които са текущо активни:

sami@sami:~$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 sami.local:41531        178.132.81.26:https     ESTABLISHED
tcp        0      0 sami.local:60985        fa-in-f125.:xmpp-client ESTABLISHED
tcp        0      0 sami.local:43473        core2-vlan100.itser:ssh ESTABLISHED
tcp        0      0 sami.local:39614        kwaimuk.canonical:https ESTABLISHED
tcp        0      0 sami.local:41700        178.132.81.53:https     ESTABLISHED
tcp        1      0 sami.local:36768        mistletoe.canonica:http CLOSE_WAIT

Можете да видите протоколите, използвани за всяка връзка, името на локалния компютър и номера на порта, използвани за връзката, „чуждестранният” (foreign) адрес (името на отдалечения компютър) и състоянието на връзката. Netstat статистиките могат да бъдат полезни при отстраняване на проблеми с TCP/IP връзките. Следващият пример показва изобилието от информация, предоставяна в режим на обобщение (ключът -s). Докладите за грешки са особено полезни при диагностициране на проблеми с хардуера и маршрутизирането.

sami@sami:~$ netstat -s
Ip:
    5765 total packets received
    51 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    5535 incoming packets delivered
    4510 requests sent out
    2 dropped because of missing route
Icmp:
    76 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 24
        timeout in transit: 44
        echo replies: 8
    16 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 8
        echo request: 8
IcmpMsg:
        InType0: 8
        InType3: 24
        InType11: 44
        OutType3: 8
        OutType8: 8
Tcp:
    1087 active connections openings
    0 passive connection openings
    990 failed connection attempts
    21 connection resets received
    5 connections established
    4209 segments received
    3166 segments send out
    26 segments retransmited
    0 bad segments received.
    25 resets sent
Udp:
    1226 packets received
    8 packets to unknown port received.
    0 packet receive errors
    1302 packets sent
UdpLite:
TcpExt:
    9 packets pruned from receive queue because of socket buffer overrun
    4 TCP sockets finished time wait in fast timer
    93 delayed acks sent
    Quick ack mode was activated 5 times
    2 packets directly queued to recvmsg prequeue.
    2 bytes directly received in process context from prequeue
    1762 packet headers predicted
    359 acknowledgments not containing data payload received
    163 predicted acknowledgments
    26 other TCP timeouts
    10 packets collapsed in receive queue due to low socket buffer
    5 DSACKs sent for old packets
    19 connections reset due to unexpected data
    2 connections reset due to early user close
    TCPBacklogDrop: 2
    TCPRcvCoalesce: 1611
IpExt:
    InMcastPkts: 67
    OutMcastPkts: 69
    InBcastPkts: 108
    OutBcastPkts: 34
    InOctets: 3298366
    OutOctets: 580832
    InMcastOctets: 7154
    OutMcastOctets: 7234
    InBcastOctets: 15950
    OutBcastOctets: 4436

8. tcpdump

tcpdump е най използвания инструмент за прослушване на трафика в мрежата от Линукс шел. tcpdump е общ анализатор на пакети, който работи в командния ред. Програмата позволява на потребителя да преглежда TCP/IP пакети който се изпращат или получават по мрежата в която се намира компютъра. Той е написан през 1987 г. от Van Jacobson, Craig Leres и Steven McCanne които по това време са работели в лабораторията Lawrence Berkeley Laboratory в мрежата Research Group. Tcpdump работи на повечето Unix-подобни операционни системи: Linux, Solaris, BSD, Mac OS X, HP-UX и AIX и др. При тези системи, Tcpdump използва libpcap библиотеката, за прослушване на пакети.

# слуша на vlan100 интерфейс
tcpdump -i vlan100
 
# показва само 10 реда
tcpdump -i vlan100 -c 10
 
# слуша порт 80 без DNS имена
tcpdump -n dst port 80
 
# слуша на vlan100 порт 80
tcpdump -i vlan100 port 80
 
# същото но от порт 81 до 100 без DNS имена
tcpdump -i vlan100 -n portrange 81-100
 
# слуша на vlan100 ип адрес 10.125.3.2
tcpdump -i vlan100 host 10.125.3.2
 
# слуша на vlan100 цялата мрежа 10.125.1.0/24
tcpdump -i vlan100 src net 10.125.1.0/24
 
# слуша на vlan100 порт 80 от ип адрес 10.125.3.2
tcpdump -i vlan100 port 80 and host 10.125.3.2
 
# без DNS имена, vlan100, изключва протокола ssh слуша пакети от ип адрес 10.125.3.2
tcpdump -nl -i vlan100 not port ssh and src host 10.125.3.2
 
# същото но с два ип адреса
tcpdump -nl -i vlan100 not port ssh and src \(10.125.3.2 or 10.125.3.3\)
 
# слуша на vlan100 портове 25, 110 и 143
tcpdump -i vlan100 port \(25 or 110 or 143\)
 
# слуша на vlan100 протокола icmp
tcpdump -n -i vlan100 icmp
 
#  слуша на vlan100 протокола arp
tcpdump -n -i vlan100 arp
 
# слуша на vlan100 трафика през порт 80 в текстов вид
tcpdump -i vlan100 -s 0 -A port 80 | grep GET

9. top, htop

Повечето администратори ползват програмката top, служеща за мониторинг на процесите в Linux която нагледно представя процесите, заемащи най-много ресурси в машината. top е мощно средство за откриване и спиране на проблемни процеси. Но има един съществен недостатък – не можете да разглеждате процесите, намиращи се в списъка най-отдолу. Не че е особено важно, защото активните процеси се изобразяват първи в списъка, подредени по степен на натоварване на процесора. Но все пак понякога е нужно да видим всички тези процеси, То последните нерядко харчат и те доста системни ресурси.Има един интересен проект htop e (GPL) базиран на ncurses, и върши същата работа като top, с тази разлика, че са добавени някои полезни функции. Можете да разглеждате целият списък със стартирани процеси. Освен това са добавени цветове , може да се ползват функционалните клавиши и програмката е доста конфигурируема. htop е с достъпно потребителско меню в долната част на екрана, като например F1 извиква помощна информация, F2 е “Setup”, и така нататък. За разлика от top (която е част на пакета procps и е включена във всяка линукс дистрибуция), htop трябва да сe го инсталира. Първо проверете, дали е налична програмката във вашата дистрибуция. В Debian/Ubuntu/Mint я има и инсталацията се свежда до:

apt-get install htop

RouterOS

10. whois

WHOIS е мрежов протокол използван в Интернет за търсене на имена, IP адреси и мрежови сървъри. WHOIS е самостоятелна услуга, поддържана от самостоятелен протокол в Internet. В един WHOIS сървър се поддържа база от данни с имената, електронните адреси, телефонните номера на регистрирани потребители. Достъпът до базата данни е свободен и се осъществява с помощта на WHOIS клиент посредством WHOIS протокол.

root@host:~# whois itservice-bg.net
 
Whois Server Version 2.0
 
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
 
   Domain Name: ITSERVICE-BG.NET
   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
   Whois Server: whois.PublicDomainRegistry.com
   Referral URL: http://www.PublicDomainRegistry.com
   Name Server: DRAKA.CABLEBULGARIA.BG
   Name Server: ETCH.GCN.BG
   Name Server: NS1.ITSERVICE-BG.NET
   Name Server: NS2.ITSERVICE-BG.NET
   Status: ok
   Updated Date: 11-jan-2012
   Creation Date: 23-jan-2009
   Expiration Date: 23-jan-2013
Domain Name: ITSERVICE-BG.NET 
 
Registrant:
    ITSservice 2009  LTD
    Samuil Arsov        (support@itservice-bg.net)
    Ivan Vazov 50
    Pleven
    ,5800
    BG
    Tel. +359.887371498
    Fax. +359.64800601
 
Creation Date: 23-Jan-2009  
Expiration Date: 23-Jan-2013
 
Domain servers in listed order:
    draka.cablebulgaria.bg
    etch.gcn.bg
    ns1.itservice-bg.net
    ns2.itservice-bg.net
 
Administrative Contact:
    ITSservice 2009  LTD
    Samuil Arsov        (support@itservice-bg.net)
    Ivan Vazov 50
    Pleven
    ,5800
    BG
    Tel. +359.887371498
    Fax. +359.64800601
 
Technical Contact:
    ITSservice 2009  LTD
    Samuil Arsov        (support@itservice-bg.net)
    Ivan Vazov 50
    Pleven
    ,5800
    BG
    Tel. +359.887371498
    Fax. +359.64800601
 
Status:ACTIVE

11. dig

DIG (информация за домейна groper) е ​​мрежово администриране от командния ред инструмент за заявки Domain Name System (DNS) сървъри за имена.
Dig е полезен за отстраняване на неизправности в мрежата и за образователни цели. Dig може да работи в интерактивен режим в командния ред или в пакетен режим четене на искания от операционната система файл.

sami@sami:~$ dig abv.bg
 
; <<>> DiG 9.8.1-P1 <<>> abv.bg
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

12 iftop

iftop слуша мрежовия трафик и показва таблицата на текущата пропускателната способност и в двете посоки на връзките създадени от хостове. iftop трябва да се управлява с достатъчно права, за да се контролира целия мрежов трафик на интерфейса, като на повечето системи това означава, че трябва да се стартира с root. По подразбиране, iftop ще показва имената на хостовете, свързани с адреси преглеждайки пакетите които преминават през рутера.
Scripts

13. bmon

bmon е програма за мониторинг на трафика с множество методи за входни и изходни режими.
Ubuntu

14. nload

nload е конзолно приложение, което следи мрежовия трафик и използването на пропускателната способност в реално време. Тo визуализира и изходящия трафик с втора графикa и предоставя допълнителна информация, като общата сума на прехвърлените данни и мин/макс и използване на мрежата.

15. conntrack

Connection tracking представлява възможноста да поддържате дадена информация
за връзките в таблица, като предназначение и източник на IP адресите и сътветните
портове, видове протоколи, изтичане на времето и състояние на връзката. Firewall-и
които правят това са познати като stateful. На stateful firewall-ите им е присъща
по-голяма сигурност отколкото на тяхните “stateless” дубликати … прости пакетни
филтри. iptables е точно такъв firewall който поддържа таблицата /proc/net/ip_conntrack.

показва броя на връзките:

conntrack -C

показва връзките в SNAT на ип адрес:

conntrack -L -s 10.125.3.5

16. lm-sensors

lm_sensors (Linux мониторинг сензор), е свободен софтуер с отворен код инструмент за Linux, която осигурява инструменти и драйвери за мониторинг на температурите, напрежението и вентилаторите. В интерес на истината lm-sensors не винаги дава точни и добри резултати но в определени моменти е много ценен инструмент.

инсталация:

sudo apt-get install lm-sensors

сканиране:

sudo sensors-detect

преглед:

core2:~# sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +39.0б╟C  (high = +74.0б╟C, crit = +100.0б╟C)
Core 1:       +37.0б╟C  (high = +74.0б╟C, crit = +100.0б╟C)
Core 2:       +37.0б╟C  (high = +74.0б╟C, crit = +100.0б╟C)
Core 3:       +37.0б╟C  (high = +74.0б╟C, crit = +100.0б╟C)
 
w83627hf-isa-0290
Adapter: ISA adapter
in0:          +0.00 V  (min =  +1.09 V, max =  +1.50 V)  ALARM
in1:          +0.00 V  (min =  +1.09 V, max =  +1.50 V)  ALARM
in2:          +0.00 V  (min =  +2.82 V, max =  +3.79 V)  ALARM
in3:          +3.01 V  (min =  +3.06 V, max =  +3.31 V)  ALARM
in4:          +0.00 V  (min =  +0.14 V, max =  +4.08 V)  ALARM
in5:          +0.00 V  (min =  +4.05 V, max =  +3.57 V)  ALARM
in6:          +0.00 V  (min =  +3.57 V, max =  +3.06 V)  ALARM
in7:          +3.33 V  (min =  +3.79 V, max =  +3.82 V)  ALARM
in8:          +3.28 V  (min =  +1.97 V, max =  +3.06 V)  ALARM
fan1:           0 RPM  (min =    0 RPM, div = 2)
fan2:           0 RPM  (min =    0 RPM, div = 2)
fan3:           0 RPM  (min =    0 RPM, div = 2)
temp1:       +127.0б╟C  (high = +125.0б╟C, hyst = +127.0б╟C)  ALARM  sensor = thermistor
temp2:       +127.0б╟C  (high = +80.0б╟C, hyst = +75.0б╟C)  ALARM  sensor = thermistor
temp3:       +127.0б╟C  (high = +80.0б╟C, hyst = +75.0б╟C)  ALARM  sensor = thermistor
cpu0_vid:    +1.300 V
beep_enable: enabled
 
w83793-i2c-0-2f
Adapter: SMBus I801 adapter at 1100
VcoreA:       +1.06 V  (min =  +0.92 V, max =  +1.38 V)
VcoreB:       +1.25 V  (min =  +0.00 V, max =  +2.05 V)
in2:          +1.11 V  (min =  +0.99 V, max =  +1.33 V)
in3:          +0.50 V  (min =  +0.40 V, max =  +0.67 V)
in4:          +1.82 V  (min =  +1.62 V, max =  +1.98 V)
in5:          +3.26 V  (min =  +2.96 V, max =  +3.63 V)
in6:          +0.99 V  (min =  +0.90 V, max =  +1.10 V)
+5V:          +5.09 V  (min =  +4.52 V, max =  +5.50 V)
5VSB:         +5.09 V  (min =  +4.52 V, max =  +5.50 V)
Vbat:         +3.25 V  (min =  +2.70 V, max =  +3.30 V)
fan1:           0 RPM  (min =  712 RPM)  ALARM
fan2:           0 RPM  (min =  712 RPM)  ALARM
fan3:           0 RPM  (min =  712 RPM)  ALARM
fan4:        2054 RPM  (min =  712 RPM)
fan5:           0 RPM  (min =  712 RPM)  ALARM
fan6:           0 RPM  (min =  712 RPM)  ALARM
fan7:        1698 RPM  (min =  712 RPM)
fan8:           0 RPM  (min =  712 RPM)  ALARM
fan9:           0 RPM  (min =  712 RPM)  ALARM
fan10:          0 RPM  (min =  712 RPM)  ALARM
temp1:        +39.0б╟C  (high = +79.0б╟C, hyst = +74.0б╟C)  sensor = Intel PECI
temp2:        -98.0б╟C  (high = +79.0б╟C, hyst = +74.0б╟C)  sensor = Intel PECI
temp3:       -128.0б╟C  (high = +79.0б╟C, hyst = +74.0б╟C)  sensor = Intel PECI
temp4:       -128.0б╟C  (high = +79.0б╟C, hyst = +74.0б╟C)  sensor = Intel PECI
temp5:        +37.0б╟C  (high = +50.0б╟C, hyst = +45.0б╟C)  sensor = thermistor
temp6:        +35.0б╟C  (high = +50.0б╟C, hyst = +45.0б╟C)  sensor = thermistor
intrusion0:  OK
beep_enable: disabled

17. badblocks

badblocks се използва за търсене за лоши сектори на устройство (обикновено на дисков дял). устройство е специален файл, съответстващ на устройството (например / dev/hdc1).

badblocks -v -s /dev/sda1

18. lsmod

lsmod – Показване на състоянието на модулите в ядрото на Linux

core2:~# lsmod
Module                  Size  Used by
act_mirred             12643  0
ifb                    12757  0
ip_set                 26649  0
xt_limit               12638  0
xt_length              12460  0
nf_conntrack_netlink    23101  0
xt_mark                12453  60
xt_multiport           12548  5
xt_TCPMSS              12670  5
xt_tcpudp              12570  7
act_police             12654  5
cls_u32                13071  5
sch_ingress            12744  5
sch_sfq                13172  1361
xt_CLASSIFY            12429  1361
sch_htb                17923  7
iptable_mangle         12536  1
iptable_filter         12536  1
ip_gre                 22164  0
gre                    12531  1 ip_gre
8021q                  19291  0
garp                   13193  1 8021q
stp                    12392  1 garp
nf_nat_pptp            12603  0
nf_conntrack_pptp      12769  1 nf_nat_pptp
nf_conntrack_proto_gre    12974  1 nf_conntrack_pptp
nf_nat_h323            12918  0
nf_conntrack_h323      42413  1 nf_nat_h323
nf_nat_sip             12923  0
nf_conntrack_sip       26054  1 nf_nat_sip
nf_nat_proto_gre       12517  1 nf_nat_pptp
nf_nat_tftp            12422  0
nf_nat_ftp             12460  0
nf_conntrack_tftp      12433  1 nf_nat_tftp
nf_conntrack_ftp       12605  1 nf_nat_ftp
ipt_MASQUERADE         12594  0
iptable_nat            12928  1
nf_nat                 18242  8 iptable_nat,ipt_MASQUERADE,nf_nat_ftp,nf_nat_tftp,nf_nat_proto_gre,nf_nat_sip,nf_nat_h323,nf_nat_pptp
nf_conntrack_ipv4      14078  3 nf_nat,iptable_nat
nf_defrag_ipv4         12483  1 nf_conntrack_ipv4
nf_conntrack           52720  16 nf_conntrack_ipv4,nf_nat,iptable_nat,ipt_MASQUERADE,nf_conntrack_ftp,nf_conntrack_tftp,nf_nat_ftp,nf_nat_tftp,nf_conntrack_sip,nf_nat_sip,nf_conntrack_h323,nf_nat_h323,nf_conntrack_proto_gre,nf_conntrack_pptp,nf_nat_pptp,nf_conntrack_netlink
ip_tables              22042  3 iptable_nat,iptable_filter,iptable_mangle
x_tables               19073  12 ip_tables,iptable_nat,ipt_MASQUERADE,iptable_filter,iptable_mangle,xt_CLASSIFY,xt_tcpudp,xt_TCPMSS,xt_multiport,xt_mark,xt_length,xt_limit
nfnetlink_log          17212  0
nfnetlink              12906  3 nfnetlink_log,nf_conntrack_netlink,ip_set
w83793                 38665  0
w83627hf               26486  0
hwmon_vid              12430  2 w83627hf,w83793
ipmi_msghandler        35965  0
loop                   22641  0
radeon                639136  1
ttm                    48725  1 radeon
drm_kms_helper         27227  1 radeon
snd_pcm                63900  0
snd_page_alloc         13003  1 snd_pcm
drm                   167670  3 drm_kms_helper,ttm,radeon
power_supply           13475  1 radeon
i2c_algo_bit           12841  1 radeon
snd_timer              22917  1 snd_pcm
i3200_edac             12598  0
parport_pc             22364  0
snd                    52850  2 snd_timer,snd_pcm
iTCO_wdt               17081  0
iTCO_vendor_support    12704  1 iTCO_wdt
edac_core              35258  2 i3200_edac
parport                31858  1 parport_pc
acpi_cpufreq           12935  3
mperf                  12453  1 acpi_cpufreq
i2c_i801               16870  0
i2c_core               23876  6 i2c_i801,i2c_algo_bit,drm,drm_kms_helper,radeon,w83793
coretemp               12898  0
shpchp                 31293  0
soundcore              13065  1 snd
video                  17628  0
processor              28157  1 acpi_cpufreq
button                 12937  0
container              12581  0
thermal_sys            18040  2 processor,video
evdev                  17562  3
pcspkr                 12579  0
ext4                  350548  1
crc16                  12343  1 ext4
jbd2                   62015  1 ext4
mbcache                13065  1 ext4
sg                     25874  0
sd_mod                 36136  3
crc_t10dif             12348  1 sd_mod
ata_generic            12479  0
uhci_hcd               26865  0
floppy                 53129  0
ata_piix               29535  3
libata                140589  2 ata_piix,ata_generic
ehci_hcd               40215  0
scsi_mod              162222  3 libata,sd_mod,sg
usbcore               128640  3 ehci_hcd,uhci_hcd
usb_common             12354  1 usbcore
e1000e                124918  0

19. lspci

lspci е помощна програма за показване на информация за PCI шината и устройства, свързани с нея.

core2:~# lspci
00:00.0 Host bridge: Intel Corporation 3200/3210 Chipset DRAM Controller (rev 01)
00:01.0 PCI bridge: Intel Corporation 3200/3210 Chipset Host-Primary PCI Express Bridge (rev 01)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (rev 02)
00:1f.6 Signal processing controller: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem (rev 02)
01:00.0 PCI bridge: Intel Corporation 6700PXH PCI Express-to-PCI Bridge A (rev 09)
01:00.1 PIC: Intel Corporation 6700/6702PXH I/OxAPIC Interrupt Controller A (rev 09)
01:00.2 PCI bridge: Intel Corporation 6700PXH PCI Express-to-PCI Bridge B (rev 09)
01:00.3 PIC: Intel Corporation 6700PXH I/OxAPIC Interrupt Controller B (rev 09)
05:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
05:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0d:00.0 Ethernet controller: Intel Corporation 82573E Gigabit Ethernet Controller (Copper) (rev 03)
0f:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
11:04.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI ES1000 (rev 02)

20. iptraf

iptraf е IP LAN монитор който генерира различни статистики в мрежата, включително информация за TCP, UDP, ICMP и OSPF протоколи. Ethernet натоварване, IP грешки и други статистики.

sudo apt-get install iptraf


Ubuntu
SEO

21. dmesg

dmesg се използва, за да разгледа или контролира съобщенията от буфера на ядрото. Действието по подразбиране е да прочетете всички съобщения от ядрото при стартирани и по време на работа.

dmesg
core2:~# cat /var/log/dmesg | grep e1000
[    1.066729] e1000e: Intel(R) PRO/1000 Network Driver - 1.5.1-k
[    1.066731] e1000e: Copyright(c) 1999 - 2011 Intel Corporation.
[    1.066763] e1000e 0000:05:00.0: Disabling ASPM  L1
[    1.066793] e1000e 0000:05:00.0: setting latency timer to 64
[    1.066914] e1000e 0000:05:00.0: irq 92 for MSI/MSI-X
[    1.240348] e1000e 0000:05:00.0: eth0: (PCI Express:2.5GT/s:Width x4) 00:15:17:96:77:62
[    1.240351] e1000e 0000:05:00.0: eth0: Intel(R) PRO/1000 Network Connection
[    1.240431] e1000e 0000:05:00.0: eth0: MAC: 0, PHY: 4, PBA No: D50868-003
[    1.240440] e1000e 0000:05:00.1: Disabling ASPM  L1
[    1.240462] e1000e 0000:05:00.1: setting latency timer to 64
[    1.240575] e1000e 0000:05:00.1: irq 93 for MSI/MSI-X
[    1.412709] e1000e 0000:05:00.1: eth1: (PCI Express:2.5GT/s:Width x4) 00:15:17:96:77:63
[    1.412712] e1000e 0000:05:00.1: eth1: Intel(R) PRO/1000 Network Connection
[    1.412792] e1000e 0000:05:00.1: eth1: MAC: 0, PHY: 4, PBA No: D50868-003
[    1.412799] e1000e 0000:0d:00.0: Disabling ASPM L0s L1
[    1.412818] e1000e 0000:0d:00.0: setting latency timer to 64
[    1.412955] e1000e 0000:0d:00.0: irq 94 for MSI/MSI-X
[    1.523967] e1000e 0000:0d:00.0: eth2: (PCI Express:2.5GT/s:Width x1) 00:30:48:d3:ee:38
[    1.523970] e1000e 0000:0d:00.0: eth2: Intel(R) PRO/1000 Network Connection
[    1.524152] e1000e 0000:0d:00.0: eth2: MAC: 2, PHY: 2, PBA No: 0100FF-0FF
[    1.524160] e1000e 0000:0f:00.0: Disabling ASPM L0s L1
[    1.524181] e1000e 0000:0f:00.0: setting latency timer to 64
[    1.524320] e1000e 0000:0f:00.0: irq 95 for MSI/MSI-X
[    1.636273] e1000e 0000:0f:00.0: eth3: (PCI Express:2.5GT/s:Width x1) 00:30:48:d3:ee:39
[    1.636275] e1000e 0000:0f:00.0: eth3: Intel(R) PRO/1000 Network Connection
[    1.636344] e1000e 0000:0f:00.0: eth3: MAC: 2, PHY: 2, PBA No: FFFFFF-0FF

22. iptables

iptables mini howto

23. powertop

Консумация на енергия и инструмент за диагностика на захранването.

sudo apt-get install powertop
Summary: 6112.7 wakeups/second,  0.0 GPU ops/second, 0.0 VFS ops/sec and 84.8% CPU use
 
                Usage       Events/s    Category       Description
            216.7 ms/s     4281.1       Interrupt      [3] net_rx(softirq)
             13.4 ms/s     1407.2       Interrupt      [2] net tx(softirq)
            559.7 ms/s       2.0        Process        /usr/lib/quagga/bgpd --daemon -A 127.0.0.1
              4.9 ms/s     212.2        Timer          death_by_timeout
              6.3 ms/s     156.5        Interrupt      [1] timer(softirq)
              1.7 ms/s      22.5        Timer          neigh_timer_handler
              2.4 ms/s      15.6        Process        /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-
             10.6 ms/s       2.0        Process        powertop
              9.4 ms/s      0.00        Interrupt      [93] eth1
              5.5 ms/s      0.00        kWork          do_dbs_timer
              5.4 ms/s      0.00        Interrupt      [92] eth0
             21.9 µs/s       2.0        Process        [ksoftirqd/2]
             15.8 µs/s       2.0        Process        [ksoftirqd/3]
              1.8 ms/s       1.0        Process        [ksoftirqd/0]
              3.1 ms/s      0.00        Interrupt      [94] eth2
            466.8 µs/s       1.0        Interrupt      [7] sched(softirq)
            274.0 µs/s       1.0        Interrupt      [8] hrtimer(softirq)
             97.2 µs/s       1.0        Process        sshd: root@pts/2
             30.6 µs/s       1.0        kWork          cache_reap
             16.8 µs/s       1.0        Timer          ghes_poll_func
              5.1 µs/s       1.0        Timer          clocksource_watchdog
              3.5 µs/s       1.0        kWork          flush_to_ldisc
              1.8 µs/s       1.0        Timer          ipmi_timeout
              1.6 µs/s       1.0        Timer          tcp_write_timer
              2.0 ms/s      0.00        Interrupt      [9] RCU(softirq)
              1.9 ms/s      0.00        Process        [kworker/0:2]
              0.9 ms/s      0.00        Timer          delayed_work_timer_fn
            398.4 µs/s      0.00        Process        [kworker/2:2]
            299.1 µs/s      0.00        Process        init [2]
            124.8 µs/s      0.00        Process        [kworker/u:3]
             88.3 µs/s      0.00        Process        [kworker/3:1]
             57.6 µs/s      0.00        Process        /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:108
             34.4 µs/s      0.00        Process        (squid) -YC -f /etc/squid3/squid.conf
             21.6 µs/s      0.00        kWork          vmstat_update

24. ethstats

ethstats – удобна статистика на мрежовите интерфейси.

sudo apt-get install ethstats
core2:~# ethstats 
total:   609.21 Mb/s In   547.54 Mb/s Out -  87822.0 p/s In   85902.0 p/s Out
  eth0:  328.68 Mb/s In   166.57 Mb/s Out -  41369.0 p/s In   33745.0 p/s Out
  eth1:  121.18 Mb/s In   340.98 Mb/s Out -  29921.0 p/s In   40033.0 p/s Out
  eth2:   76.94 Mb/s In    17.69 Mb/s Out -   8333.0 p/s In    5633.0 p/s Out
  eth2.104:    8.90 Mb/s In     2.19 Mb/s Out -   1064.0 p/s In     808.0 p/s Out
  eth2.523:   66.16 Mb/s In    15.12 Mb/s Out -   6101.0 p/s In    4826.0 p/s Out
  eth3:    0.00 Mb/s In     0.00 Mb/s Out -      0.0 p/s In       0.0 p/s Out
  gre0:    0.00 Mb/s In     0.00 Mb/s Out -      0.0 p/s In       0.0 p/s Out
  tun1:    0.00 Mb/s In     0.03 Mb/s Out -      3.0 p/s In       3.0 p/s Out
  tun2:    7.12 Mb/s In     0.23 Mb/s Out -    733.0 p/s In     430.0 p/s Out
  tun3:    0.01 Mb/s In     0.01 Mb/s Out -      7.0 p/s In       6.0 p/s Out
  tun4:    0.22 Mb/s In     4.72 Mb/s Out -    291.0 p/s In     418.0 p/s Out
  tun5:    0.00 Mb/s In     0.00 Mb/s Out -      0.0 p/s In       0.0 p/s Out

25. taskset

taskset – асоцииране на процес към определено ядро на процесора.
С командата ps axf преглеждаме процесите (може и с htop)

core2:~# ps axf
    PID TTY      STAT   TIME COMMAND
      2 ?        S      0:00 [kthreadd]
      3 ?        S    236:54  \_ [ksoftirqd/0]
      6 ?        S      0:00  \_ [migration/0]
      7 ?        S      2:29  \_ [watchdog/0]
      8 ?        S      0:00  \_ [migration/1]
     10 ?        S      0:36  \_ [ksoftirqd/1]
     12 ?        S      0:02  \_ [watchdog/1]
     13 ?        S      0:00  \_ [migration/2]
     15 ?        S      9:46  \_ [ksoftirqd/2]
     16 ?        S      0:08  \_ [watchdog/2]
     17 ?        S      0:00  \_ [migration/3]
     18 ?        S      0:02  \_ [kworker/3:0]
     19 ?        S     10:27  \_ [ksoftirqd/3]
     20 ?        S      0:40  \_ [watchdog/3]
     21 ?        S<     0:00  \_ [cpuset]
     22 ?        S<     0:00  \_ [khelper]
     23 ?        S      0:00  \_ [kdevtmpfs]
     24 ?        S<     0:00  \_ [netns]
     25 ?        S      0:19  \_ [sync_supers]
     26 ?        S      0:00  \_ [bdi-default]
     27 ?        S<     0:00  \_ [kintegrityd]
     28 ?        S<     0:00  \_ [kblockd]
     31 ?        S      2:46  \_ [kworker/3:1]
     32 ?        S      0:00  \_ [khungtaskd]
     33 ?        S      0:00  \_ [kswapd0]
     34 ?        SN     0:00  \_ [ksmd]
     35 ?        SN     0:00  \_ [khugepaged]
     36 ?        S      0:00  \_ [fsnotify_mark]
     37 ?        S<     0:00  \_ [crypto]
    138 ?        S      0:00  \_ [khubd]
    173 ?        S<     0:00  \_ [ata_sff]
    184 ?        S      0:00  \_ [scsi_eh_0]
    185 ?        S      0:00  \_ [scsi_eh_1]
    187 ?        S      0:00  \_ [kworker/u:2]
    188 ?        S      0:00  \_ [scsi_eh_2]
    189 ?        S      0:00  \_ [scsi_eh_3]
    190 ?        S      0:48  \_ [kworker/u:3]
    207 ?        S      4:49  \_ [kworker/2:2]
    208 ?        S    265:55  \_ [kworker/0:2]
    221 ?        S      0:14  \_ [jbd2/sda1-8]
    222 ?        S<     0:00  \_ [ext4-dio-unwrit]
    503 ?        S<     0:00  \_ [edac-poller]
   1899 ?        S      0:17  \_ [flush-8:0]
  16485 ?        S      6:08  \_ [kworker/0:1]
 322190 ?        S      0:02  \_ [kworker/1:0]
 322295 ?        S      0:02  \_ [kworker/1:2]
 324623 ?        S      0:00  \_ [kworker/2:1]
      1 ?        Ss     0:31 init [2]  
    348 ?        Ss     0:00 udevd --daemon
    474 ?        S      0:00  \_ udevd --daemon
   2289 ?        S      0:00  \_ udevd --daemon
   1858 ?        Sl     1:30 /usr/sbin/rsyslogd -c5
   1914 ?        Ss     0:00 /usr/sbin/atd
   1979 ?        Ss     0:00 /usr/sbin/acpid
   2054 ?        S      0:00 /usr/sbin/hddtemp -d -l 127.0.0.1 -p 7634 -s | /dev/sda
   2075 ?        Ss     1:06 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:108
   2130 ?        S      5:23 /usr/sbin/snmpd -LS6d -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid
   2143 ?        Ss     0:00 /usr/bin/dbus-daemon --system
   2162 ?        Ss     0:00 /usr/sbin/cron
   2203 ?        Ss     0:01 /usr/sbin/sshd
 322988 ?        Ss     0:00  \_ sshd: root@pts/1 
 322993 pts/1    Ss+    0:00  |   \_ -bash
 324651 ?        Ss     0:00  \_ sshd: root@pts/2 
 324656 pts/2    Ss     0:00      \_ -bash
 325167 pts/2    R+     0:00          \_ ps axf
   2221 ?        Ss     0:00 /usr/sbin/squid3 -YC -f /etc/squid3/squid.conf
   2223 ?        S      2:58  \_ (squid) -YC -f /etc/squid3/squid.conf
   2248 ?        S      0:00      \_ (unlinkd)
  15995 tty1     Ss+    0:00 /sbin/getty 38400 tty1
  15996 tty2     Ss+    0:00 /sbin/getty 38400 tty2
  15997 tty3     Ss+    0:00 /sbin/getty 38400 tty3
  15998 tty4     Ss+    0:00 /sbin/getty 38400 tty4
  15999 tty5     Ss+    0:00 /sbin/getty 38400 tty5
  16000 tty6     Ss+    0:00 /sbin/getty 38400 tty6
  16005 ?        Sl     0:01 /usr/sbin/console-kit-daemon --no-daemon
  52128 ?        S     37:13 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
 185550 ?        Ss     2:12 /usr/lib/quagga/zebra --daemon -A 127.0.0.1
 185554 ?        Ss    21:57 /usr/lib/quagga/bgpd --daemon -A 127.0.0.1
 185558 ?        Ss     0:02 /usr/lib/quagga/watchquagga --daemon zebra bgpd

А по долу асоциираме процеса.

taskset -cp 1 185550

В случая имаме 4 ядра:
0 = първо ядро
1 = второ ядро
2 = трето ядро
3 = четвърто ядро

26. smp_affinity

Асоцииране на устройство към ядро на процесор

Първо трябва да прегледаме номерата на устройствата с cat /proc/interrupts

core2:~# cat /proc/interrupts 
            CPU0       CPU1       CPU2       CPU3       
   0:       1870       1310        338         50   IO-APIC-edge      timer
   1:          1          0          1          1   IO-APIC-edge      i8042
   6:          1          1          0          1   IO-APIC-edge      floppy
   7:          1          0          0          0   IO-APIC-edge      parport0
   8:          0          0          1          0   IO-APIC-edge      rtc0
   9:          0          0          0          0   IO-APIC-fasteoi   acpi
  14:        520     328056        520      19037   IO-APIC-edge      ata_piix
  15:          0          0          0          0   IO-APIC-edge      ata_piix
  16:          0          0          0          0   IO-APIC-fasteoi   uhci_hcd:usb3
  17:          0          0          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
  18:          0          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb1, ata_piix, uhci_hcd:usb5, uhci_hcd:usb8
  22:          0          0          0          0   IO-APIC-fasteoi   uhci_hcd:usb7
  23:          0          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb6
  92: 2544239156   44008373          2          1   PCI-MSI-edge      eth0
  93:          2          3  161935823 3988820087   PCI-MSI-edge      eth1
  94:          1  828139906    4127077   39015258   PCI-MSI-edge      eth2
 NMI:     766215      61908      41672     578597   Non-maskable interrupts
 LOC: 2047505432 1299479813  531116521 1813348140   Local timer interrupts
 SPU:          0          0          0          0   Spurious interrupts
 PMI:     766215      61908      41672     578597   Performance monitoring interrupts
 IWI:         33          6         22         34   IRQ work interrupts
 RES:     612444    2008260   42005167    2011006   Rescheduling interrupts
 CAL:       5633   93413552     141842   50985616   Function call interrupts
 TLB:       6154       5446       4202       3254   TLB shootdowns
 TRM:          0          0          0          0   Thermal event interrupts
 THR:          0          0          0          0   Threshold APIC interrupts
 MCE:          0          0          0          0   Machine check exceptions
 MCP:       3526       3526       3526       3526   Machine check polls
 ERR:          0
 MIS:          0

и да асоциираме определено устройство например лан интерфейса eth0 към първото ядро от четириядрен процесор.

echo 1 > /proc/irq/92/smp_affinity

параметъра след echo е както следва:
1 = първо ядро
2 = второ ядро
4 = трето ядро
8 = четвърто ядро
f = всички ядра

27. mii-tool

Тази програма проверява или определя статута на мрежовия интерфейс.

core2:~# mii-tool 
eth0: negotiated, link ok
eth1: negotiated flow-control, link ok
eth2: negotiated 100baseTx-FD, link ok
eth3: no link

320 total views, 2 views today

Напишете коментар