LINUX.ORG.RU
ФорумAdmin

Несколько каналов в интернет с одним шлюзом


0

0

И так есть задача, несколько радио каналов в интернет по одному мегабиту, на стороне провайдера заведены в один свитч, в этот же свитч подключен провайдерский шлюз. Под каждый канал провайдер выдает настройки например
(1)ip 172.16.0.1 mask 255.255.255.0 gw 172.16.0.100
(2)ip 172.16.0.2 mask 255.255.255.0 gw 172.16.0.100
(3)ip 172.16.0.3 mask 255.255.255.0 gw 172.16.0.100
и делает у себя привязку IP к маку.

Задача использовать ресурсы всех каналов для предоставления доступа в интернет.

Теперь напишу, как реализовал это я.
Берем управляемый свитч D-link DES-3526, настраиваем VLAN (802.1Q)
VLAN_ID 2, port 1,24(port 24 taget)
VLAN_ID 3, port 3,24(port 24 taget)
VLAN_ID 4, port 4,24(port 24 taget)

Поднимаем VLAN'ы на Linux и на каждый VLAN интерфейс ставим свой MAC адрес.
=========================
IPADDR1="172.16.0.1"
IPADDR2="172.16.0.2"
IPADDR3="172.16.0.3"
MASK="255.255.255.0"
NETW="172.16.0.0/24"
BCAST="172.168.0.255"
GATEWAY="172.16.0.100"

modprobe 8021q
ifconfig eth0 down
ifconfig eth0 0.0.0.0 up
vconfig add eth0 2
vconfig add eth0 3
vconfig add eth0 4
ifconfig eth0.2 hw ether 00:01:02:11:11:11
ifconfig eth0.3 hw ether 00:01:02:11:11:12
ifconfig eth0.4 hw ether 00:01:02:11:11:13
ifconfig eth0.2 $IPADDR1 netmask $MASK broadcast $BCAST up
ifconfig eth0.3 $IPADDR2 netmask $MASK broadcast $BCAST up
ifconfig eth0.4 $IPADDR3 netmask $MASK broadcast $BCAST up

убираем автоматически создавшиеся пути роутинга для каждого интерфейса
которые можно наблюдать набрав ip route (с ними работать не будет)
172.16.0.0/24 dev eth0.2 proto kernel scope link src 172.16.0.1
172.16.0.0/24 dev eth0.3 proto kernel scope link src 172.16.0.2
172.16.0.0/24 dev eth0.4 proto kernel scope link src 172.16.0.3

Убираем 3-мя коммандами
ip route delete $NETW
ip route delete $NETW
ip route delete $NETW

Прописываем роутинг с поочередным использованием интерфейсов
ip route add default scope global nexthop via $GATEWAY dev eth0.2 weight 4 nexthop via $GATEWAY dev eth0.3 weight 4 nexthop via $GATEWAY dev eth0.4 weight 4

Вобщем-то все, подключаем три канала в первые три порта нашего свича, сервак вешаем на 24-ый порт.

Все работет, но есть один нюанс :)
Нет жесткой привязки исходящих от сервера пакетов MAC-IP, получается
что иногда под мак адресом первого интерфеса, выходит пакет со вторым IP адресом. По сути ни на что не влияет, т.к. привязка MAC-порт свича жесткая и каналы действительно используются.
Привязка у прова IP-MAC наши несоответствия не фильтрует, т.к. входящие пакеты она не пропускает через это правило. а только ставит указанный мак на исходящие.

Так вот вопрос можно как-нибудь сделать, чтобы пакеты с интерфесов шли со своими родными IP адресами?

anonymous

Re: Несколько каналов в интернет с одним шлюзом

>> IPADDR1="172.16.0.1"
IPADDR2="172.16.0.2"
IPADDR3="172.16.0.3"

Это что Vlan-ы такие?
Все адреса из одной сети.

anonymous ()

Re: Несколько каналов в интернет с одним шлюзом

iptables --table nat --append POSTROUTING --out-interface eth0.2 -j SNAT --to-source 172.16.0.1
iptables --table nat --append POSTROUTING --out-interface eth0.3 -j SNAT --to-source 172.16.0.2
iptables --table nat --append POSTROUTING --out-interface eth0.4 -j SNAT --to-source 172.16.0.3

(это теоретический вариант :)

SlavikSS ★★ ()

Re: Несколько каналов в интернет с одним шлюзом

Может я неправильно понял?

> Нет жесткой привязки исходящих от сервера пакетов MAC-IP, получается 
что иногда под мак адресом первого интерфеса, выходит пакет со вторым IP адресом.

Если пакет получается с мак-адресом от первого vlan'a и IP от другого vlan'a, то через какой интерфейс пакет уйдет?

SlavikSS ★★ ()

Re: Несколько каналов в интернет с одним шлюзом

а почему "теоретический вариант" не работает? вроде, должен.. И можно на субинтерфейсах разные мак адреса поставить? (я что-то не помню)

victorb ★★ ()

Re: Несколько каналов в интернет с одним шлюзом

Если пакет получается с мак-адресом от первого vlan'a и IP от другого vlan'a, то через какой интерфейс пакет уйдет?

Через интерфейс первого.

Сам не знаю почему SNAT не подменяет IP, но факт что не подменяет, я пакеты слушаю снифером

и арп таблицу на стенде(где эмулировал гейт на несколько каналов) смотрел

anonymous ()

Re: Несколько каналов в интернет с одним шлюзом

а почему "теоретический вариант" не работает? вроде, должен.. Сам не знаю почему, может из-за того что я убил роутинг в таблице маршрутизации, который автоматом создается при создании интерфейса.

Мак на VLAN интерфейсах можно точно менять, проверено практикой.

anonymous ()

Re: Несколько каналов в интернет с одним шлюзом

Протестируй каждый канал отдельно:
route add default gw 172.16.0.1 dev eth0.2
дай ping 172.16.0.100
потом следующий канал аналогично...
параллельно следи tcpdump'ом(или чем-то другим) правильно ли идут пакеты.

SlavikSS ★★ ()

Re: Несколько каналов в интернет с одним шлюзом

А не проще заюзать teql ?? - он объединяет интерфейсы в один и все. А на другом конце просто сделать trunk из 3-х портов - тоже объединить порты в один.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.