Jump to content

Recommended Posts

Posted (edited)

ОС: CentOS 5

 

Имеется 3 сетевых интерфейса.

 

1 - Локальная сеть 172.16.0.0/16 интерфейс eth0

 

2. Провайдер 1 выдал сеть 10.0.0.0/24 интерфейс eth1

 

3. Провайдер 2 выдал сеть 10.0.1.0/24 интерфейс eth2

 

 

Хочется часть сети 172.16.0.0/17 NAT-ить через провайдера 1, а вторую часть сети 172.16.128.0/17 через провайдера 2

 

что сделал

 

 

ip rule add from 172.16.0.0/17 to 0/0 table 100 pref 100

ip rule add from 172.16.128.0/17 to 0/0 table 200 pref 200

 

ip route add default dev eth1 table 100

ip route add default dev eth2 table 200

 

ip route flush cache

 

 

Все работает (пакеты идут в оба канала, NAT-ятся своими адресами), НО на обоих интерфейсах наблюдаю (tcpdump -i eth1 -nn arp) шквал ARP запрососв от моего роутера к шлюзам провайдеров, этот шквал ARP валит оборудование обоих провайдеров.

 

arp реквесты идут от имени моего роутера для всех адресов в инете.

 

Что я настроил не так ? Почему роутер пытается узнавать ARP адреса всего инета вместо того, чтобы просто пихать пакеты в нужный интерфейс объявленный как default gateway для нужной сети ?

Edited by _INF_
Posted
А если поробывать сделать NAT средствами ip route?

Как бы логика подсказывает, что способ организации NAT здесь не при чем.

 

1. объявляем 10.0.0.1 default gw в таблице main, затем создаем правила на вторую половину диапазона 172.16.128.0/17

 

ip rule add from 172.16.128.0/17 to 0/0 table 200 pref 200

ip route add default dev eth2 table 200

 

и шквал ARP идет только в провайдера 2.

 

я предполагаю, что ARP вызван использованием source routing .

 

Есть люди которые используют подобную схему ?

Posted
ip addr ls dev eth2

ip addr ls dev eth1

?

eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 10000

link/ether 00:1b:21:3e:ae:28 brd ff:ff:ff:ff:ff:ff

inet 10.10.10.0/30 brd 10.10.10.3 scope global eth1

 

eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 10000

link/ether 00:1b:21:3e:ae:28 brd ff:ff:ff:ff:ff:ff

inet 10.10.20.0/30 brd 10.10.20.3 scope global eth2

 

Подсети 10.10.10.0/30 и 10.10.20.0/30 выдали провайдеры и сказали что через них они роутят 10.0.0.0/24 и 10.0.1.0/24 соответственно.

 

Posted

ip route add via 10.10.10.2 dev eth1 table 100

ip route add via 10.10.20.2 dev eth2 table 200

 

где 10.10.10.2 и 10.10.20.2 шлюзы провайдеров

 

вместо

 

ip route add default dev eth1 table 100

ip route add default dev eth2 table 200

 

помогло.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.