[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: martian packets



Lev Arzhanov пишет:
Поскольку echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter не помогло,
описываю подробнее. Есть Debian stable хост, два интерфейса: один
192.168.0.0/24, второй реальный. Провайдером организована vpn до
удаленного офиса, там локальная сеть 192.168.3.0/24. Удаленный
маршрутизатор по словам провайдера должен быть настроен следующим
образом: адрес интерфейса, глядящего в локальную сеть - 192.168.3.х/24,
в сеть провайдера - 10.0.0.х/30, маршрут на 192.168.0.0/24 via
10.0.0.(x-1). На моей стороне аналогично, на реальном интерфесе создан
алиас 10.0.0.y/30 и прописан маршрут на 192.168.3.0/24 via 10.0.0.(y-1).
Поскольку /proc/sys/net/ipv4/conf/all/log_martian... у меня 1, то сам
факт прихода пакетов из сети 192.168.3.0 на интерфейс 10.0.0.y я вижу в
логах. А вот маршрутизации нет :(
Конечно, чтение lartc мне поможет, да только времени на это, увы, нет,
связь должна заработать позавчера.

ip_forward = yes на обоих маршрутизаторах ?

Разумеется.

На удаленном конце вообще стоит шлюз VoIP с возможностью маршрутизации,
в нем вроде все прописано. Кусочки конфигов с моей стороны:

/etc/network/interfaces:
iface eth2 inet static
        address a.b.c.d
        netmask 255.255.255.252
        up ip addr add 10.0.0.2/30 brd + dev eth2 label eth2:1
        up ip route add 192.168.3.0/24 via 10.0.0.1
iface eth0 inet static
        address 192.168.0.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255

Кусочек файрволла:
echo "0">/proc/sys/net/ipv4/conf/all/rp_filter
echo "1">/proc/sys/net/ipv4/conf/all/accept_source_route
echo "1">/proc/sys/net/ipv4/conf/all/log_martians
echo "1">/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "30">/proc/sys/net/ipv4/tcp_fin_timeout
echo "1800">/proc/sys/net/ipv4/tcp_keepalive_intvl

/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP

/sbin/iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A INPUT -m state --state NEW -s 192.168.3.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.3.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -s 192.168.0.0/24 -j ACCEPT
echo "1">/proc/sys/net/ipv4/ip_forward

И так далее.

На ping 192.168.3.0 с хоста из сети 192.168.0.0 в логах имеем следующее:
Aug 30 14:20:11 kernel: Redirect from 62.148.238.125 on eth2 about
10.0.0.2 ignored.
Aug 30 14:20:11 kernel:   Advised path = 10.0.0.2 -> 192.168.3.6, tos 00
Aug 30 14:20:11 kernel: martian source 192.168.3.6 from 10.0.0.2, on dev
eth2
Aug 30 14:20:11 kernel: ll header:
00:04:76:91:67:7c:00:0f:f8:81:78:1b:08:00


Выключите полностью нат и файервол, а потом настраивайте.
сделайте со шлюза в сеть 192.168.0.0/24 пинг второго шлюза по ип адресу интерфейса с сетью 10.0.0.0/30,
если не работает пинайте прова, чтобы дал правильные настройки

поднимите нат и только его
с компа в сети 192.168.0.0/24 пинганите ваш шлюз в сети прова, это, судя по конфигу, 10.0.0.1 если не работает проверяйте включен ли нат, форвард, полиси в фильтрах и т.п.

опустите нат и сделайте предыдущую вещь, если не работает, значит маршрутизатор прова ничего не знает о вашей подсети 192.168.0.0/24 - пинайте прова на этот счет либо делайте между вашими
маршрутизаторами gre или ipip туннель

проделайте то же самое с другим маршрутизатором




Reply to: