линуксовый роутер(192.168.10.х).
на нем есть тунель до офиса(192.168.25.х), роуты прописаны, и с роутера(по ssh) пингуется офисные машины.
но нет доступа к офису из подсети 192.168.10.х
Т.е. сам роутер пингует, а компы подключенные к нему не пингуют, хотя инет раздается.
Подскажите почему и как это исправить.
[console]
[admin@asus-server root]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.9.0.2(шлюз в офис) 0.0.0.0 255.255.255.255 UH 0 0 0 tun1
192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 vlan1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan1
192.168.30.0 10.9.0.2 255.255.255.0 UG 0 0 0 tun1
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.25.0 10.9.0.2 255.255.255.0 UG 0 0 0 tun1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 vlan1
[admin@asus-server root]$
[/console]
[console]
[admin@asus-server root]$ iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
VSERVER all -- anywhere 192.168.0.2
NETMAP udp -- anywhere 192.168.0.2 udp spt:6112 192.168.10.0/24
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
NETMAP udp -- 192.168.10.0/24 anywhere udp dpt:6112 192.168.0.2/32
MASQUERADE all -- !192.168.0.2 anywhere
MASQUERADE all -- 192.168.10.0/24 192.168.10.0/24
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain VSERVER (1 references)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:webcache to:192.168.10.1:80
[admin@asus-server root]$
[/console]
Маршрутизация
Цепочку forward, пожалуйста...
Цепочку forward, пожалуйста...
[console]
[admin@asus-server root]$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:65000
ACCEPT tcp -- anywhere anywhere tcp dpt:65022
ACCEPT tcp -- anywhere anywhere tcp dpt:9091
ACCEPT udp -- anywhere anywhere udp dpts:netbios-ns:netbios-ssn
ACCEPT tcp -- anywhere anywhere tcp dpts:netbios-ns:netbios-ssn
ACCEPT tcp -- anywhere anywhere tcp dpt:1090
ACCEPT tcp -- anywhere anywhere tcp dpt:5190
ACCEPT tcp -- anywhere anywhere tcp dpt:445
logdrop all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere state NEW
ACCEPT all -- anywhere anywhere state NEW
SECURITY all -- anywhere anywhere state NEW
ACCEPT tcp -- anywhere asus-server tcp dpt:www
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:printer
ACCEPT tcp -- anywhere anywhere tcp dpt:laserjet
ACCEPT tcp -- anywhere anywhere tcp dpt:3838
logdrop all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
logdrop all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
logdrop all -- anywhere anywhere
SECURITY all -- anywhere anywhere state NEW
ACCEPT all -- anywhere anywhere ctstate DNAT
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain MACS (0 references)
target prot opt source destination
Chain SECURITY (2 references)
target prot opt source destination
RETURN tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN limit: avg 1/sec burst 5
RETURN tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5
RETURN udp -- anywhere anywhere limit: avg 5/sec burst 5
RETURN icmp -- anywhere anywhere limit: avg 5/sec burst 5
logdrop all -- anywhere anywhere
Chain logaccept (0 references)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning tcp-sequence tcp-options ip-options prefix `ACCEPT '
ACCEPT all -- anywhere anywhere
Chain logdrop (5 references)
target prot opt source destination
LOG all -- anywhere anywhere state NEW LOG level warning tcp-sequence tcp-options ip-options prefix `DROP '
DROP all -- anywhere anywhere
[admin@asus-server root]$
[/console]
Информативно так...
iptables-save ?
Ничего не изменилось, все так же...
На машине, подключенной к роутеру...
[console]
root ~ =) route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.85.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
172.16.15.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.10.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 wlan0
root ~ =) ping 4.2.2.2
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 4.2.2.2: icmp_seq=1 ttl=243 time=67.8 ms
^C
--- 4.2.2.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 873ms
rtt min/avg/max/mdev = 67.833/67.833/67.833/0.000 ms
root ~ =) ping 192.168.25.10
PING 192.168.25.10 (192.168.25.10) 56(84) bytes of data.
^C
--- 192.168.25.10 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1476ms
root ~ =) ping 192.168.25.1
PING 192.168.25.1 (192.168.25.1) 56(84) bytes of data.
^C
--- 192.168.25.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1460ms
root ~ =)
[/console]
На роутере:
[console]
[admin@asus-server root]$ iptables-save
# Generated by iptables-save v1.2.7a on Mon Oct 11 23:28:36 2010
*nat
:PREROUTING ACCEPT [70:6710]
:POSTROUTING ACCEPT [23:1401]
:OUTPUT ACCEPT [23:1401]
:VSERVER - [0:0]
-A PREROUTING -d 192.168.0.2 -j VSERVER
-A PREROUTING -d 192.168.0.2 -p udp -m udp --sport 6112 -j NETMAP --to 192.168.10.0/24
-A POSTROUTING -s 192.168.10.0/255.255.255.0 -p udp -m udp --dport 6112 -j NETMAP --to 192.168.0.2/32
-A POSTROUTING -s ! 192.168.0.2 -o vlan1 -j MASQUERADE
-A POSTROUTING -s 192.168.10.0/255.255.255.0 -d 192.168.10.0/255.255.255.0 -o br0 -j MASQUERADE
-A VSERVER -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.10.1:80
COMMIT
# Completed on Mon Oct 11 23:28:36 2010
# Generated by iptables-save v1.2.7a on Mon Oct 11 23:28:36 2010
*mangle
:PREROUTING ACCEPT [1228:408383]
:INPUT ACCEPT [482:49689]
:FORWARD ACCEPT [735:356048]
:OUTPUT ACCEPT [474:37471]
:POSTROUTING ACCEPT [1209:393519]
COMMIT
# Completed on Mon Oct 11 23:28:36 2010
# Generated by iptables-save v1.2.7a on Mon Oct 11 23:28:36 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [60:4024]
:OUTPUT ACCEPT [483:38579]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -i tun1 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 65000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 65022 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9091 -j ACCEPT
-A INPUT -p udp -m udp --dport 137:139 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 137:139 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1090 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5190 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -m state --state INVALID -j logdrop
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -i vlan1 -m state --state NEW -j SECURITY
-A INPUT -d 192.168.10.1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 515 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3838 -j ACCEPT
-A INPUT -j logdrop
-A FORWARD -o tun1 -j ACCEPT
-A FORWARD -i tun1 -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j logdrop
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o vlan1 -j logdrop
-A FORWARD -i ! br0 -m state --state NEW -j SECURITY
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A OUTPUT -o tun1 -j ACCEPT
-A SECURITY -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN
-A SECURITY -j logdrop
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
# Completed on Mon Oct 11 23:28:37 2010
[admin@asus-server root]$
[/console]
Может это поможет:
[console]
root ~ =) tracepath 192.168.25.1
1: 192.168.10.123 (192.168.10.123) 0.361ms pmtu 1500
1: 192.168.10.1 (192.168.10.1) 2.103ms
1: 192.168.10.1 (192.168.10.1) 1.652ms
2: no reply
3: no reply
4: no reply
^C
root ~ =) traceroute 192.168.25.1
traceroute to 192.168.25.1 (192.168.25.1), 30 hops max, 60 byte packets
1 192.168.10.1 (192.168.10.1) 1.493 ms 2.467 ms 2.749 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * *^C
root ~ =) ^C
[/console]
Еще примечание:
с офисом backconnect туннель.
Офисный сервер внутри офисной сети коннектится через интернет по openvpn на проброшенный до роутера порт, и поднимается туннель 10.9.0.2 -- > 10.9.0.1
На интерфейсе 10.9.0.2 офисного сервера сделал маскарадинг во внутреннюю сеть офиса.
А в роутере прописал шлюз 10.9.0.2 для подсети 192.168.25.0/255.255.255.0
С роутера пинг на машины 25подсети доходит, а вот с интерфейса br0(локалка домашнего роутера 192.168.10.0/255.255.255.0) не доходит.....
Я с iptables еще плохо знаком, но могу предположить, что какоето правело ТУПО натит псе пакеты с br0 на vlan1(это wan-интерфейс роутера),
которые и попадают прямо на шлюз интерфейса vlan1, который вообще не знает про 25ю подсеть.
Поправте меня если я ошибаюсь, но помоему это следушее правело:
[console]-A POSTROUTING -s ! 192.168.0.2 -o vlan1 -j MASQUERADE[/console]
Дословно все что не с 192.168.0.2 кидать на vlan1
Что нужно сделать что бы этого не происходило?
Предпологаю что помимо 192.168.0.2 нужно указать и br0, но будут ли все остальные пакеты идти на vlan1 ?
И вообще как это сделать?
Вроде помогло:
[console]-t nat -A POSTROUTING -s ! 10.9.0.1 -o tun1 -j MASQUERAD[/console]