VyOS + CISCO w GNS3
VyOS to system operacyjny spełniający rolę routera. Jest on darmowy i oparty na Debianie. W tym wpisie pokażę jak połączyć router CISCO i VyOS w programie GNS3.
VyOS można uruchomić pod GNS3 na kilka sposobów, ja pokaże najłatwiejszy według mnie, czyli import appliance. W tym celu wchodzimy na stronę www.gns3.com/marketplace/appliances wybieramy VyOS i ściągamy plik vyos.gns3a. Następnie otwieramy GNS3 i wybieramy File -> Import appliance
W trakcie importowania pojawi się następujące okienko:
Będziemy mieli do wyboru kilka wersji systemu VyOS, jeśli nie mamy obrazu *.iso, oraz pliku z obrazem dysku *.qcow2 dostaniemy w polu Status informacje: Missing lub Missing files. Brakujące pliki możemy pobrać klikając przycisk Download w prawym dolnym rogu, a następnie po pobraniu wciskamy przycisk Import w celu zaimportowania plików. Po tych operacjach powinniśmy w statusie mieć na zielono Found i Ready to Install.
Jak mamy Ready to install to klikamy kilkukrotnie next i czekamy chwilę aż maszyna się załaduje do GNS3. Jak wszystko przebiegło pomyślnie to w GNS3 w All devices powinniśmy zobaczyć router VyOS:
VYOS + CISCO PRZYKŁAD:
Teraz zobaczmy możliwości VyOS na prostym przykładzie. Topologia składa się z dwóch routerów. Routera Cisco R1 (c7200) oraz routera VyOS. Routery połączone są ze sobą bezpośrednio zgodnie z poniższą topologią.
Konfiguracja R1:
interface FastEthernet0/0 ip address 192.168.10.1 255.255.255.0
Konfiguracja VyOS:
vyos@vyos:~$ configure [edit] vyos@vyos# [edit] vyos@vyos# set interfaces ethernet eth0 address 192.168.10.2/24 [edit] vyos@vyos# commit [edit] vyos@vyos# save Saving configuration to '/config/config.boot'... Done
Status interfejsu na R1:
R1#show ip int brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 192.168.10.1 YES manual up up
Status interfejsu na VyOS:
vyos@vyos:~$ show int
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 192.168.10.2/24 u/u
eth1 - u/u
eth2 - u/u
lo 127.0.0.1/8 u/u
::1/128
Sprawdźmy teraz łączność pomiędzy routerami:
R1#ping 192.168.10.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/9/12 ms
vyos@vyos# ping 192.168.10.1 PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data. 64 bytes from 192.168.10.1: icmp_req=1 ttl=255 time=32.8 ms 64 bytes from 192.168.10.1: icmp_req=2 ttl=255 time=5.85 ms ^C --- 192.168.10.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 5.854/19.346/32.839/13.493 ms
Jak mamy już podstawową łączność między routerami zrobioną to spróbujmy skonfigurować pomiędzy routerami protokół routingu OSPF. Skonfigurujmy w tym celu na routerach intefejsy loopback i rozgłośmy je w OSPF.
Konfiguracja R1:
interface Loopback0 ip address 10.0.10.1 255.255.255.0 ! router ospf 10 network 10.0.10.0 0.0.0.255 area 0 network 192.168.10.0 0.0.0.255 area 0 !
vyos@vyos# set interfaces loopback lo address 10.0.0.1/24 [edit] vyos@vyos# set protocols ospf area 0 network 192.168.10.0/24 [edit] vyos@vyos# set protocols ospf area 0 network 10.0.0.1/24 [edit] vyos@vyos# commit
Po wydaniu komendy commit na vyos na konsoli routera dostaniemy następującą informację:
R1# *Nov 19 20:45:17.287: %OSPF-5-ADJCHG: Process 10, Nbr 192.168.10.2 on FastEthernet0/0 from LOADING to FULL, Loading Done R1#
Co oznacza, że utworzyła się relacja sąsiedztwa pomiędzy routerami. Zweryfikujmy to wydając komendy show ip ospf neighbor:
R1#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 192.168.10.2 1 FULL/BDR 00:00:30 192.168.10.2 FastEthernet0/0
vyos@vyos:~$ show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 192.168.10.1 1 Full/DR 38.945s 192.168.10.1 eth0:192.168.10.2 0 0 0
Oba routery mają status FULL, router vyos został routerem designated (DR) natomiast router R1 routerem backup designated (BDR). Sprawdźmy teraz tablicę routingu obu routerów:
R1#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP + - replicated route, % - next hop override Gateway of last resort is not set 10.0.0.0/24 is subnetted, 1 subnets O 10.0.0.1/24 [110/11] via 192.168.10.2, 00:00:14, FastEthernet0/0 192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.10.0/24 is directly connected, FastEthernet0/0 L 192.168.10.1/32 is directly connected, FastEthernet0/0
vyos@vyos:~$ show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected route, * - FIB route O 10.0.0.0/24 [110/10] is directly connected, lo, 00:05:03 C>* 10.0.0.0/24 is directly connected, lo O>* 10.0.10.0/24 [110/11] via 192.168.10.1, eth0, 00:00:06 C>* 127.0.0.0/8 is directly connected, lo O 192.168.10.0/24 [110/10] is directly connected, eth0, 00:07:50 C>* 192.168.10.0/24 is directly connected, eth0
PODSUMOWANIE
VyOS jest bardzo dobrą alternatywą dla tradycyjnych routerów. Jak widać konfiguracja jest bardzo podobna do routerów firmy CISCO, właściwie większość komend typu show jest identycznych. Dodatkową zaletą jest to, że obraz VyOS jest całkowicie darmowy, więc możemy go postawić na dowolnym komputerze i cieszyć się z możliwości jakie daje, bez konieczności wydawania pieniędzy na drogie rozwiązania sprzętowe.