Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



19.01.2018

Wysoka gęstość

D-Link DGS-3630
16.01.2018

Odporne na korozję

Kamery Panasonic WV-X6531NS i WV-S1531LNS
12.01.2018

Bezpieczny AP

Ubiquiti UAP-AC-SHD
09.01.2018

Zarządzanie i dostępność

Veeam Availability Suite 9.5 U3
04.01.2018

Usługi w chmurze

Citrix XenApp i XenDesktop
27.12.2017

Nowe macierze All-Flash

Dell EMC SC All-Flash SC5020F/SC7020F
21.12.2017

Jak cyberzagrożenia zmieniły...

Na pytanie odpowiada Mukul Chopra, Director, Digital Transformation Centre, COMPAREX
21.12.2017

Rekord świata w SPEC CPU

HPE ProLiant DL385
18.12.2017

Ultrabooki z LTE

Toshiba Tecra X40-D

Linux – obsługa sieci

Data publikacji: 29-09-2017 Autor: Grzegorz Kuczyński

W poprzedniej części cyklu artykułów opisaliśmy podstawy konfiguracji routingu statycznego i jego polityki RPDB (Routing Policy Database). Zaprezentowany został również sposób konfiguracji wielu bram domyślnych. W tej części kontynuujemy omawianie VLAN-ów i mostów oraz innych elementów obsługi sieci w systemie Linux.

Poprzedni artykuł („IT Professional” 9/2017, s. 60) zakończyliśmy na omawianiu przykładowego mostu, po którym VLAN-y były przekazywane w sposób tagowany. Aby zdjąć tagi z ramek Ethernet, należy stworzyć dedykowany interfejs dla danego VLAN-u, np. dla VLAN 1 może to być eth0.1. Tak też zrobiliśmy na wszystkich hostach, oprócz hosta z mostem (w poprzednim przykładzie). Jeżeli zdejmiemy ramki 802.1q na moście, gdzie znajdują się różne VLAN-y, które chcemy odseparować, to osiągniemy odwroty efekt. Otóż w takim przypadku most umożliwi komunikację pomiędzy różnymi VLAN-ami. Widoczny na schemacie 1 host srv2 łączy ze sobą pozostałe dwa hosty srv1 i srv3. Pomimo że każde połączenie jest w innym VLAN-nie, to host srv2 wykonuje swego rodzaju translację.


Pierwszą czynnością będzie ustawienie hosta srv1. Tworzymy interfejs dla VLAN-u 2 i adresujemy go w sieci 10.0.0.0/8:

srv1# ip li ad name vlan2 link v1 type vlan id 2
srv1# ip li set vlan2 up
srv1# ip a a 10.1.1.1/8 dev vlan2

Analogiczną czynność należy wykonać również na hoście srv3, z tym że w tym przypadku używamy VLAN-u 3:

srv3# ip li ad name vlan3 link v4 type vlan id 3
srv3# ip li set vlan3 up
srv3# ip a a 10.2.2.2/8 dev vlan3

Ponieważ połączenie Ethernet hosta srv1 i srv3 przechodzi przez srv2, musimy na nim stworzyć również interfejsy dla naszych VLAN-ów:

srv2# ip li ad name vlan2 link v2 type vlan id 2
srv2# ip li ad name vlan3 link v3 type vlan id 3
srv2# ip li set vlan2 up
srv2# ip li set vlan3 up

Pozostało jeszcze połączyć interfejsy vlan2 i  vlan3 za pomocą mostu. Ponieważ ostatnio robiliśmy to za pomocą komendy ip, to tym razem w celach demonstracyjnych wykonamy to zadanie za pomocą narzędzia brctl, o którym wspominaliśmy w poprzedniej części artykułu.

srv2# brctl addbr br23
srv2# brctl addif br23 vlan2
srv2# brctl addif br23 vlan3
srv2# ip li set br23 up

W poniższy sposób możemy zobaczyć, jakie mosty mamy w systemie:

srv2# brctl show
bridge name bridge id STP enabled interfaces
br23 8000.1ed3bbab4720 no vlan2 vlan3

Możemy też zainicjować komunikację pomiędzy srv1 i srv3 np. za pomocą programu ping. Po rozgłoszeniu adresów MAC będzie można je obserwować za pomocą poniższego polecenia:

srv2# brctl showmacs br23
port no mac addr is local? ageing timer
1 1e:d3:bb:ab:47:20 yes 0.00
1 7a:cb:55:c1:f9:ca no 0.35
2 8a:12:4b:3b:86:2c yes 0.00
2 a2:76:02:54:65:bd no 0.35

Warto zwrócić uwagę, że widzimy tu dwa adresy lokalne i dwa zdalne. Lokalne to adresy interfejsów vlan2 i vlan3 na srv2, natomiast zdalne to adresy hosta srv1 i srv3.

> FILTRACJA RUCHU NA MOSTACH

W schemacie pierwszym host srv2 pracuje jako switch i łączy pozostałe dwa hosty. Wiele popularnych przełączników udostępnia mechanizm zwany Port Security, który wykorzystuje adresy MAC do kontroli urządzeń mogących komunikować się przez dany port. W obecnej konfiguracji jeżeli zmienimy MAC adres np. na hoście srv3, komunikacja nadal będzie działać. System Linux oferuje narzędzie ebtables, które jest interfejsem do zapory na poziomie warstwy drugiej. Jeżeli nie mamy go zainstalowanego w systemie, w większości dystrybucji należy zainstalować pakiet o tej samej nazwie.

Załóżmy, że chcemy zabezpieczyć VLAN 2 i 3 w taki sposób, aby tylko hosty o znanych nam już adresach MAC mogły się przez nie komunikować. W takim wypadku musimy wstawić reguły blokujące do łańcucha FORWARD:

srv2# ebtables -A FORWARD -i vlan3 -s ! a2:76:02:54:65:bd -j DROP
srv2# ebtables -A FORWARD -i vlan2 -s ! 7a:cb:55:c1:f9:ca -j DROP

Domyślną polityką wciąż jest ACCEPT, ale gdy reguły zostaną dopasowane do każdego innego adresu MAC, za co odpowiada wykrzyknik przed samym adresem (negacja), to zostaną odrzucone. Po dodaniu tych reguł komunikacja będzie działać bez zarzutów do czasu, gdy zmienimy adres MAC, np. hosta srv3. Wtedy jego ramki zostaną odrzucone:

srv3# ip link set dev vlan3 address a2:76:02:54:64:bd

[...]

Autor zawodowo zajmuje się informatyką. Jest członkiem społeczności open source, prowadzi blog nt. systemu GNU/Linux.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2013 Presscom / Miesięcznik "IT Professional"