LINUX.ORG.RU
ФорумAdmin

Интернетшлюз на две локальные сетки


0

0

Добрый день!
Есть такая сеть:

Шлюз на Linux со следующими интерфейсами:
eth0 - внешний интерфейс в интернет с IP 217.b.c.d/255.255.255.240
eth0:1 - локальная сеть 192.168.3.0/24 с IP 192.168.3.58
eth2 - локальная сеть 192.168.0.0/24 с IP 192.168.0.1
первые два на одном интерфейсе, т.к. используется радиоканал для доступа в инет и в др. локальную сеть.

На сервере поднят NAT:
-A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.d
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.d

Маршруты:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.b.c.e * 255.255.255.255 UH 0 0 0 eth0
192.168.3.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 217.b.c.e 0.0.0.0 UG 0 0 0 eth0

*217.b.c.d - реальный IP в инете
*217.b.c.e - шлюз провайдера

проблема: сетка 192.168.3.0/24 не видит интернет напрямую, только через прокси
при этом с 192.168.0.0/24 все работает без проблем

Как с этим справиться?
Спасибо.


Ответ на: комментарий от ujen

>Короче запусти Должно помогти echo "1" >/proc/sys/net/ipv4/ip_forward
Человек же пишет что одна сеть работает, следовательно форвардинг в
ядре включен! ;-)

Giz0
()

Можно попробывать записать одним правилом:

-A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth0 -j SNAT --to-source 217.b.c.d

если заработает, то, возможно, это ограничение в самом netfilter.

Vlad_Ts ★★★★★
()
Ответ на: комментарий от Giz0

Весь конфиг:

# Generated by iptables-save v1.2.11 on Wed Jan 17 11:40:37 2007
-A INPUT
-A INPUT -p tcp -m tcp -j bad_tcp_packets
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -s 192.168.0.1 -i lo -j ACCEPT
-A INPUT -s 192.168.3.58 -i lo -j ACCEPT
-A INPUT -s 217.b.c.d -i lo -j ACCEPT
-A INPUT -s 217.b.c.d -p udp -m udp --sport 137 -j ACCEPT
-A INPUT -i eth2 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
-A INPUT -d 217.b.c.d -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -i eth2 -j ACCEPT
-A INPUT -s 192.168.3.187 -i eth0 -j ACCEPT
-A INPUT -s 192.168.3.99 -i eth0 -j ACCEPT
-A INPUT -s 192.168.3.98 -i eth0 -j ACCEPT
-A INPUT -s 192.168.3.31 -i eth0 -j ACCEPT
-A INPUT -s 192.168.3.51 -i eth0:1 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp -j tcp_packets_inet
-A INPUT -i eth0 -p udp -j udp_packets_inet
-A INPUT -i eth0 -p icmp -j icmp_packets
-A INPUT -d 224.0.0.0/255.0.0.0 -i eth0 -j ACCEPT
-A INPUT -s 217.b.c.d -d 192.168.0.255 -j ACCEPT
-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT INPUT packet died: " --log-level 7

-A FORWARD
-A FORWARD -p udp -m udp --dport 123 -j ACCEPT
-A FORWARD -i eth0 -p tcp -j bad_tcp_packets
-A FORWARD -s 192.168.3.0/255.255.255.0 -i eth0 -j ACCEPT
-A FORWARD -s 192.168.3.31 -j ACCEPT
-A FORWARD -s 192.168.3.51
-A FORWARD -s 192.168.3.98 -j ACCEPT
-A FORWARD -s 192.168.3.99 -j ACCEPT
-A FORWARD -s 192.168.3.187 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth2 -j ACCEPT
-A FORWARD -p icmp -j icmp_packets
-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT FORWARD packet died: " --log-level 7

-A OUTPUT -p tcp -j bad_tcp_packets
-A OUTPUT -j ACCEPT

-A bad_tcp_packets -s ! 127.0.0.1 -i ! lo -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP

-A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A icmp_packets -j DROP

-A tcp_packets_inet -p tcp -m tcp -m multiport --dports 22,25,110,80 -j ACCEPT
-A tcp_packets_inet -p tcp -m tcp -m multiport --dports 443,10000 -j ACCEPT
-A tcp_packets_inet -j DROP

-A udp_packets_inet -p udp -m multiport --dports 22,53,25,110 -j ACCEPT
-A udp_packets_inet -p udp -m udp -m multiport --dports 443,10000 -j ACCEPT
-A udp_packets_inet -j DROP

-A PREROUTING -s ! 192.168.0.100 -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -s 192.168.3.0/255.255.255.0 -p tcp -m tcp -m multiport --dports 80,8080,8081 -j REDIRECT --to-ports 3128
-A PREROUTING -s ! 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.0.100:21

-A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.e
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.e
-A POSTROUTING -s 192.168.20.0/255.255.255.0 -d ! 192.168.3.0/255.255.255.0


Что-то я вообще не уверен, что дело в конфиге, т.к. когда ставлю пропускать ВСЕ пакеты, интернет для 192.168.3.0/24 все равно не работает.

ftrain
() автор топика
Ответ на: комментарий от ftrain

пробуй вместо SNAT (-A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j SNAT --to-source 217.b.c.e) iptables -t nat -A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j MASQUERADE

phantom7
()
Ответ на: комментарий от ftrain

или так -A POSTROUTING -o eth0 -j SNAT --to-source 217.b.c.d ( для всех сетей)

SNAT только для последнего правила включаеться как я понял. посмотреть можно iptables -t nat -L

phantom7
()
Ответ на: комментарий от phantom7

Не помогает. по моему дело не в NAT, а в маршрутах

ftrain
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.