przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
sk1
»
routing_wstep
sk1:routing_wstep
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Trasowanie – wstęp, routing statyczny w Linuksie ====== ===== Routing ===== Trasowanie (routing) – wyznaczenie dalszej drogi, którą zostanie wysłany pakiet. Jest wykonywane na warstwie sieci. Na każdym urządzeniu wyznaczany jest **adres IP następnego skoku** i interface którym pakiet zostanie wysłany (nigdy cała trasa). Urządzenia podejmują decyzję na podstawie **tablicy tras** (routing table, http://en.wikipedia.org/wiki/Routing_table). Tablica routingu - lista znanych sieci i tras do nich.\\ Wpisy w tablicy definiują przynajmniej: * cel - sieć docelową (np. 1.2.0.0/16, 192.168.2.0/24) * trasę - adres następnego skoku (np. 3.4.5.6, 192.168.1.1) lub/i port wyjściowy (slo1, tun2) * typowo podaje się tylko adres następnego skoku * dla sieci bezpośrednio podłączonych podaje się tylko urządzenie * metrykę - koszt wysłania daną trasą pakietu, używany do porównywania tras, (np. 0, 1, 10, 679842) * <html><small></html> w routerach CISCO (na których będą kolejne zajęcia) dodatkowo parametr //administrative distance// (AD), który jest używany do rozstrzygania wyboru trasy jeśli więcej protokołów routingu poda trasę do tej samej sieci<html></small></html> Schemat wyboru trasy: * wybiera się trasy do sieci w których znajduje się docelowy adres o najdłuższej masce, np.:<code>172.21.0.0/16 via 172.16.0.16 dev eth2 172.21.0.0/24 via 172.16.0.24 dev eth2 172.21.0.0/28 via 172.16.0.28 dev eth2</code> pakiet kierowany do 172.21.0.15 zostanie wysłany przez 172.16.0.28, a \\ pakiet kierowany do 172.21.0.55 zostanie wysłany przez 172.16.0.24 * jeśli wybór nie jest jednoznaczny - trasa o najmniejszym koszcie, np.:<code>150.254.44.0/23 dev wlan0 proto kernel scope link src 150.254.45.39 metric 2003 150.254.44.0/23 dev wlan1 proto kernel scope link src 150.254.44.149 metric 1002</code>tu zawsze wybrana jest trasa przez 150.254.44.149, jako ta o niższym koszcie * jeśli wybór nie jest jednoznaczny - pierwsza w tablicy.<code>default via 150.254.44.1 dev wlan0 default via 150.254.130.42 dev eth0</code> Zwykle definiuje się w tablicy tras trasę domyślną. \\ Czasam jest ona traktowana "specjalnie" – pokazywana w osobnym miejscu lub opisana jako //default// (zamiast adresu sieci). \\ Jeśli nie – do zdefiniowania trasy domyślnej używa się adresu 0.0.0.0/0 Sposoby uzyskiwania informacji o trasach: * ręczna konfiguracja * użycie protokołów routingu Protokoły trasowania można podzielić ze względu na obszar działania: * wewnętrzne (IGP - Interior Gateway Protocol), np. RIP, EIGRP, OSPF, IS-IS * zewnętrzna (EGP - Exterior Gateway Protocol) - obecnie (jedynym) używanym jest BGP albo ze względu na sposób działania: * wektora odległości (distance vector), np. RIP, IGRP – znają sąsiadów i koszt dotarcia do istniejących sieci * stanu łącza (link state), np. OSPF, IS-IS – znają wszystkie połączenia w sieci * wektora ścieżki (path-vector), np. BGP, używany tam gdzie sieć jest za duża by w/w działały – znają sąsiadów i ścieżki dotarcia do sieci sobie podległych http://en.wikipedia.org/wiki/Routing ===== Wyświetlanie tablic routingu w systemie Linux ===== Wypisanie trasy - ''route'' / ''ip route [list/show]''\\ Sprawdzenie trasy do konkretnego adresu - ''ip route get [addr]'' ===== Polityka systemu względem ruchu przechodzącego ===== Domyślnie Linux nie pozwala na przekazywanie (forward) pakietów. Aby zmienić to zachowanie, należy wykonać:\\ ''sysctl net.ipv4.conf.all.forwarding=1''\\ <html><small></html>lista dostępnych zmiennych - ''sysctl -a -r 'net\.ipv.\.conf\..*\.forwarding' '' \\ więcej informacji - ''man 8 sysctl'' i ''man 7 ip''<html></small></html>\\ albo starsze ''sysctl net.ipv4.ip_forward=1'' Można też skorzystać z katalogu /proc ''echo 1 > /proc/sys/net/ipv4/ip_forward'' <html><small>Dodatkowo na większości produkcyjnych systemów firewall domyślnie zabrania na przepuszczanie ruchu</small></html> ===== Narzędzia związane z trasowaniem w systemie Linux ===== | Dodanie trasy | ''ip route add <//addr//>/<//mask//> [via <//addr//>] [dev <//ifname//>]'' | | Dodanie trasy przez następny skok | ''ip route add <//addr//>/<//mask//> via <//addr//>'' \\ np.: ''ip r add 192.168.5.0/24 via 192.168.0.254'' | | Dodanie trasy przez urządzenie | ''ip route add <//addr//>/<//mask//> dev <//ifname//>'' \\ np.: ''ip r add 192.168.6.0/24 dev tun0'' | | Dodanie trasy domyślnej | ''ip route add default via <//następny skok//> [dev <//urządzenie//>]'' \\ np.: ''ip r add default via 192.168.0.1'' | | Usunięcie trasy | ''ip route del <//specyfkacja trasy//>'' \\ np.: ''ip r del 192.168.5.0/24 via 192.168.0.254'' | | Usunięcie całej tablicy routinug | ''ip route flush'' | Trasa może definiować zarówno urządzenie jak i adres następnego skoku. Podanie samego urządzenia starczy tylko w specjalnych przypadkach, takich jak np. sieć bezpośrednio połączona. Przy definiowaniu trasy można podać też inne opcje mające wpływ na wybór trasy (''metric, src, mtu'') jak i też na sposób wysyłania nią pakietów (np. opcje TCP). Pomoc: ''man route '' / '' man ip-route'' Narzędzia do sprawdzania trasy pakietu: * ''tracepath'' * ''traceroute'' (w sali lab. potrzeba przełącznika ''-T'' lub ''-I'' do ominięcia firewalla) * ''mtr'' Pętle routingu (przypomnienie). <html><small></html> Specjalne trasy odrzucające pakiety - ''throw unreachable prohibit blackhole'', np:\\ ''ip r a blackhole 10.0.0.0/8'' \\ ''ip r a unreachable 10.0.0.0/8'' \\ (zamiast takich tras zaleca się stosowanie firewalla) <html></small></html> **[[http://www.cs.put.poznan.pl/mlibuda/routing_stat_Linux.pdf|Slajdy]]** ===== Appendix: Komendy dla Windowsa ===== * Obsługa tablicy routingu – polecenie ''route'' * Wyświetlenie tablicy tras ''route print'' * Dodanie trasy: ''route add <SIEĆ> mask <MASKA> <NEXT_HOP>'' (np. ''route add 192.168.1.0 mask 255.255.255.0 10.0.0.1'') * Usunięcie trasy ''route delete <SIEĆ>'' (uwaga! jeśli jest wiele tras do tego samego adresu sieci z różnymi maskami – wszystkie będą usunięte!) * Sprawdzenie trasy ''tracert'' * Włączenie ruchu przechodzącego: * Wpisanie wartości ''1'' typu DWORD do ''HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter'' * Podobne działanie daje udostępnienie połączenia internetowego (ppm na połączeniu sieciowym / "Właściwości" / karta "Udostępnianie" / "Zezwalaj innym użytkownikom sieci na łączenie się poprzez połączenie internetowe tego komputera")
sk1/routing_wstep.1460378537.txt.gz
· ostatnio zmienione: 2016/04/11 14:42 przez
jkonczak
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry