Никак не могу понять в чём проблема. Давайте для начала приведу выводы команд:
root@tetramin:/home/tetramin/script# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
root@tetramin:/home/tetramin/script# ip ru
0: from all lookup local
32764: from all fwmark 0x2 lookup inet_dsl
32765: from all fwmark 0x1 lookup inet_ppp
32766: from all lookup main
32767: from all lookup default
root@tetramin:/home/tetramin/script# ip ro sh table inet_dsl
default via 192.168.1.1 dev eth3
root@tetramin:/home/tetramin/script# ip ro sh table inet_ppp
default dev ppp0 scope link
Форвардинг включен, редирект «постарался» отключить:
sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.all.accept_redirects=0
sysctl net.ipv4.conf.all.send_redirects=0
sysctl net.ipv6.conf.all.accept_redirects=0
2 таблицы маршрутизации:
В первую (с fwmark 1) попадают пакеты от рута и от пользователя tetramin.
Во вторую (fwmark 2) попадают пакеты от пользователя inet_dsl.
Приведу так же существенную часть скрипта для iptables:
# FORWARD chains for inet_dsl lan
iptables -A inet_dsl -s 192.168.1.214 -j RETURN
iptables -A inet_dsl -s 192.168.1.50 -j RETURN
iptables -A inet_dsl -j DROP
#
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth3 -j inet_dsl
#
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
root@tetramin:/home/tetramin/script# route add default gw 192.168.1.1
root@tetramin:/home/tetramin/script# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth3
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
С компьютера 192.168.1.214 пакеты, как и должны, идут через ppp0 моего шлюза. НО! С компьютера 192.168.1.50:
root@debian:/home/plot# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=45 time=89.8 ms
From 192.168.1.52: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.1)
root@debian:/home/plot# traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.1.1 1.833 ms 2.098 ms 3.319 ms
и так далее...
Так вот, что не ясно:
1. Как мне запретить этот редирект? 2. Пинги с моего шлюза не идут ни на один комп сети, однако мой шлюз пингуется с любого компа. Что делать?