05.12.2013 18:53, Sergey Kobzar пишет:

Последние года 2 использую MikroTik в качетве маршрутизаторов.
Функционала - с головой. Цена - адекватная. Интерфейс пользователя - на
выбор. В частности работают схемы с несколькими каналами, DPD, failover,
load balancing и пр.

Впечатления только позитивные.

У меня тоже позитивные, но не хватает многого. И переход на микротики сокращает пользовательскую базу :(, хотя конечно поддерживать их легче.

Опишу схему, которая дома, она же тренировочная для внедрения в разных местах:

2 провайдера, у обоих езернет с DHCP, у одного по-видимому ip source guard. Оба отдают iptv мультикастом. Иногда включаю 3g, тогда то чего не хватает, добавляет up-script mpd.

[root@home /home/zaika]# ipfw l

00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
60010 nat 10 ip from 192.168.0.0/24 to any out xmit vlan3
60020 nat 10 ip from any to 91.241.225.84 in recv vlan3
60070 nat 70 ip from 192.168.0.0/24 to any out xmit vlan5
60080 nat 70 ip from any to 109.254.58.81 in recv vlan5
61010 fwd 91.241.225.1 ip from 91.241.225.84 to any out { xmit vlan5 or xmit ng0 } 61070 fwd 109.254.58.1 ip from 109.254.58.81 to any out { xmit ng0 or xmit vlan3 }
65000 allow ip from any to any
65535 deny ip from any to any

[root@home /home/zaika]# cat /etc/dhclient.conf
# $FreeBSD: src/etc/dhclient.conf,v 1.3.34.1 2009/04/15 03:14:26 kensmith Exp $
#
#       This file is required by the ISC DHCP client.
#       See ``man 5 dhclient.conf'' for details.
#
#       In most cases an empty file is sufficient for most people as the
#       defaults are usually fine.
#
        interface "vlan5" {
                supersede domain-name-servers 127.0.0.1;
                supersede domain-name "home.doct.org.ua";
       }
        interface "vlan3" {
                supersede domain-name-servers 127.0.0.1;
                supersede domain-name "home.doct.org.ua";
       }

[root@home /home/zaika]# cat /etc/dhclient-exit-hooks
case $reason in (BOUND|RENEW|REBIND|REBOOT)
        if [ "$interface" = "vlan5" ]; then
            if ! route get default $new_routers; then
                route -q add default $new_routers
            fi
            route -q add 109.254.49.3 $new_routers
            route -q add 193.108.38.233 $new_routers
#torrent
            route -q add 172.17.254.9 $new_routers
#radio
            route -q add 172.17.254.5 $new_routers
#maybe other :)
            route -q add 172.17.254.0/24 $new_routers

        fi
        if [ "$interface" = "vlan3" ]; then
            if ! route get default $new_routers; then
                route -q add default $new_routers
            fi
            route -q add 10.1.1.17 $new_routers
            route -q add 10.1.1.18 $new_routers
            route -q add 10.1.0.0/16 $new_routers
            route -q add 10.0.0.254 $new_routers
            route -q add 10.0.0.250 $new_routers
        fi
        ;;

в ifstated.conf все работает через fib 1, например:

ogo_inet = '( "setfib 1 ping -S `/usr/local/etc/scripts/ifip.sh ng0` -q -c 10 -W 10 -i 0.5 213.180.204.3 || \ setfib 1 ping -S `/usr/local/etc/scripts/ifip.sh ng0` -q -c 10 -W 10 -i 0.5 74.125.43.104" every 300)'

run "setfib 1 route add default `/usr/local/etc/scripts/dhclifgw.sh vlan5`"
run "setfib 1 route add default `/usr/local/etc/scripts/dhclifgw.sh vlan3`"
run "setfib 1 route add default `/usr/local/etc/scripts/ngifgw.sh ng0`"

Мультикаст принимает udpxy.

Кроме того во фре можно решить задачу с пробросом портов на внутренний хост через насколько внешних интерфейсов, это у меня сильно ограничивает переход на микротики, много где нужно.
https://groups.google.com/forum/#!topic/uafug/zD7fJWDzxAM
Как в микротике реализовать не придумал. С dhclient-exit-hooks тоже непонятно, но хоть статики можно поделать.

Ответить