===== VLANy – wstęp ===== ==== [ekstra] Motywacje dla VLANów ==== === Ruch rozgłoszeniowy === 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). === Względy bezpieczeństwa === 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ę. === QoS – quality of service === 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). ==== Streszczenie teorii ==== == Zwykłe porty (access ports) ==
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.! | 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 ''←'', a żeby wymazać znak poprzedzający kursor, naciśnij ''Ctrl'' + ''←''. \\ **Możesz też uruchomić konsolę z ustawionym odpowiednio dla Cisco zachowaniem klawisza ''←'' i ''Delete'' używając {{xterm-delbs.desktop|tego skrótu}}**. Poza switchami serii Cisco Business 350 pozostały sprzęt Cisco z laboratorium działa normalnie. |
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++++ ===== Konfiguracja interfejsów na Linuksie ===== 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
# 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++++ === [Ekstra] Prosta konfiguracja firewalla === //Firewall będzie omawiany później. Tutaj podaję gotowe komendy na potrzeby ćwiczeń// == nftables == 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 -
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 -P FORWARD ACCEPT ip6tables -P FORWARD ACCEPT iptables -F FORWARD ip6tables -F FORWARD