Portál AbcLinuxu, 6. května 2025 07:39
Listen ip:port
a v pure-ftpd /etc/pure-ftpd/conf/Bind (zkoušel jsem i ForcePassiveIP)
ip,port
nicméně toto obě služby ignorují a čuchají si z obou ip náhodně, což je u portforwardu nedobře :)
O teamu síťovek jsem nevěděl, takže díky za navedení a u mikrotiku to ověřím.
čuchají si z obou ip náhodněNerozumím, co si mám pod tímhle představit. Jinak tou konfigurací, na jaké IP adrese budou služby naslouchat, ovlivníte to, přes kterou IP adresu budou ty služby přijímat spojení. Nezabráníte tomu, aby někdo poslal požadavek na spojení na druhou IP adresu (ale tam nic nebude naslouchat, takže se spojení nenaváže), a také tím neovlivníte, z jaké IP adresy se budou navazovat odchozí spojení z toho serveru (s výjimkou datových spojení FTP, která by se měla navazovat ze stejné IP adresy, na jakou je navázáno řídící spojení – ale to by si měl server zajistit sám). Ve vašem popisu nic o odchozích spojeních nepíšete, takže by vám to asi nemělo vadit, připomínám to jen pro jistotu.
ip route show
?
Nicmene pro prichozi tcp spojeni nedava smysl aby stroj odpovidal z jine IP nez na jakou bylo navazano spojeni.
default via 192.168.2.254 dev enp1s0f0 proto static metric 100
default via 192.168.2.254 dev enp1s0f1 proto static metric 101
169.254.0.0/16 dev enp1s0f0 scope link metric 1000
192.168.2.0/24 dev enp1s0f0 proto kernel scope link src 192.168.2.4 metric 100
192.168.2.0/24 dev enp1s0f1 proto kernel scope link src 192.168.2.44 metric 101
root@BOTICKA-SRV4:/home/wagicb#
a ještě jsem teď narazil na poznatek, služby mi fungují z venku (portforwardem) na tu ip, resp. ethernet, který vidím z těch dvou jako výchozí.
default via 192.168.2.254 dev enp1s0f0 proto static metric 100
default via 192.168.2.254 dev enp1s0f1 proto static metric 101
169.254.0.0/16 dev enp1s0f0 scope link metric 1000
192.168.2.0/24 dev enp1s0f0 proto kernel scope link src 192.168.2.4 metric 100
192.168.2.0/24 dev enp1s0f1 proto kernel scope link src 192.168.2.44 metric 101
omlouvám se, špatně jsem to sem vložil
accept()
, to v jádru v důsledku vede k vygenerování odpovědního paketu – a funkce accept()
nemá žádný parametr, kterým by volající mohl nastavit IP adresu, pod kterou se odpoví. Tu adresu nastavuje jádro a nastavuje tam adresu, na kterou přišel požadavek – nemá žádný smysl, aby tam jádro dávalo cokoli jiného.
NAT v tom může způsobit problém jedině tak, že odpovědní paket nepřiřadí správně k příchozímu spojení a nezmění v něm správně adresy. To by ten NAT ale musel být hodně divně nakonfigurovaný. Nejčastěji se to děje tehdy, pokud klient je ve stejné síti jako server, dělá se jen DNAT a server tedy odpoví klientovi přímo, nikoli přes NAT – takže NAT ani nemá možnost ten odpovědní paket upravit.
nicméně paket má cilovou adresu a jde do routovani, podle ceho si vybere cestu ke klientovi?Pokud nejsou nastavena pravidla pro výběr routovacích tabulek a použije se routovací tabulka ve výchozím nastavení, odpoví server přímo, protože bude v routovací tabulce specifický záznam pro subnet s klientem. Píšete tedy o situaci, kdy klient i server jsou na stejném subnetu, ale server má ještě jinou IP adresu (třeba veřejnou)? Klient naváže (přes router ale bez NATu) spojení na tu IP adresu serveru z jiného rozsahu, server odpovídá z té své (veřejné) IP adresy z jiného rozsahu, ale odpovídá na klientovu IP adresu ze stejného rozsahu, takže paket pošle přímo. Klient paket příjme, protože odpovídá paketu, kterým navazoval spojení – a spojení se tedy normálně naváže a komunikace funguje. Není to úplně typická situace, protože pakety v jednom směru jdou jinou cestou, než pakety v opačném směru, ale není to nic špatného – internet má přesně takhle fungovat. Rozbilo by se to jedině tehdy, pokud by někde cestou bylo nějaké sledování spojení (které by vidělo jen polovinu toho spojení), nebo pokud by na tom serveru byl filtr, který by kontroloval, že odpovědní pakety odcházejí stejným rozhraním, kterým přišel požadavek.
ja jsem nikde nepsal ze se zmeni IP odesilatele v paketu, vznikne packet s cílovou adresou a vstupuje do routování.Vznikne paket s cílovou adresou (původní zdrojovou adresou paketu, který zahajoval spojení) a se zdrojovou adresou, na kterou přišel požadavek (původní cílovou adresou paketu, který navazoval spojení). Pokud v cestě není žádný NAT, jsou to přesně ty adresy (a porty), na které klient navazoval spojení (akorát jsou prohozené), takže klient pozná, ke kterému spojení paket patří a pokračuje v navazování spojení. Vy jste ale původně psal o případu, kdy klientovi přijde jako „odpověď“ paket s jinou zdrojovou IP adresou, než kam původně posílal klient požadavek na zahájení spojení. A takový případ může nastat jedině tehdy, pokud je v cestě (špatně nakonfigurovaný) NAT, který tu IP adresu změní (ale jenom v jednom směru putování paketu).
A takový případ může nastat jedině tehdy, pokud je v cestě (špatně nakonfigurovaný) NAT, který tu IP adresu změní (ale jenom v jednom směru putování paketu).
V praxi je mnohem častější situace, kdy ten NAT sice není špatně nakonfigurovaný, ale paket v opačném směru z nějakého důvodu nejde přes něj.
Například ten webdav poslouchá na druhé ip, ale odpovídá na prvníTo není možné (pokud „odpovědí“ myslíte odpovědní pakety TCP/IP spojení). Když přijde paket s požadavkem na otevření TCP/IP spojení, musí paket, který na to odpovídá, mít jako odesílající adresu nastavenou tu IP adresu, na kterou přišel požadavek. Jinak by se TCP/IP spojení vůbec nenavázalo. A běžným způsobem to ani nejde změnit, aplikace pouze přijme spojení, ale příslušné IP adresy v paketu nastavuje přímo OS. Něco jiného je, když aplikace sama navazuje spojení, tam si může zdrojovou IP adresu určit.
V podstatě všechny ostatní služby odpovídají jen na tu první IP (SSH, VNC atp.)Naslouchají na obou IP adresách, ale komunikaci se podaří navázat jen při navázání spojení na jednu z nich? To by mohl ovlivnit ještě firewall nebo špatná konfigurace sítě.
potrebujes dve routovacie tabulky, kedze mas jednu default GW pre obe IPcky
https://serverfault.com/questions/524054/simple-multihomed-linux-server-issue
toto by ta malo naviest na spravnu stopu :) GL
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.