Rutowanie i przełączanie w sieciach komputerowych

Transkrypt

Rutowanie i przełączanie w sieciach komputerowych
Rutowanie i przełączanie w sieciach
komputerowych
Zadanie 1
Piotr Tomczyk
Paweł Tarasiuk
16 sierpnia 2013
1
1
Wstęp
Wszystkie polecenia wprowadzono w systemie Linux Ubuntu 12.10 zainstalowanym w środowisku VirtualBox
(z użyciem NAT).
1
2
user@ubuntu−VB: ~ $ uname −s r v
Linux 3.5.0 −17 − g e n e r i c #28−Ubuntu SMP Tue Oct 9 1 9 : 3 2 : 0 8 UTC 2012
2
Używając odpowiednich programów zbadać dostępność różnych hostów
Ćwiczenie polega na zbadaniu dostępności wybranych serwerów. Najoczywistszym narzędziem do sprawdzania
dostępności jest ping, który wysyła pakiety ICMP ECHO_REQUEST do hostów sieciowych i wypisuje informacje
na temat odebranych odpowiedzi.
2.1
1
2
3
4
5
6
7
8
9
10
user@ubuntu−VB: ~ $ p i n g 1 0 . 0 . 2 . 2 −c4
PING 1 0 . 0 . 2 . 2 ( 1 0 . 0 . 2 . 2 ) 5 6 ( 8 4 ) b y t e s o f data .
64 b y t e s from 1 0 . 0 . 2 . 2 : icmp_req=1 t t l =63 time =0.367
64 b y t e s from 1 0 . 0 . 2 . 2 : icmp_req=2 t t l =63 time =0.576
64 b y t e s from 1 0 . 0 . 2 . 2 : icmp_req=3 t t l =63 time =0.541
64 b y t e s from 1 0 . 0 . 2 . 2 : icmp_req=4 t t l =63 time =0.477
Hosta znajdujący się w domenie p.lodz.pl
user@ubuntu−VB: ~ $ p i n g edu . p . l o d z . p l −c4
PING edu . p . l o d z . p l ( 2 1 2 . 1 9 1 . 9 1 . 2 1 ) 5 6 ( 8 4 ) b y t e s o f
64 b y t e s from proxy . edu . p . l o d z . p l ( 2 1 2 . 1 9 1 . 9 1 . 2 1 ) :
64 b y t e s from proxy . edu . p . l o d z . p l ( 2 1 2 . 1 9 1 . 9 1 . 2 1 ) :
64 b y t e s from proxy . edu . p . l o d z . p l ( 2 1 2 . 1 9 1 . 9 1 . 2 1 ) :
64 b y t e s from proxy . edu . p . l o d z . p l ( 2 1 2 . 1 9 1 . 9 1 . 2 1 ) :
data .
icmp_req=1
icmp_req=2
icmp_req=3
icmp_req=4
t t l =63
t t l =63
t t l =63
t t l =63
time =162
time =154
time =151
time =147
ms
ms
ms
ms
−−− edu . p . l o d z . p l p i n g s t a t i s t i c s −−−
4 p a c k e t s t r a n s m i t t e d , 4 r e c e i v e d , 0% p a c k e t l o s s , time 3005ms
r t t min/ avg /max/mdev = 1 4 7 . 7 7 6 / 1 5 4 . 1 9 4 / 1 6 2 . 3 5 6 / 5 . 3 6 0 ms
2.3
1
2
3
4
5
6
7
8
9
10
ms
ms
ms
ms
−−− 1 0 . 0 . 2 . 2 p i n g s t a t i s t i c s −−−
4 p a c k e t s t r a n s m i t t e d , 4 r e c e i v e d , 0% p a c k e t l o s s , time 2999ms
r t t min/ avg /max/mdev = 0 . 3 6 7 / 0 . 4 9 0 / 0 . 5 7 6 / 0 . 0 8 1 ms
2.2
1
2
3
4
5
6
7
8
9
10
Host znajdujący się w tej samej podsieci
Host znajdujący się poza granicami kraju
user@ubuntu−VB: ~ $ p i n g g o o g l e −p u b l i c −dns−a . g o o g l e . com −c4
PING g o o g l e −p u b l i c −dns−a . g o o g l e . com ( 8 . 8 . 8 . 8 ) 5 6 ( 8 4 ) b y t e s o f data .
64 b y t e s from g o o g l e −p u b l i c −dns−a . g o o g l e . com ( 8 . 8 . 8 . 8 ) : icmp_req=1
64 b y t e s from g o o g l e −p u b l i c −dns−a . g o o g l e . com ( 8 . 8 . 8 . 8 ) : icmp_req=2
64 b y t e s from g o o g l e −p u b l i c −dns−a . g o o g l e . com ( 8 . 8 . 8 . 8 ) : icmp_req=3
64 b y t e s from g o o g l e −p u b l i c −dns−a . g o o g l e . com ( 8 . 8 . 8 . 8 ) : icmp_req=4
t t l =63
t t l =63
t t l =63
t t l =63
time =143
time =166
time =161
time =135
ms
ms
ms
ms
−−− g o o g l e −p u b l i c −dns−a . g o o g l e . com p i n g s t a t i s t i c s −−−
4 p a c k e t s t r a n s m i t t e d , 4 r e c e i v e d , 0% p a c k e t l o s s , time 3004ms
r t t min/ avg /max/mdev = 1 3 5 . 2 2 7 / 1 5 1 . 6 7 6 / 1 6 6 . 0 3 3 / 1 2 . 7 3 2 ms
Zgodnie z oczekiwaniami, czas odpowiedzi pochodzącej od hosta z tej samej podsieci był znacznie (w naszym
przypadku, ponad dwieście razy) krótszy, niż w przypadku hostów pochodzących z innych sieci. Natomiast wybrany
host znajdujący się poza granicami Polski dał porównywalne czasy odpowiedzi z hostem domeny p.lodz.pl.
2
3
Zbadać własny adres IP
Własny adres IP jest jedną z informacji podawanych przez narzędzie ifconfig. Zaproponowane poniżej polecenie
wypisuje interesujące nas linie, wybrane spośród informacji o wszystkich włączonych interfejsach sieciowych.
1
2
3
user@ubuntu−VB: ~ $ i f c o n f i g | g r e p " i n e t addr "
i n e t addr : 1 0 . 0 . 2 . 1 5
Bcast : 1 0 . 0 . 2 . 2 5 5
i n e t addr : 1 2 7 . 0 . 0 . 1 Mask : 2 5 5 . 0 . 0 . 0
4
Mask : 2 5 5 . 2 5 5 . 2 5 5 . 0
Zbadać własny adres fizyczny
Stosując składnię podobną jak w poprzednim poleceniu, wybraliśmy te linie spośród wyjścia polecenia ifconfig,
które zawierają informacje o adresach fizycznych.
1
2
user@ubuntu−VB: ~ $ i f c o n f i g | g r e p "HWaddr"
eth0
Link encap : E t h e r n e t HWaddr 0 8 : 0 0 : 2 7 : a4 : 5 6 : 2 c
5
Wyświetlić tablicę rutingu
Tablicę rutingu można odczytać za pomocą polecenia route. Zastosowany parametr powoduje numeryczne
wypisanie adresów IP nawet wtedy, gdy znane są nazwy zawartych w tablicy rutingu hostów.
1
2
3
4
5
6
user@ubuntu−VB: ~ $ r o u t e −n
K e r n e l IP r o u t i n g t a b l e
Destination
Gateway
0.0.0.0
10.0.2.2
10.0.2.0
0.0.0.0
169.254.0.0
0.0.0.0
6
Genmask
0.0.0.0
255.255.255.0
255.255.0.0
Flags
UG
U
U
Metric
0
1
1000
Ref
0
0
0
Use
0
0
0
Iface
eth0
eth0
eth0
Zbadać adres fizyczny i IP bramy domyślnej
Informacje o adresie fizycznym oraz IP bramy domyślnej można odczytać z systemowego bufora arp za pomocą
polecenia arp.
1
2
3
user@ubuntu−VB: ~ $ arp 1 0 . 0 . 2 . 2
Address
HWtype
10.0.2.2
ether
7
HWaddress
52:54:00:12:35:02
F l a g s Mask
C
Iface
eth0
Zmienić zawartość pliku hosts. Wykazać rezultaty zmiany.
W systemach uniksopodobnych lokacją pliku hosts jest /etc/hosts. Po ręcznym dodaniu do tego pliku informacji
o przyporządkowaniu nazwy mnemonicznej do adresu IP, będziemy mogli łączyć się ze wskazanym hostem za pomocą
zdefiniowanej przez siebie nazwy.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
user@ubuntu−VB: ~ $ c a t / e t c / h o s t s
127.0.0.1
localhost
127.0.1.1
ubuntu−VB
# The f o l l o w i n g l i n e s a r e d e s i r a b l e f o r IPv6 c a p a b l e h o s t s
::1
ip6 −l o c a l h o s t ip6 −l o o p b a c k
f e 0 0 : : 0 ip6 −l o c a l n e t
f f 0 0 : : 0 ip 6 −m c a s t p r e f i x
f f 0 2 : : 1 ip 6 −a l l n o d e s
f f 0 2 : : 2 ip 6 −a l l r o u t e r s
user@ubuntu−VB: ~ $ p i n g f t i m s
p i n g : unknown h o s t f t i m s
user@ubuntu−VB: ~ $ p i n g f t i m s . p . l o d z . p l −c1
PING f t i m s . p . l o d z . p l ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) 5 6 ( 8 4 ) b y t e s o f data .
64 b y t e s from pomocnik . i c s . p . l o d z . p l ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) : icmp_req=1 t t l =63 time =145 ms
3
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
−−− f t i m s . p . l o d z . p l p i n g s t a t i s t i c s −−−
1 p a c k e t s t r a n s m i t t e d , 1 r e c e i v e d , 0% p a c k e t l o s s , time 0ms
r t t min/ avg /max/mdev = 1 4 5 . 0 7 8 / 1 4 5 . 0 7 8 / 1 4 5 . 0 7 8 / 0 . 0 0 0 ms
user@ubuntu−VB: ~ $ sudo bash −c " echo ’ 2 1 2 . 5 1 . 2 2 0 . 2 5 0 f t i m s ’ >> / e t c / h o s t s "
[ sudo ] password f o r u s e r :
user@ubuntu−VB: ~ $ p i n g f t i m s
PING f t i m s ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) 5 6 ( 8 4 ) b y t e s o f data .
64 b y t e s from f t i m s ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) : icmp_req=1 t t l =63 time =167 ms
64 b y t e s from f t i m s ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) : icmp_req=2 t t l =63 time =174 ms
64 b y t e s from f t i m s ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) : icmp_req=3 t t l =63 time =184 ms
64 b y t e s from f t i m s ( 2 1 2 . 5 1 . 2 2 0 . 2 5 0 ) : icmp_req=4 t t l =63 time =417 ms
^C
−−− f t i m s p i n g s t a t i s t i c s −−−
4 p a c k e t s t r a n s m i t t e d , 4 r e c e i v e d , 0% p a c k e t l o s s , time 3005ms
r t t min/ avg /max/mdev = 1 6 7 . 2 4 1 / 2 3 6 . 0 1 3 / 4 1 7 . 8 7 8 / 1 0 5 . 1 7 6 ms
Krótkie objaśnienie: w linii (1) wypisany na ekran został aktualny plik hostów, w którym nie znajdował się adres
„ftims”, co widać przy próbie wysłania pinga na ten adres (11). Po ustaleniu (13) i dopisaniu (20) odpowiedniego
adresu IP z etykietką „ftims”, adres jest już widoczny dla systemu (22).
8
1
2
3
4
Zbadać z jakich serwerów DNS korzysta host
user@ubuntu−VB: ~ $ c a t / e t c / r e s o l v . c o n f
# Dynamic r e s o l v . c o n f ( 5 ) f i l e f o r g l i b c r e s o l v e r ( 3 ) g e n e r a t e d by r e s o l v c o n f ( 8 )
#
DO NOT EDIT THIS FILE BY HAND −− YOUR CHANGES WILL BE OVERWRITTEN
nameserver 1 2 7 . 0 . 1 . 1
Niestety adres 127.0.1.1 nie dostarcza nam zadowalającej informacji. Jak wspomniano we wstępie polecenia wykonywane są na systemie Ubuntu, który do zarządzania siecią używa programu NetworkManager, dlatego też do niego
należy odwołać się, aby uzyskać adres zewnętrznego serwera DNS, z którego korzysta system:
1
2
user@ubuntu−VB: ~ $ nm−t o o l | g r e p DNS
DNS :
192.168.44.1
Uzyskany adres sprawdzamy za pomocą polecenia dig, którego wynik potwierdza, że jest to działający adres serwera
DNS.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
user@ubuntu−VB: ~ $ d i g @192 . 1 6 8 . 4 4 . 1 f t i m s . edu . p . l o d z . p l
; <<>> DiG 9 . 8 . 1 − P1 <<>> @192 . 1 6 8 . 4 4 . 1 f t i m s . edu . p . l o d z . p l
; ( 1 s e r v e r found )
; ; g l o b a l o p t i o n s : +cmd
; ; Got answer :
; ; −>>HEADER<<− opcode : QUERY, s t a t u s : NOERROR, i d : 22463
; ; f l a g s : q r rd r a ; QUERY: 1 , ANSWER: 2 , AUTHORITY: 0 , ADDITIONAL : 0
; ; QUESTION SECTION :
; f t i m s . edu . p . l o d z . p l .
; ; ANSWER SECTION :
f t i m s . edu . p . l o d z . p l .
proxy . edu . p . l o d z . p l .
;;
;;
;;
;;
80973
43186
IN
A
IN
IN
CNAME
A
proxy . edu . p . l o d z . p l .
212.191.91.21
Query time : 37 msec
SERVER: 1 9 2 . 1 6 8 . 4 4 . 1 # 5 3 ( 1 9 2 . 1 6 8 . 4 4 . 1 )
WHEN: Tue Mar 5 0 0 : 3 3 : 5 3 2013
MSG SIZE r c v d : 86
4

Podobne dokumenty