Jak rozwiązywać problemy z łącznością Vagrant + Centos 7 za routerem domowym

0

Próbując skonfigurować niektóre usługi testowe w domu, wpadłem w dziwną sytuację, w której wydaje się, że instancje centos7 nie mogą poprawnie komunikować się przez mój domowy router (netgear r6400), podczas gdy podobnie skonfigurowane instancje centos6 mogą.

Skonfigurowałem prostą maszynę centos6 z httpd (vagrant 1.8.4 - geerlingguy / centos6 (virtualbox, 1.1.2), virtualbox 5.0.26, ansible, yum install) i połącz się z nią za pośrednictwem ip (LAN) 192.168.1.100 Jeśli dodam pojedynczą regułę przekierowania portów dla portu 80 w moim routerze r6400, mogę uzyskać do niego dostęp z zewnątrz, tj. Za pośrednictwem „mydomainname.com”. Jeśli zmienię port na inny, np. 88, zarówno w przekazywaniu portów httpd.conf, jak i routera, zmiany są natychmiast rozpoznawane.

JEDNAK .... kiedy robię to samo z instancją centos 7, mogę uzyskać dostęp tylko do httpd przez LAN ip. Jedyne różnice w mojej konfiguracji to po prostu określenie innego pola błądzącego „centos / 7 (virtualbox, 1606.01)”.

Jestem FAR z guru sieci lub linux, więc bardzo dobrze mogłem przeoczyć coś prostego. Potwierdziłem to firewalld i iptables oba są wyłączone. Nie jestem pewien, jak to ocenić selinux.

Oto wyjście z tcpdump -i enp0s8 -s 65535 >> /opt/tcpdump.txt.

W poniższym:

  • 192.168.1.11 - mój laptop
  • 192.168.1.111 - centos7-httpd
  • 192.168.1.54 - notatka na pewno. brak rezerwacji IP i nie zwraca ping. stare, teraz odłączone urządzenie DHCP?
  • cpe-external.isp.provider.com - od kiedy próbuję uzyskać dostęp do mydomainname.com zewnętrznie

14:51:22.253156 IP centos7-httpd.ssh > 192.168.1.10.55201: Flags [P.], seq 1610946846:1610947034, ack 3839393363, win 314, length 188
14:51:22.263652 IP 192.168.1.10.55201 > centos7-httpd.ssh: Flags [.], ack 188, win 52884, length 0
14:51:22.818952 ARP, Request who-has 192.168.1.54 tell 192.168.1.11, length 46
14:51:23.959272 ARP, Request who-has 192.168.1.54 tell 192.168.1.11, length 46
14:51:23.961179 IP6 fe80::1aaa:2d09:20e8:6a30.33333 > ff02::c.ssdp: UDP, length 146
14:51:23.979378 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [P.], seq 1708141637:1708142038, ack 1590313680, win 260, length 401
14:51:23.979654 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [.], seq 1:2521, ack 401, win 279, length 2520
14:51:23.979707 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [.], seq 2521:5041, ack 401, win 279, length 2520
14:51:23.979753 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [P.], seq 5041:5205, ack 401, win 279, length 164
14:51:23.980131 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [.], ack 5205, win 260, length 0
14:51:24.058616 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [P.], seq 401:868, ack 5205, win 260, length 467
14:51:24.058677 IP 192.168.1.11.54113 > centos7-httpd.kerberos: Flags [P.], seq 2665849367:2665849830, ack 1191583241, win 260, length 463
14:51:24.059194 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [P.], seq 5205:5385, ack 868, win 287, length 180
14:51:24.059276 IP centos7-httpd.kerberos > 192.168.1.11.54113: Flags [P.], seq 1:181, ack 463, win 270, length 180
14:51:24.061688 IP 192.168.1.11.54113 > centos7-httpd.kerberos: Flags [P.], seq 463:930, ack 181, win 260, length 467
14:51:24.061844 IP centos7-httpd.kerberos > 192.168.1.11.54113: Flags [P.], seq 181:360, ack 930, win 279, length 179
14:51:24.061915 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [P.], seq 868:1335, ack 5385, win 260, length 467
14:51:24.062115 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [P.], seq 5385:5564, ack 1335, win 296, length 179
14:51:24.076216 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [P.], seq 1335:1771, ack 5564, win 259, length 436
14:51:24.076250 IP 192.168.1.11.54113 > centos7-httpd.kerberos: Flags [P.], seq 930:1368, ack 360, win 259, length 438
14:51:24.076420 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [P.], seq 5564:6018, ack 1771, win 304, length 454
14:51:24.076468 IP centos7-httpd.kerberos > 192.168.1.11.54113: Flags [P.], seq 360:816, ack 1368, win 287, length 456
14:51:24.092472 STP 802.1d, Config, Flags [none], bridge-id 3000.78:24:ee:50:90:70.4444, length 43
14:51:24.129280 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [.], ack 6018, win 257, length 0
14:51:24.129303 IP 192.168.1.11.54113 > centos7-httpd.kerberos: Flags [.], ack 816, win 257, length 0
14:51:24.204108 IP 192.168.1.11.54113 > centos7-httpd.kerberos: Flags [P.], seq 1368:1803, ack 816, win 257, length 435
14:51:24.204255 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [P.], seq 1771:2208, ack 6018, win 257, length 437
14:51:24.204380 IP centos7-httpd.kerberos > 192.168.1.11.54113: Flags [P.], seq 816:1269, ack 1803, win 296, length 453
14:51:24.204505 IP centos7-httpd.kerberos > 192.168.1.11.54112: Flags [P.], seq 6018:6473, ack 2208, win 312, length 455
14:51:24.254379 IP 192.168.1.11.54113 > centos7-httpd.kerberos: Flags [.], ack 1269, win 260, length 0
14:51:24.254401 IP 192.168.1.11.54112 > centos7-httpd.kerberos: Flags [.], ack 6473, win 260, length 0
14:51:24.819415 ARP, Request who-has 192.168.1.54 tell 192.168.1.11, length 46
14:51:25.713147 IP gateway.tivoconnect > 192.168.1.255.tivoconnect: UDP, length 166
14:51:25.819526 ARP, Request who-has 192.168.1.54 tell 192.168.1.11, length 46
14:51:26.092396 STP 802.1d, Config, Flags [none], bridge-id 3000.78:24:ee:50:90:70.4444, length 43
14:51:26.296344 IP cpe-external.isp.provider.com.54116 > centos7-httpd.kerberos: Flags [S], seq 3514904834, win 8192, options [mss 1260,nop,wscale 8,nop,nop,sackOK], length 0
14:51:26.297392 IP cpe-external.isp.provider.com.54117 > centos7-httpd.kerberos: Flags [S], seq 3514113067, win 8192, options [mss 1260,nop,wscale 8,nop,nop,sackOK], length 0
14:51:26.438969 IP cpe-external.isp.provider.com.54118 > centos7-httpd.kerberos: Flags [S], seq 2521192680, win 8192, options [mss 1260,nop,wscale 8,nop,nop,sackOK], length 0
14:51:26.961276 IP6 fe80::1aaa:2d09:20e8:6a30.33333 > ff02::c.ssdp: UDP, length 146
14:51:26.965271 ARP, Request who-has 192.168.1.54 tell 192.168.1.11, length 46
14:51:27.820018 ARP, Request who-has 192.168.1.54 tell 192.168.1.11, length 46
14:51:28.092498 STP 802.1d, Config, Flags [none], bridge-id 3000.78:24:ee:50:90:70.4444, length 43
14:51:28.632329 IP 192.168.1.10.55201 > centos7-httpd.ssh: Flags [P.], seq 1:37, ack 188, win 52884, length 36

Niektóre polecenia służące do weryfikacji bieżących konfiguracji komputera:

[root@localhost ~]#  iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
[root@localhost ~]# service iptables status
Redirecting to /bin/systemctl status  iptables.service
● iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
[root@localhost ~]# service firewalld status
Redirecting to /bin/systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
[root@localhost ~]# ip route
default via 10.0.2.2 dev eth0  proto static  metric 100
default via 192.168.1.1 dev eth1  proto static  metric 101
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15  metric 100
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.111  metric 100

Aktualizacja 1 Doszedłem do wniosku, że cokolwiek to jest problem, jest specyficzne dla włóczęgów + centos7, i wypróbowałem tę samą podstawową konfigurację z różnymi maszynami z włóczęgi + centos6 i nie miałem żadnych problemów.
Podobnie, stworzyłem niektóre maszyny wirtualne Centos7 VirtualBox „ręcznie” (tj. Z iso) i wydają się działać poprawnie, ale kiedy pakuję ręcznie utworzone maszyny centos7 w błądzące pole, mam problem z zewnętrzną dostępnością.

Aktualizacja 2 Właśnie odkryłem, że usunięcie karty sieciowej NAT rozwiązuje problem. Usunąłem / etc / sysconfig / network-scripts / ifcfg-eth0 zamknij komputer, ręcznie usuń kartę sieciową w VirtualBox, uruchom ponownie i voila - teraz działa dobrze. Nie jestem pewien, dlaczego NAT wydaje się powodować ten problem, ale przynajmniej skupić się na czymś nowym!

swv
źródło
CentOS ma pewne domyślne reguły iptables firewall-cmdoraz wszystkie reguły łączenia portów z selinux. Czy któryś z nich może być przyczyną twojego problemu?
Matt Clark
zaktualizowałem opis, aby to uwzględnić firewalld i iptables oba są wyłączone, ale nie jestem pewien, jak to ocenić selinux. powiedziałem, że bez pewnych specjalnych konfiguracji nie jestem pewien, dlaczego dostęp byłby w porządku z sieci LAN, ale zablokowany, gdy pochodzi z zewnątrz?
swv
Czy próbowałeś geerlingguy/centos7? To pudełko jest zwykle trochę bardziej aktualne niż oficjalne ...
geerlingguy
tak, testowałem z twoim pudełkiem, ale niestety wydaje się, że ma ten sam problem. dlaczego więc doszedłem do wniosku, że to coś z włóczęgą centos / rhel 7 +, a nie tylko jednym lub więcej specyficznych błądzeń. btw, dzięki za wspaniałe pudełka!
swv

Odpowiedzi:

0

Użyj „setenforce 0”, aby przełączyć selinux w tryb zezwalający. Będzie to nadal oceniać problemy, ale nie blokuje akcji, tylko loguj ją. W ten sposób przynajmniej określisz, czy jest to problem z selinuxem, a jeśli tak, to co.

Andrew Meredith
źródło
Wykonałem „setenforce 0”, ale nadal zachowuję się tak samo, tzn. w tcpdump pojawia się trochę aktywności, ale nie mogę się połączyć i nie jestem pewien, co dokładnie pokazuje tcpdump.
swv
„w tcpdump pokazuje się trochę aktywności”. Jeśli możesz wkleić tutaj, może to pomóc
Andrew Meredith
powyższy fragment tcpdump pokazuje, o czym mówiłem, tj. zastąpiłem określony adres IP „cpe-external.isp.provider.com”
swv
Jak twierdzisz, że możesz połączyć formularz na zewnątrz z maszyną wirtualną, gdy nie jest to CentOS 7 na Vagrant, zakładam, że cała rzecz do przodu / NAT działa poprawnie. Czy możesz potwierdzić, że pakiety z zewnątrz docierają do CentOS 7 na maszynie Vagrant? Być może tcpdump z tego komputera?
Andrew Meredith
tcpdump w opisie pochodzi z problematycznej maszyny vagrant-centos7
swv