fufurik Posted August 30, 2011 Posted August 30, 2011 Вот схема интернет------провайдер1-------- 76,196,233,73(шлюз 76,196,233,73)(eth2) \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Наш шлюз(10,0,0,1)(eth1)--------Компьютер(10,0,0,2) локальная_сеть_провайдера 2------172.25.40.24 (шлюз 172.25.40.1 маска 255,255,255,0 )(eth0) нужно чтоб с компьютера(10,0,0,2) все запросы шли через провайдера1 кроме запросов на ip адрес 172.24.40.6(это ip провайдера2) запросы на этот ip должны отсылаться на шлюз провайдера2 я сделал так но не работает echo 1 > /proc/sys/net/ipv4/ip_forward (включаем форвардинг) iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE (включаем нат для eth2) iptables -A PREROUTING -i eth0 -s 10.0.0.2/24 -d 172.24.40.6/24 -t mangle -j MARK --set-mark 2 (метим пакеты на ip 172.24.40.6) iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (включаем нат для eth0) echo 202 provider2 >> /etc/iproute2/rt_tables (создаем таблицу provider2) ip rule add fwmark 2 table provider2 (выбираем помеченные пакеты) ip route add default via 172.25.40.1 dev eth0 table provider2 (отправляем пакеты на шлюз) ip route flush cache (сбросить кеш маршрутизатора) Вставить ник Quote
s.lobanov Posted August 30, 2011 Posted August 30, 2011 1. rp_filter выключен? 2. что говорит счётчик пакетов напротив iptables -A PREROUTING -i eth0 -s 10.0.0.2/24 -d 172.24.40.6/24 -t mangle -j MARK --set-mark 2 3. во что у вас iptables превращает 10.0.0.2/24 и 172.24.40.6/24 ? (iptables -nvL -t mangle) Вставить ник Quote
agr Posted August 31, 2011 Posted August 31, 2011 покажите вывод ip rule, есть ли у вас там 0: from all lookup 255 ? если есть, то и не должно работать. Вашу задачу можно решить проще, без маркировок, одной командой ip r a 172.24.40.6 via 172.25.40.1 Вставить ник Quote
fufurik Posted September 2, 2011 Author Posted September 2, 2011 (edited) покажите вывод ip rule, есть ли у вас там 0: from all lookup 255 ? если есть, то и не должно работать. Вашу задачу можно решить проще, без маркировок, одной командой ip r a 172.24.40.6 via 172.25.40.1 Вот вывод: ip rule list 0: from all lookup local 32765: from all fwmark 0x2 lookup enforta 32766: from all lookup main 32767: from all lookup default Команда ip r a 172.24.40.6 via 172.25.40.1 помогла, но я не понял откуда она такая взялась. Потом я догадался что это ip route add 172.24.40.6 via 172.25.40.1 Я новичок в маршрутизации и думал что команды должны быть такого вида: ip - управление собственно маршрутизацией ip [опции] {объект маршрутизации} {команда или HELP} Из опций наиболее полезным является выбор семейства IP - --4 - IPv4 --6 - IPv6 Объекты маршрутизации представлены следующим списком: * link - сетевое устройство(реальное физическое или виртуальное, например vlan или туннель) * address - ip адресс устройства * neighbour - кеш ARP * route - таблицы маршрутизации * rule - правила маршрутизации * maddress - широковещательный адрес * mroute - широковещательные таблицы маршрутизации * tunnel - IP туннель Где eще можно почитать по iproute кроме LARTC? Edited September 2, 2011 by fufurik Вставить ник Quote
agr Posted September 3, 2011 Posted September 3, 2011 Где eще можно почитать по iproute кроме LARTC? в man ip Имена объектов и команд можно писать сокращенно. Команду list(она же show) можно не писать вообще - она подразумевается по умолчанию, т.е. ip ru равнозначно ip rule list. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.