Инструментите на мрежовия администратор в линукс рутера
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
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 ще показва имената на хостовете, свързани с адреси преглеждайки пакетите които преминават през рутера.

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

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
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
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. traffic control
Debian – Traffic Control: Linux Advanced Traffic Control
Linux Traffic Shaper per IP – Iptables CLASSIFY
Linux Traffic Shaper ifb interface
28. policy routnig
Policy Routing – iptables mark routing
Policy Routing – sample split access
Policy Routing – iptables mark port and protocol
29. mii-tool
Тази програма проверява или определя статута на мрежовия интерфейс.
core2:~# mii-tool
eth0: negotiated, link ok
eth1: negotiated flow-control, link ok
eth2: negotiated 100baseTx-FD, link ok
eth3: no link



