Dydaktyka:
FeedbackTo jest stara wersja strony!
Wraz ze wzrostem liczby użytkowników w sieci wzrasta ilość pakietów
rozgłoszeniowych.
Np. każde urządzenie wysyła co jakiś czas pakiety ARP z pytaniem "jaki
MAC ma podane IP", drukarki rozgłaszają że istnieją, switche sprawdzają czy nie
ma pętli, urządzenia i programy od Apple szukają siebie nawzajem, klienci
Dropboksa szuka innych klientów Dropboksa w lokalnej sieci.
Duża ilość takich pakietów (dostarczanych do każdego, niezależnie od tego czy
go te pakiety interesują czy nie) może negatywnie wpłynąć na działanie sieci,
szczególnie bezprzewodowej.
Żeby zmniejszyć ruch rozgłoszeniowy, można podzielić domeny rozgłoszeniowe przez
podzielenie użytkowników na osobne sieci.
Zauważ że na warstwie łącza danych ramki wysyłane na adres rozgłoszeniowy
trafiają do wszystkich – nawet jeśli urządzenia należą do innych sieci IP,
więc potrzeba osobnych urządzeń warstwy łącza danych (switchy).
Dla bezpieczeństwa w sieci użytkownicy powinni mieć dostęp tylko do wybranych
zasobów.
Np. użytkownicy korzystający z WiFi dla gości mają mieć dostęp jedynie do
internetu i nie powinni mieć dostępu do żadnych zasobów, pracownicy (poza
wskazanymi działami) nie mają mieć dostępu do serwerów kadrowo-płacowych,
tylko administratorzy mają mieć dostęp do zarządzania sprzętem.
Do egzekwowanie takich zasad służą firewalle (o których będzie później w
semestrze).
Gdzie umieścić taki firewall jeśli pracownicy i punkty dostępu do WiFi dla gości
są w całym budynku, pracownicy działu kadr, płac i księgowości siedzi w kilku
miejscach a każdym sprzętem musi zarządzać administrator?
Żeby móc w jednym miejscu zarządzać firewallem, można dla każdej z grup których mają dotyczyć inne reguły (np. goście, pracownicy, kadry-płace, administratorzy sieci) stworzyć oddzielną sieć złożoną z osobnych urządzeń. Potem wszystkie sieci podłącza się do urządzenia pełniącego rolę firewalla i na nim – w jednym miejscu – wykonuje potrzebną konfigurację.
W sieciach może pojawić się potrzeba "lepszego" traktowania wybranego ruchu – np. rozmów telefonicznych (VoIP). Zwykły Ethernet nie daje takiej możliwości, ale można stworzyć osobne sieci np. dla ruchu który ma być obsługiwany w pierwszej kolejności, a potem na routerch priorytetowo traktować wybrany ruch (NB: pakiety IP mają pole DiffServ określające priorytety).
Technologia VLAN pozwala skonfigurować jeden (fizyczny) switch tak by zmienił się w kilka (wirtualnych) switchy, które zachowują się tak jakby były zupełnie odrębnymi urządzeniami.
Aby połączyć switch na którym jest kilka VLANów z innym urządzeniem (i nie musieć używać po jednym porcie z każdego VLANu) można skonfigurować wybrane porty tak, by przesyłały ruch z wielu VLANów po jednym porcie, oznaczając odpowiednio każdą ramkę numerem VLANu z którego pochodzi (ang. VLAN tagging). Taką możliwość daje standard 802.1Q i jest ona powszechnie wspierana przez urządzenia sieciowe. Cisco nazywa port na który mogą pojawiać się ramki z wielu VLANów trunkiem.
W ramce Ethernet II znacznik (tag) dodaje się między adresy MAC a pole EtherType, ustawiając w miejscu tego pola stałą wartość (
0x8100
)
która pozwala odróżniać tagowane ramki od nietagowanych.
Ilustracja z wikipedii
RS-232 - standard szeregowej transmisji danych. Dawniej łączono terminal z komputerem po RS-232, potem używano go do łączenia komputerów ze sobą i z urządzeniami zewnętrznymi (np. myszą). Został zastąpiony przez standard USB, jednak w tej chwili wciąż wiele urządzeń wciąż korzysta / wspiera ten protokół. Na jego bazie powstało wiele nowych i powiązanych protokołów.
Cisco (i inni producenci sprzętu sieciowego) używa części standardu RS-232 do łączenia swoich produktów przez port zwany konsolą (console) z komputerami. Cisco nie używa standardowych gniazd, port konsoli jest gniazdem 8P8C vel RJ-45 (szczegóły).
W wielu komputerach i laptopach nie montuje się portów RS-232, w razie potrzeby należy użyć z konwertera USB ↔ RS-232.
Obsługa portu szeregowego RS-232 (w Windowsie nazywanego portem COM) możliwa jest przy pomocy następujących narzędzi:
picocom [-b<baud>] /dev/tty<reszta_nazwy_pliku_portu>
(wyjście z picocom: ctrl+a ctrl+q
) picocom -b115200 /dev/ttyS0
minicom [-s]
putty
Do prawidłowej pracy portu szeregowego należy z obu stron ustawić identyczne parametry – ilość bitów danych, stopu i parzystość (np. 8N1), prędkość (np. 9600, 115200), sterowanie przepływem (np. wyłączone).
! |
Switche serii Cisco Business 350 używane na zajęciach oczekują znaku
ASCII 'delete' do usunięcia znaku spod kursora i znaku ASCII 'backspace' do
usunięcia znaku przed kursorem. Choć to oczekiwanie brzmi to rozsądnie,
normalnie naciśnięcie klawisza ← generuje znak ASCII 'delete', a naciśnięcie
klawisza Delete generuje sekwencję '\e[3~'.
W konsoli Cisco Business 350, żeby wymazać znak spod kursora, naciśnij Poza switchami serii Cisco Business 350 pozostały sprzęt Cisco z laboratorium działa normalnie. |
Większość urządzeń Cisco pracuje pod kontrolą systemu IOS.
Na stronach Cisco można znaleźć instrukcję obsługi linii poleceń.
Autouzupełnianie, poruszanie się po różnych trybach:
?
podpowiada możliwe komendy i ich składnietab
autouzupełnia komendyexit
wychodzi o jeden tryb w górę, działa do trybu uprzywilejowanegodisable
wychodzi z trybu uprzywilejowanego (porównaj: enable
)end
/ ctrl+z
cofa się do trybu uprzywilejowanegodo <komenda>
pozwala wykonać komendę z wcześniejszego poziomu - np. komendę show vlan
w trybie konfiguracji configure terminal
wystarczy conf t
no …
odwraca działanie komendy
Tryb użytkownika - prompt >
show …
pozwala na pokazanie (w tym trybie tylko części) stanu i ustawień enable
przechodzi do trybu uprzywilejowanego (i zwykle wymaga podania hasła)Tryb uprzywilejowany - prompt
#
show …
pozwala na pokazanie stanu i ustawień show interfaces status
podsumowanie interface'ów switchashow interfaces [switchport [GigabitEthernet 1]]
(długa) informacja o interface'achshow vlan
pokazanie przypisanie portów do VLANów show vlan tag <numer>
/ show vlan name <nazwa>
- pokazanie porty przypisane do wybranego VLANaconfigure terminal
przechodzi do trybu konfiguracjiTryb konfiguracji - prompt
(config) #
hostname <nazwa>
ustawienia nazwy urządzeniavlan <numer> [name <nazwa>]
konfiguruje nowy VLAN, ewentualnie nadając mu nazwęinterface <nazwa interface'u>
- wejście w tryb ustawień podanego interface'u - prompt (config-if) #
, np: interface Gi 1
– GigaEthernet (ethernet 1Gbit) interface Vlan 4
– ustawienia wspólne dla całego VLANu switchport access vlan <nr_vlana>
dołącza port do wybranego vlanu vlan…
konfiguracja może1) nie działaćswitchport mode access
ustawia port jako zwykły port należący do wybranego vlanu (domyślne zachowanie portu)switchport mode trunk
ustawia port by był trunkiem (portem przekazującym ruch z wielu vlanów, ze znacznikami)switchport trunk native vlan {<num>|none}
wybiera jeden vlan dla którego ramki nie będą tagowane w trybie trunkDodatkowo:
show running-config
- konfiguracja (dostępna w trybie uprzywilejowanym)show mac address-table
- informacje o tym, jaki adres MAC był widziany na którym porcieshow cdp neighbors
- pokazuje sąsiednie urządzenia Cisco używając Cisco Discovery Protocolshow ip interface
- pokazuje adresy IP ustawione dla interfejsów vlan, pozwalające na zdalna administrację switchem ip address <ip> /<maska>
- wykonane z trybu konfiguracji interfejsu vlan (uwaga na spację między IP i maską!)ping <ip>
switch# show vlan Created by: D-Default, S-Static, G-GVRP, R-Radius Assigned VLAN, V-Voice VLAN Vlan Name Tagged Ports UnTagged Ports Created by ---- ----------------- ------------------ ------------------ ---------------- 1 1 gi3-28,Po1-8 D 2 2 gi3 gi1 S 3 moja_nazwa gi3 gi2 S switch# show interfaces switchport GigabitEthernet 3 S-VLAN Ethernet Type: 0x8100 (802.1q) VLAN Mapping Tunnel L2 protocols Global CoS: 5 Name: gi3 Switchport: enable Administrative Mode: trunk Operational Mode: up Access Mode VLAN: 1 Access Multicast TV VLAN: none Trunking Native Mode VLAN: 1 Trunking VLANs: 1-3,5 4,6-4094 (Inactive) General PVID: 1 General VLANs: none General Egress Tagged VLANs: none General Forbidden VLANs: none General Ingress Filtering: enabled General Acceptable Frame Type: all General GVRP status: disabled Customer Mode VLAN: none Customer Multicast TV VLANs: none Private-vlan promiscuous-association primary VLAN: none Private-vlan promiscuous-association Secondary VLANs: none Private-vlan host-association primary VLAN: none Private-vlan host-association Secondary VLAN: none VLAN Mapping Tunnel - no resources VLAN Mapping One-To-One - no resources Classification rules: Classification type Group ID VLAN ID ------------------- -------- ------- switch# show interfaces status Flow Link Back Mdix Port Type Duplex Speed Neg ctrl State Pressure Mode -------- ------------ ------ ----- -------- ---- ----------- -------- ------- gi1 1G-Copper Full 1000 Enabled Off Up Disabled On gi2 1G-Copper Full 1000 Enabled Off Up Disabled On gi3 1G-Copper Full 1000 Enabled Off Up Disabled On gi4 1G-Copper -- -- -- -- Down -- -- gi5 1G-Copper -- -- -- -- Down -- -- switch#show mac address-table Flags: I - Internal usage VLAN Aging time is 300 sec Vlan Mac Address Port Type ------------ --------------------- ---------- ---------- 1 c0:2c:17:30:7a:22 gi3 dynamic 1 c0:2c:17:30:7a:23 gi3 dynamic 1 c0:2c:17:30:a3:41 0 self 2 9c:54:16:69:ff:42 gi1 dynamic 2 9c:54:16:69:ff:43 gi1 dynamic 3 9c:54:16:6a:07:13 gi2 dynamic 3 9c:54:16:6a:07:14 gi2 dynamic switch#sh ip interface IP Address I/F I/F Status Type Directed Prec Redirect Status admin/oper Broadcast ------------------ --------- ---------- ------- --------- ---- -------- ------ 10.0.0.254/24 vlan 5 UP/UP Static disable No enable Valid
Do prawidłowego skonfigurowania w Linuksie połączenia na którym pojawiają się
ramki z oznaczeniem VLANów, należy dla każdego z takich vlanów dodać nowy
wirtualny interfejs komendą:
ip link add link <nazwa_istniejącego_interfejsu> <nazwa_nowego_interfejsu> type vlan id <numer_vlan>
np. ip link add link eth0 eth0.2 type vlan id 2
Taki interfejs można usunąć komendą ip link del <nazwa>
.
W wynikach szczegółowej listy interfejsów – ip --detail link show
– są
wyświetlane numery VLANów dla interfejsów vlan.
Pamiętaj o włączeniu przekazywania pakietów komendami:
sysctl -a net.ipv4.conf.all.forwarding=1
sysctl -a net.ipv6.conf.all.forwarding=1
Przykład konfiguracji routera na Linuksie:
# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:11:38:f0:41:00 brd ff:ff:ff:ff:ff:ff # # ip link add eth0.10 link eth0 type vlan id 10 # ip link add eth0.20 link eth0 type vlan id 20 # # ip link set eth0 up # ip link set eth0.10 up # ip link set eth0.20 up # # ip link add 192.168.10.1/24 dev eth0.10 # ip link add 192.168.20.1/24 dev eth0.20 # # ip -d address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:11:38:f0:41:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 3: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:11:38:f0:41:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 inet 192.168.10.1/24 brd 192.168.10.255 scope global valid_lft forever preferred_lft forever 4: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:11:38:f0:41:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 20 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 inet 192.168.20.1/24 brd 192.168.20.255 scope global valid_lft forever preferred_lft forever # ip route 192.168.10.0/24 dev eth0.10 proto kernel scope link src 192.168.10.1 192.168.20.0/24 dev eth0.20 proto kernel scope link src 192.168.20.1 # sysctl net.ipv4.conf.all.forwarding=1
Firewall będzie omawiany później. Tutaj podaję gotowe komendy na potrzeby ćwiczeń
Wprowadzenie konfiguracji:
echo '
table inet intervlan {
chain filterforward {
type filter hook forward priority filter; policy drop;
oifname "br0" accept;
iifname "eth0.2" oifname "eth0.3" counter accept;
iifname "eth0.3" ct state established counter accept;
counter;
};
}
' | nft -f -
nft list ruleset
Usunięcie konfiguracji: nft delete table inet intervlan
Wprowadzenie konfiguracji:
iptables -P FORWARD DROP
ip6tables -P FORWARD DROP
iptables -A FORWARD -o br0 -j ACCEPT
ip6tables -A FORWARD -o br0 -j ACCEPT
iptables -A FORWARD -i eth0.2 -o eth0.3 -j ACCEPT
ip6tables -A FORWARD -i eth0.2 -o eth0.3 -j ACCEPT
iptables -A FORWARD -i eth0.3 -m conntrack --ctstate ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i eth0.3 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -vL
i ip6tables -vL
Usunięcie konfiguracji:
iptables -P FORWARD ACCEPT
ip6tables -P FORWARD ACCEPT
iptables -F FORWARD
ip6tables -F FORWARD