Jump to content
Калькуляторы

Помогите с маршрутизацией Linux

Вот схема

 

интернет------провайдер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 (сбросить кеш маршрутизатора)

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

покажите вывод ip rule, есть ли у вас там

0: from all lookup 255

?

 

если есть, то и не должно работать.

 

 

Вашу задачу можно решить проще, без маркировок, одной командой

ip r a 172.24.40.6 via 172.25.40.1

Share this post


Link to post
Share on other sites

покажите вывод 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 by fufurik

Share this post


Link to post
Share on other sites

Где eще можно почитать по iproute кроме LARTC?

 

в man ip

 

Имена объектов и команд можно писать сокращенно. Команду list(она же show) можно не писать вообще - она подразумевается по умолчанию, т.е. ip ru равнозначно ip rule list.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this