Fórum Root.cz
Hlavní témata => Server => Téma založeno: Green_Raul 08. 06. 2013, 09:45:15
-
Zdravím,
mám CentOS 6.4 server se dvěma síťovkama.
Eth0 - (LAN segment připojený do switche) - 192.168.93.2/24
Eth1 - (WAN segment připojený do routeru od ISP) - 192.168.90.2/24
Router od ISP má adresu 192.168.90.1, kterou jsem nastavil jako default gw. Server nyní může do internetu, ale nedaří se mi proroutovat LAN segment na WAN a nastavit maškarádu... IP forwarding je zapnutý.
Poradíte prosím někdo? Díky.
-
Ahoj,
pomocí iptables:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
service iptables save
service iptables restart
-
Ahoj,
díky za odpověď - to bylo první co jsem zkusil, ale nic.
[root@srvr etc]$ iptables --list-rules -t nat
-P PREROUTING ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
-A POSTROUTING -o eth1 -j MASQUERADE
[root@srvr etc]$ ping www.seznam.cz -I eth0
PING www.seznam.cz (77.75.72.3) from 192.168.93.2 eth0: 56(84) bytes of data.
From srvr (192.168.93.2) icmp_seq=2 Destination Host Unreachable
[root@srvr etc]$ ping www.seznam.cz -I eth1
PING www.seznam.cz (77.75.72.3) from 192.168.90.2 eth1: 56(84) bytes of data.
64 bytes from www.seznam.cz (77.75.72.3): icmp_seq=1 ttl=248 time=11.1 ms
[root@srvr etc]$ route -n
Směrovací tabulka v jádru pro IP
Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
0.0.0.0 192.168.90.1 0.0.0.0 UG 0 0 0 eth1
Nějaké návrhy?
-
A určitě máš povoleno routování?
vi /etc/sysctl.conf
net.ipv4.conf.default.forwarding=1
Restart sítě proběhl? Ještě jednou se mi u CentOS se mi stalo, že systém byl zmatený z těch pravidel a po restartu celého serveru to bylo OK.
-
Ano forwarding je na 100% zapnutý. Restartů sítě proběhlo už požehnaně i pár kompletních restartů serveru. Vypnul jsem pro jistotu úplně NetworkManager a zkontroloval ručně veškerá nastavení sítě. Sedím u toho už několik hodin a nemohu takovou trivku vyřešit... :) Než jsem tam přidal druhý interface (protože potřebuji nastavit proxy), tak jsem měl v IP tables pravidla na port forwardingy a pro OpenVPN, nastaven firewall a vše mi krásně fungovalo. Teď nedokážu ani spojit dva subnety. Jde to se mnou z kopce.
-
Vystrel do tmy: Skus si vypisat aj:
iptables -L FORWARD -n -v
Mozno tam uvidis nieco zaujimave. A mozno nie.
-
[root@srvr etc]$ ping www.seznam.cz -I eth0
PING www.seznam.cz (77.75.72.3) from 192.168.93.2 eth0: 56(84) bytes of data.
From srvr (192.168.93.2) icmp_seq=2 Destination Host Unreachable
[root@srvr etc]$ ping www.seznam.cz -I eth1
PING www.seznam.cz (77.75.72.3) from 192.168.90.2 eth1: 56(84) bytes of data.
64 bytes from www.seznam.cz (77.75.72.3): icmp_seq=1 ttl=248 time=11.1 ms
[root@srvr etc]$ route -n
Směrovací tabulka v jádru pro IP
Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
0.0.0.0 192.168.90.1 0.0.0.0 UG 0 0 0 eth1
Nějaké návrhy?
Co povie traceroute?
-
Zdravím,
mám CentOS 6.4 server se dvěma síťovkama.
Eth0 - (LAN segment připojený do switche) - 192.168.93.2/24
Eth1 - (WAN segment připojený do routeru od ISP) - 192.168.90.2/24
Router od ISP má adresu 192.168.90.1, kterou jsem nastavil jako default gw. Server nyní může do internetu, ale nedaří se mi proroutovat LAN segment na WAN a nastavit maškarádu... IP forwarding je zapnutý.
Poradíte prosím někdo? Díky.
Navyse ked dobre rozumiem tak ping cez eth0 vam nejde. Ale to posielate paket interfejsom ktory nevedie smerovm von. WAN je predsa eth0 tam je router. Aspon tak mi to pripada - musel by som poznat topologiu vase siete.
-
oprava WAN je eth1
-
[root@srvr etc]$ ping www.seznam.cz -I eth0
PING www.seznam.cz (77.75.72.3) from 192.168.93.2 eth0: 56(84) bytes of data.
From srvr (192.168.93.2) icmp_seq=2 Destination Host Unreachable
A určitě to jde takhle testovat? Nemám po ruce žádný linuxový router a s iptables si moc netykám, ale jako první věc bych to určitě zkoušel regulerně zvenku, z jiného stroje, aby ten paket fakt přišel zvenku. Nejsem si totiž vůbec jistej, jestli se POSTROUTING aplikuje na pakety, které nepřišly zvenku - podle tohodle obrázku http://www.billauer.co.il/non-html/ipmasq-html1x.gif bych řekl, že spíš ne (cpu je tam totiž z "host's IP stack". Že mají zdrojovou adresu "vnějšího rozhranní" by na tom nemělo nic měnit).
Je to jenom takovej návrh, co zkusit. Jak říkám, s iptables si moc netykám, používám PF, kde se tohle neřeší :)
-
Omlouvám se, čumím do toho obrázku a popletl jsem si POST- a PRE- :) Takže ten komentář je asi bezpředmětný...
-
Faktom ale je ze dostupnot LAN IPky by bolo lepsie testovat zo siete. A pokial ide o konferu chcelo by to nejaky obrazok ako ta siet vyzera. Niekedy LAN nemusi byt LAN :-)
-
Mně se moc nezdá ta routing table. Nevidím tam záznam, který by směřoval pro LAN subnet.
-
Ked na to pride tak tam nie je ani WAN. Nejak divne pretoze obe by tam mali byt ako link.
-
Ak nad nejakym rozhranim dvihnes nejaky alias napr 192.168.90.1/24 , tak jadro by malo vytvorit patricny zaznam v routovacej tabulke pre siet 192.168.90.0/24 v ktorej sa ten alias nachadza. Jadro potom vie, ze ktorym interfejsom ma odoslat paket ktory ma ciel v rovnakej sieti. Pokial taky alias vytvoris a v routovacej tabulke nevznikne patricny zaznam, tak je nieco hnileho v state danskom. Posli vypis "ip a" a "ip r"
-
Vážně díky všem za rozvinutí diskuze... Já do toho koukal už moc dlouho a přestávál jsem v tom cokoliv vidět.
Zřejmě po celou tu dobu funguje vše :) kromě testu, kterým jsem to já blbec celou tu dobu testoval (tedy ping www.seznam.cz -I eth0 - který vrací destination host unreachable)... To je ta lenost zvednou se ze židle a jít k nějaké klientské stanici... Omlouvám se vám.
Každopádně nastavení je nyní takovéto:
[root@srvr etc]$ service network restart
Deaktivuji rozhraní eth0: [ OK ]
Deaktivuji rozhraní eth1: [ OK ]
Deaktivuji rozhraní loopback: [ OK ]
Aktivuji rozhraní loopback: [ OK ]
Aktivuji rozhraní eth0: [ OK ]
Aktivuji rozhraní eth1: [ OK ]
[root@srvr etc]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 2c:27:d7:15:57:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.90.2/24 brd 192.168.90.255 scope global eth1
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:1c:c4:7b:78:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.93.2/24 brd 192.168.93.255 scope global eth0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/[65534]
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
5: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 52:54:00:c7:cf:9d brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500
link/ether 52:54:00:c7:cf:9d brd ff:ff:ff:ff:ff:ff
[root@srvr etc]$ ip r
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.8.0.0/24 via 10.8.0.2 dev tun0
192.168.93.0/24 dev eth0 proto kernel scope link src 192.168.93.2
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
192.168.90.0/24 dev eth1 proto kernel scope link src 192.168.90.2
169.254.0.0/16 dev eth1 scope link metric 1002
169.254.0.0/16 dev eth0 scope link metric 1003
default via 192.168.90.1 dev eth1
[root@srvr etc]$ iptables --list-rules
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
[root@srvr etc]$ iptables --list-rules -t nat
-P PREROUTING ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
-
Takže závěr je takový, že ten ping takhle fakt nefunguje by design?
-
Ano závěr je opravdu takový, že jsi měl pravdu a navedl mě k tomu to zkusit nastavit, tak jak jsem to nastavil hned napoprvé... A poté to dojít zkusit přímo ze stanice na LAN subnetu... Vše fungovalo... Nastavení iptables pro forwarding OpenVPN a jiných služeb hostovaných na LANu a poté DHCPD, DNS, Squid, qlproxy atd. už šlo jako po másle a nezabralo mi snad ani tolik času jako ten routing. ::) Co dodat.
-
Zajímavý. Teď ještě vědět přesně, proč to tak je. Chtělo by to nějakýho gurua, kterej by nám to objasnil :)
Mohl bys zkusit tohle?
# echo 0 >/proc/sys/net/ipv4/conf/eth0/rp_filter
# echo 0 >/proc/sys/net/ipv4/conf/eth1/rp_filter
a potom zas ten ping?
-
Mezi nama ... NATovat privatni rozsah je hodne blbej napad .... co kdyby ti aspon ten tvuj "isp" dal rekneme 4 Ccka?