Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (6)
  • Как сделать два отдельно работающих провайдера на одном сервере?

    @sergeevav82
    Вот для примера, как и обещал:
    В /etc/iproute2/rt_tables добавляем
    101     P1  -  Провайдер1
    102     P2  -  Провайдер2


    routing.sh
    echo "Чистим таблицы"
    ip route flush table P1
    ip route flush table P2
    echo "Чистим правила в таблицах"
    ip rule delete table P1
    ip rule delete table P2
    echo "Чистим кэш"
    ip route flush cache
    echo "Заносим gw в таблици"
    ip route add default via <шлюз 1-го провайдера> dev <интерфейс 1-го прова> table P1
    ip route add default via <шлюз 2-го провайдера> dev <интерфейс 2-го прова> table P2
    echo "Добавляем правила в таблици"
    ip rule add from <IP 1-го прова> table P1
    ip rule add from <IP 2-го прова> table P2
    echo "Добавляем правила в таблици по маркировке"
    ip rule add fwmark 1 table P1
    ip rule add fwmark 2 table P2
    echo "Заносим сети провайдера в таблицу 1"
    ip route add <Сеть 1-го прова> dev <интерфейс 1-го прова> src <IP 1-го прова> table P1
    echo "Заносим сети провайдера в таблицу 2"
    ip route add <Сеть 2-го прова> dev <интерфейс 2-го прова> src <IP 2-го прова> table P2
    echo "Заносим локальные сети в таблицу 1"
    ip route add <локальная сеть> dev <интерфейс локалки> src <IP на интерфейсе локалки> table P1
    ip route add 127.0.0.0/8 dev lo table P1
    echo "Заносим локальные сети в таблицу 2"
    ip route add <локальная сеть> dev <интерфейс локалки> src <IP на интерфейсе локалки> table P2
    ip route add 127.0.0.0/8 dev lo table P2
    echo "Удаляем маршрут по умолчанию"
    ip route del default
    echo "Создаем маршрут по умолчанию"
    ip route add default scope global nexthop via <шлюз 1-го прова> dev <интерфейс 1-го прова> weight 1 nexthop via <шлюз 2-го прова> dev <интерфейс 2-го прова> weight 1


    Если провайдер выдает динамику, то можно в качестве параметров скрипту передавать IP и шлюз

    Вырезка из правил iptables

    *mangle
    :PREROUTING ACCEPT [0:0]
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :POSTROUTING ACCEPT [0:0]
    :balance - [0:0]
    -A PREROUTING -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
    -A PREROUTING -i <интерф. прова1> -m state --state NEW -j CONNMARK --set-xmark 0x1/0xffffffff
    -A PREROUTING -i <интерф. прова2> -m state --state NEW -j CONNMARK --set-xmark 0x2/0xffffffff
    -A PREROUTING -d <IP или сеть> -j CONNMARK --set-xmark 0x1/0xffffffff  - это принудительный выход через 1-го прова.
    -A PREROUTING -d <IP или сеть> -j CONNMARK --set-xmark 0x2/0xffffffff   - это принудительный выход через 2-го прова.
    -A PREROUTING -i <интерфейс локалки> -m state --state NEW -j balance
    -A PREROUTING -m connmark --mark 0x1 -j MARK --set-xmark 0x1/0xffffffff
    -A PREROUTING -m connmark --mark 0x2 -j MARK --set-xmark 0x2/0xffffffff
    -A PREROUTING -m state --state NEW -m connmark ! --mark 0x0 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
    -A OUTPUT -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
    -A OUTPUT -m state --state NEW -j balance
    -A balance -o lo -j RETURN
    -A balance -o <интерфейс локалки> -j RETURN
    -A balance -m connmark ! --mark 0x0 -j RETURN
    -A balance -m state --state RELATED,ESTABLISHED -j RETURN
    -A balance -j CONNMARK --set-xmark 0x2/0xffffffff
    -A balance -j RETURN


    В итоге вывод команды ip ro будет следующим.
    ..........
    default 
            nexthop via <шлюз 1-го прова>  dev <интерфейс 1-го прова> weight 1
            nexthop via <шлюз 2-го прова>  dev <интерфейс 2-го прова> weight 1
    ...........


    Оба провайдера работают как на вход так и на выход.
    Ответ написан
  • Настройка iptable на debian, как правильно написать правило?

    @sergeevav82
    Что то типа вот такого
    iptables -I INPUT ! -s 213.200.0.0/16 -p tcp --dport 22 -j DROP
    /etc/init.d/iptables-persistent save
    Пакет iptables-persistent, позволяет всего лишь при загрузке загрузить правила. Записанные в файлах при команде save.
    А для изучения вот рекомендую Ссылка 1 и Ссылка 2

    Файл примет следующий вид:
    # Generated by ip6tables-save v1.4.14 on Thu Feb 13 09:03:29 2014
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT ! -s 213.200.0.0/16 -p tcp --dport 22 -j DROP
    COMMIT
    # Completed on Thu Feb 13 09:03:29 2014
    Ответ написан