W poprzednim wpisie stworzyliśmy sieci logiczne, które teraz warto skomunikować ze światem. Stworzymy dziś połączenie pomiędzy światem realnym i wirtualnym za pomocą edge services gateway (ESG). Na wstępie klika słów o ESG. ESG jest to rozbudowany router z następującymi funkcjonalnościami:
- Firewall
- NAT
- Router obsługujący protokoły
- BGP
- OSPF
- STATIC
- VPN
- IPSEC
- SSL VPN
- Load Balancer
- HA
Każdej funkcjonalności z osobna przyjrzymy się w późniejszym czasie, dziś skupimy się jedynie na podstawowej konfiguracji.
Poniżej rysunek poglądowy jak będą wyglądać nasze połączenia.
Przechodzimy do działania, logujemy się do naszego vCenter, przechodzimy do Networking & Security, a następnie NSX Edges, gdzie wybieramy zielony plusik
W nowym oknie wybieramy Edge Services Gateway, nadajemy nazwę oraz hostname.
W kolejnym wpisie skupię się na Logical (Distributed) Router, a jeszcze w kolejnym postaram się opisać różnice pomiędzy nimi.
Klikamy next
w kolejnym oknie nadajemy hasło do konta admin, możemy również zmienić nazwę tego użytkownika, włączamy SSH.
Przechodzimy do kolejnego okna, gdzie wybieramy wielkość ESG oraz konfigurujemy interfejsy.
Klikając plusik konfigurujemy NSX Edge Appliances, w nowym oknie wybieramy następujące pola: klaster, gdzie ma być uruchomiona wirtualna maszyna, na którym datastore ma być przechowywana, na którym hoście uruchomiona oraz w którym katalogu ma być ona umieszczona.
Klikamy ok, wracamy do ostatniego okna gdzie klikamy next
W nowym oknie klikając na plusik otworzy nam się okno, w którym będziemy konfigurować interfejs uplinkowy, nadajemy mu nazwę, typ, wybieramy gdzie ma być podłączony (w naszym przypadku do port grupy na switchu dystrybucyjnym o nazwie uplink_vlan_200) oraz nadajemy adres ip na tym interfejsie.
Powtarzamy krok dla sieci, która jest w postaci vxlan (na sam koniec posta przedstawię jak inaczej przypisać interfejs do ESG)
klikamy ok i wracamy do ostatniego okna klikając next
w kolejnym oknie konfigurujemy routing domyślny oraz wybieramy interfejs dla niego
Wnastępnym oknie mamy możliwość włączenia Firewalla oraz określenia domyślnej polityki. Na naszym przykładzie włączyliśmy FW z domyślną polityką accept oraz włączyliśmy logowanie.
W kolejnym oknie dostajemy podsumowanie naszej konfiguracji. Po kliknięciu Finish zostanie utworzona maszyna wirtualna.
Poniżej przedstawię jak po utworzeniu ESG przypisać sieć VXLAN10001 do niego. Przechodzimy w module NSX do Logical Switches, gdzie wybieramy naszą sieć i klikamy na zaznaczoną ikonę
W nowo otwartym oknie wybieramy, do którego ESG ma być podłączona sieć
W kolejnym oknie wybieramy, do którego interfejsu ma być podłączona ta sieć
W jeszcze kolejnym oknie adresujemy interfejs oraz musimy zmienić status na Connected
W następnym oknie, klikamy Finish i zostanie podłączona sieć do ESG
Testy
rysunek poglądowy
sprawdzamy komunikację z 172.16.10.10 do 172.16.11.10
root@photon-cb64c1f92f04 [ ~ ]# ping 172.16.11.10 PING 172.16.11.10 (172.16.11.10) 56(84) bytes of data. 64 bytes from 172.16.11.10: icmp_seq=1 ttl=63 time=1.16 ms 64 bytes from 172.16.11.10: icmp_seq=2 ttl=63 time=1.13 ms 64 bytes from 172.16.11.10: icmp_seq=3 ttl=63 time=1.13 ms ^C --- 172.16.11.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.130/1.144/1.168/0.042 ms
sprawdzamy dostęp do sieci Internet z hosta 172.16.10.10
root@photon-cb64c1f92f04 [ ~ ]# tracepath 8.8.8.8 1?: [LOCALHOST] pmtu 1500 1: 172.16.10.1 0.577ms 1: 172.16.10.1 0.345ms 2: 10.20.200.1 0.719ms 3: 192.168.0.1 0.938ms 4: 192.168.1.1 1.195ms 5: no reply 6: 89-75-11-219.infra.chello.pl 10.774ms 7: pl-waw26b-rc1-ae14-2163.aorta.net 11.716ms asymm 10 8: pl-waw26b-ri1-ae2-0.aorta.net 9.305ms 9: no reply 10: no reply
Jak widać wszystko działa.
Za pomocą SSH łączymy się do naszego ESG sprawdzimy kilka komend
Tablica ARP
esg01-0> show arp ----------------------------------------------------------------------- vShield Edge ARP Cache: IP Address Interface MAC Address State 10.20.200.1 vNic_0 00:0c:29:2f:cb:7f REACHABLE 172.16.12.10 vNic_3 00:50:56:bb:e0:d9 STALE 172.16.11.10 vNic_2 00:50:56:82:3b:3e STALE 172.16.10.10 vNic_1 00:50:56:bb:c6:7f REACHABLE
tablica routingu
esg01-0> show ip route Codes: O - OSPF derived, i - IS-IS derived, B - BGP derived, C - connected, S - static, L1 - IS-IS level-1, L2 - IS-IS level-2, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 Total number of routes: 5 S 0.0.0.0/0 [1/1] via 10.20.200.1 C 10.20.200.0/24 [0/0] via 10.20.200.253 C 172.16.10.0/24 [0/0] via 172.16.10.1 C 172.16.11.0/24 [0/0] via 172.16.11.1 C 172.16.12.0/24 [0/0] via 172.16.12.1
Wyświetlenie polityki firewall o id 0
esg01-0> show firewall rule-id 0 Chain INPUT (policy ACCEPT 0 packets, 0 bytes) rid pkts bytes target prot opt in out source destination 0 977 881K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
Tablica FLOW na Firewall
esg01-0> show firewall flows Chain PREROUTING (policy ACCEPT 12160 packets, 1928K bytes) rid pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) rid pkts bytes target prot opt in out source destination 0 932 875K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 1108 170K block_in all -- * * 0.0.0.0/0 0.0.0.0/0 0 823 77417 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 285 92215 usr_rules all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 10111 packets, 871K bytes) rid pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 1578 packets, 1105K bytes) rid pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) rid pkts bytes target prot opt in out source destination 0 932 875K ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 0 21 3816 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 10736 1098K block_out all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-in tap0 --physdev-out vNic_+ 0 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-in vNic_+ --physdev-out tap0 0 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-in na+ --physdev-out vNic_+ 0 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-in vNic_+ --physdev-out na+ 0 10516 973K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 220 125K usr_rules all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain block_in (1 references) rid pkts bytes target prot opt in out source destination Chain block_out (1 references) rid pkts bytes target prot opt in out source destination Chain usr_rules (2 references) rid pkts bytes target prot opt in out source destination 131074 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 match-set 0_131074-os-v4-1 src 131073 505 217K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "ACCEPT_131073" ------ flow info for rule 131073 ------ 1: tcp 6 1 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51789 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51789 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 2: tcp 6 21599 ESTABLISHED src=192.168.0.250 dst=172.16.10.1 sport=50405 dport=22 pkts=821 bytes=77217 src=172.16.10.1 dst=192.168.0.250 sport=22 dport=50405 pkts=629 bytes=224825 [ASSURED] mark=262144 rid=131073 use=1 3: tcp 6 2 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51791 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51791 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 4: tcp 6 5 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51794 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51794 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 5: tcp 6 9 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51798 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51798 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 6: tcp 6 17685 ESTABLISHED src=192.168.0.250 dst=172.16.10.10 sport=50001 dport=22 pkts=307 bytes=27653 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=50001 pkts=268 bytes=42057 [ASSURED] mark=262144 rid=131073 use=1 7: icmp 1 9 src=192.168.0.250 dst=172.16.10.10 type=8 code=0 id=1 pkts=3698 bytes=221880 src=172.16.10.10 dst=192.168.0.250 type=0 code=0 id=1 pkts=3698 bytes=221880 mark=262144 rid=131073 use=1 8: tcp 6 4 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51793 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51793 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 9: tcp 6 16696 ESTABLISHED src=192.168.0.250 dst=172.16.12.10 sport=50066 dport=22 pkts=75 bytes=7781 src=172.16.12.10 dst=192.168.0.250 sport=22 dport=50066 pkts=81 bytes=13857 [ASSURED] mark=262144 rid=131073 use=1 10: tcp 6 0 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51788 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51788 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 11: tcp 6 7 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51796 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51796 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 12: udp 17 38 src=0.0.0.0 dst=255.255.255.255 sport=68 dport=67 pkts=279 bytes=91791 [UNREPLIED] src=255.255.255.255 dst=0.0.0.0 sport=67 dport=68 pkts=0 bytes=0 mark=262144 rid=131073 use=2 13: tcp 6 8 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51797 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51797 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 14: tcp 6 17611 ESTABLISHED src=192.168.0.250 dst=172.16.11.10 sport=49973 dport=22 pkts=694 bytes=66749 src=172.16.11.10 dst=192.168.0.250 sport=22 dport=49973 pkts=572 bytes=89945 [ASSURED] mark=262144 rid=131073 use=1 15: tcp 6 6 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51795 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51795 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 16: tcp 6 3 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51792 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51792 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 ---------------------------------- 131073 505 217K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ------ flow info for rule 131073 ------ 1: tcp 6 1 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51789 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51789 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 2: tcp 6 21599 ESTABLISHED src=192.168.0.250 dst=172.16.10.1 sport=50405 dport=22 pkts=821 bytes=77217 src=172.16.10.1 dst=192.168.0.250 sport=22 dport=50405 pkts=629 bytes=224825 [ASSURED] mark=262144 rid=131073 use=1 3: tcp 6 2 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51791 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51791 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 4: tcp 6 5 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51794 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51794 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 5: tcp 6 9 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51798 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51798 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 6: tcp 6 17685 ESTABLISHED src=192.168.0.250 dst=172.16.10.10 sport=50001 dport=22 pkts=307 bytes=27653 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=50001 pkts=268 bytes=42057 [ASSURED] mark=262144 rid=131073 use=1 7: icmp 1 9 src=192.168.0.250 dst=172.16.10.10 type=8 code=0 id=1 pkts=3698 bytes=221880 src=172.16.10.10 dst=192.168.0.250 type=0 code=0 id=1 pkts=3698 bytes=221880 mark=262144 rid=131073 use=1 8: tcp 6 4 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51793 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51793 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 9: tcp 6 16696 ESTABLISHED src=192.168.0.250 dst=172.16.12.10 sport=50066 dport=22 pkts=75 bytes=7781 src=172.16.12.10 dst=192.168.0.250 sport=22 dport=50066 pkts=81 bytes=13857 [ASSURED] mark=262144 rid=131073 use=1 10: tcp 6 0 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51788 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51788 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 11: tcp 6 7 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51796 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51796 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 12: udp 17 38 src=0.0.0.0 dst=255.255.255.255 sport=68 dport=67 pkts=279 bytes=91791 [UNREPLIED] src=255.255.255.255 dst=0.0.0.0 sport=67 dport=68 pkts=0 bytes=0 mark=262144 rid=131073 use=2 13: tcp 6 8 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51797 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51797 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 14: tcp 6 17611 ESTABLISHED src=192.168.0.250 dst=172.16.11.10 sport=49973 dport=22 pkts=694 bytes=66749 src=172.16.11.10 dst=192.168.0.250 sport=22 dport=49973 pkts=572 bytes=89945 [ASSURED] mark=262144 rid=131073 use=1 15: tcp 6 6 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51795 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51795 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 16: tcp 6 3 CLOSE src=192.168.0.250 dst=172.16.10.10 sport=51792 dport=22 pkts=4 bytes=172 src=172.16.10.10 dst=192.168.0.250 sport=22 dport=51792 pkts=3 bytes=153 [ASSURED] mark=262144 rid=131073 use=1 ----------------------------------
W kolejnym wpisie przyjrzymy się funkcjonalności NSX Edge ale pod postacią DLR’a.