Автор Тема: Вопрос по маршрутизации  (Прочитано 2403 раз)

Оффлайн serovdrug

  • Участник
  • *
  • Сообщений: 5
Вопрос по маршрутизации
« : 20.02.2010 18:56:34 »
Приветствую!

Имеется следующая схема сети (все IP адреса вымышленные, но реальные в сети интернет (не фейковые))

PC1 (10.10.10.121/29)--NET1 (10.10.10.120/29)--eth0(10.10.10.122/29)-----eth1(10.10.8.253/30)--NET2(10.10.8.252/30)--PROV1(10.10.8.254/30)

PC2 (10.10.20.121/29)--NET3 (10.10.20.120/29)--eth2(10.10.20.122/29)-----eth3(10.10.6.253/30)--NET4(10.10.6.252/30)--PROV2(10.10.6.254/30)

1. Есть два провайдера (Prov1 и Prov2), которые выделили по блоку из 4 адресов каждый из своего диапазона (NET2 и NET4).
2. Есть маршрутизатор Linux с четырьмя сетевыми интерфейсами (eth0, eth1, eth2, eth3).
3. Prov1 и Prov2 также выделили еще по блоку из 8 реальных адресов (NET1 и NET3), которые заходят на eth0 и eth2 роутера

После добавления маршрутов и правил, PC1 без проблем работает в инете через PROV1, а PC2 - через PROV2. Также для экономии трафика, PC1 через роутер ходит на PC2 и наоборот...

ПРОБЛЕМА: PC1(10.10.10.121) не пингует eth0(10.10.10.122) хотя адреса у них из одной подсети, а PC2(10.10.20.121) не пингует eth2(10.10.20.122) ??????

Заранее спасибо!!!!

echo 500 PC1-PROV1 >> /etc/iproute2/rt_tables
echo 600 PC2-PROV2 >> /etc/iproute2/rt_tables
echo 700 PC1-PC2 >> /etc/iproute2/rt_tables
echo 800 PC2-PC1 >> /etc/iproute2/rt_tables

ip rule add from 10.10.20.120/29 table PC2-PROV2
ip route add default via 10.10.6.254 dev eth3 table PC2-PROV2

ip rule add from 10.10.10.120/29 table PC1-PROV1
ip route add default via 10.10.8.254 dev eth1 table PC1-PROV1

ip rule add from 10.10.20.120/29 to 10.10.10.120/29 table PC2-PC1
ip route add default via 10.10.10.122 dev eth0 table PC2-PC1

ip rule add from 10.10.10.120/29 to 10.10.20.120/29 table PC1-PC2
ip route add default via 10.10.20.122 dev eth2 table PC1-PC2

ip route add 127.0.0.0/8 dev lo table PC1-PROV1
ip route add 127.0.0.0/8 dev lo table PC2-PROV2
ip route add 127.0.0.0/8 dev lo table PC1-PC2
ip route add 127.0.0.0/8 dev lo table PC2-PC1

Оффлайн dubrsl

  • alt linux team
  • ***
  • Сообщений: 238
Re: Вопрос по маршрутизации
« Ответ #1 : 21.02.2010 02:38:09 »
Лучше покажите вывод с роутера:
# ip a
и
# ip r
и
# ip ru
WBR,
Slava

Оффлайн serovdrug

  • Участник
  • *
  • Сообщений: 5
Re: Вопрос по маршрутизации
« Ответ #2 : 21.02.2010 10:35:57 »
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
    inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:03:47:ea:35:29 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.122/29 brd 10.10.10.122.127 scope global eth0
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:02:b3:4c:91:de brd ff:ff:ff:ff:ff:ff
    inet 10.10.8.253/30 brd 10.10.8.255 scope global eth1
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:02:b3:d8:1d:a9 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.122/29 brd 10.10.10.255 scope global eth2
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:02:b3:d8:21:8c brd ff:ff:ff:ff:ff:ff
    inet 10.10.6.253/30 brd 10.10.6.255 scope global eth3

ip r
10.10.8.252/30 dev eth1  proto kernel  scope link  src 10.10.8.253
10.10.6.252/30 dev eth3  proto kernel  scope link  src 10.10.6.253
10.10.10.120/29 dev eth0  proto kernel  scope link  src 10.10.10.122
10.10.20.120/27 dev eth2  proto kernel  scope link  src 10.10.20.122
169.254.0.0/16 dev eth0  scope link
127.0.0.0/8 dev lo  scope link
default via 10.10.6.254 dev eth3

ip ru
0:      from all lookup local
32761:  from 127.0.0.0/8 to 0.0.0.0 lookup main
32762:  from 10.10.10.120/29 to 10.10.20.120/29 lookup PC1-PC2
32763:  from 10.10.20.120/29 to 10.10.10.120/29 lookup PC2-PC1
32764:  from 10.10.10.120/29 lookup PC1-PROV1
32765:  from 10.10.20.120/29 lookup PC2-PROV2
32766:  from all lookup main
32767:  from all lookup default

Еще раз спасибо!

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 373
  • Учиться .... Телепатами не рождаются, ими ....
Re: Вопрос по маршрутизации
« Ответ #3 : 21.02.2010 11:00:29 »
Что-то я не понимаю - почему тут одни и те-же адреса у сетей, вернее перекрывающиеся
10.10.10.120/29 dev eth0  proto kernel  scope link  src 10.10.10.122
10.10.20.120/27 dev eth2  proto kernel  scope link  src 10.10.20.122

Оффлайн serovdrug

  • Участник
  • *
  • Сообщений: 5
Re: Вопрос по маршрутизации
« Ответ #4 : 21.02.2010 13:20:01 »
10.10.10 и 10.10.20 разве одинаковые?

P.S. согласен, с маской ошибся - не 27, а 29 10.10.20.120/29 dev eth2  proto kernel  scope link  src 10.10.20.122

И вот какой еще глюк появился: после применения правил на маршрутизаторе, PC1 имеет выход в интернет через провайдера PROV1. НО стоит отключиьт интерфейс у PC1, а потом подключить, как все, выхода в инет нету, пока на маршрутизаторе не сделаешь service network restart и не применишь все правила заново!!! Что за глюк, как тестить????

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 373
  • Учиться .... Телепатами не рождаются, ими ....
Re: Вопрос по маршрутизации
« Ответ #5 : 21.02.2010 13:23:22 »
Наверное правила правильнее помещать в /etc/net?

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: Вопрос по маршрутизации
« Ответ #6 : 21.02.2010 13:54:32 »
стоит отключиьт интерфейс у PC1, а потом подключить, как все, выхода в инет нету,

Все правильно, надо в /etc/net записать, тогда при включении интерфейса и поднимутся правила.
У меня работает вот так:
http://forum.altlinux.org/index.php/topic,5569.msg81772.html#msg81772 
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн serovdrug

  • Участник
  • *
  • Сообщений: 5
Re: Вопрос по маршрутизации
« Ответ #7 : 21.02.2010 13:58:23 »
Делал по образу и подобию http://wiki.izhnet.org/pages/viewpage.action?pageId=2359366 за тем исключением, что у меня известны все имена интерфейсов и их IP...

Что такое /etc/net??? у меня нету :(

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: Вопрос по маршрутизации
« Ответ #8 : 21.02.2010 14:04:03 »
Что такое /etc/net??? у меня нету :(

/etc/net - это каталог.
В этом каталоге есть для каждого интерфейса подкаталоги.
В нем есть файлы
/etc/net/ifaces/eth1/ipv4route 
/etc/net/ifaces/eth0/ipv4rule 
/etc/iproute2/rt_tables
в них надо все записать.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 373
  • Учиться .... Телепатами не рождаются, ими ....

Оффлайн serovdrug

  • Участник
  • *
  • Сообщений: 5
Re: Вопрос по маршрутизации
« Ответ #10 : 21.02.2010 14:46:28 »
Цитировать
Все правильно, надо в /etc/net записать, тогда при включении интерфейса и поднимутся правила
нет, на маршрутизаторе интерфейсы не передергивались. Попробую описать ситуацию:
1. На маршрутизаторе делаем service network restart и PC1 пингует PC2, но выход а в интернет через Prov1 Prov2 ни у кого нету.
2. На PC1 пингуем ping 8.8.8.8 (интрнет) - пинги не проходят. Команду не прерываем
3. На маршрутизаторе применяем правила маршрутизации (добавляем правила, маршруты)
4. PC1 теперь пингует 8.8.8.8 (команду опять не прерываем). Все замечательно, пока работает пинг. Как только на PC1 отменяем команду пинг, и через несколько секунд заново начинаем пинговать - все, интернета нету и ни один маршрут не работает, хотя ip ro li table PC1-PROV1 показывает маршрут..... 

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: Вопрос по маршрутизации
« Ответ #11 : 21.02.2010 14:59:24 »
echo 500 PC1-PROV1 >> /etc/iproute2/rt_tables
echo 600 PC2-PROV2 >> /etc/iproute2/rt_tables
echo 700 PC1-PC2 >> /etc/iproute2/rt_tables
echo 800 PC2-PC1 >> /etc/iproute2/rt_tables

А почему такие номера большие. в /etc/iproute2/rt_tables даже локал имеет 255.
А у вас еще выше.

Надо сделать через /etc/net
а таблицу не этими командами записывать а сразу в  /etc/iproute2/rt_tables
и числа меньше 200
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"