Роутинг: использование дефолтного гейта при нескольких каналах

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение IMB »

Доброго дня!
Есть сервер с несколькими каналами доступа в интернет. Маршрут по умолчанию сконфигурирован так:

Код: Выделить всё

default
        nexthop via 62.205.x.y  dev eth1 weight 1
        nexthop via 212.48.c.d  dev vlan144 weight 3
        nexthop via 217.12.e.f  dev vlan253 weight 3

На один из интерфейсов добавлено несколько ip-адресов:

Код: Выделить всё

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP ql
    link/ether 00:17:9a:3a:60:a0 brd ff:ff:ff:ff:ff:ff
    inet 62.205.a.b/28 brd 62.205.x.y scope global eth1
    inet 62.205.c.d/28 brd 62.205.x.y scope global secondary eth1
    inet 62.205.e.f/28 brd 62.205.x.y scope global secondary eth1
    inet 62.205.g.h/28 brd 62.205.x.y scope global secondary eth1

Зачем этого надо - через эти адреса доступно ряд устройств внутри сети и выходит один из компьютеров, средствами iptables настроен NAT.
Для маршрутизации заданы следующие правила:

Код: Выделить всё

32753:  from 62.205.a.b lookup T1
32754:  from 62.205.c.d lookup T1
32755:  from 62.205.e.f lookup T1
32756:  from 62.205.g.h lookup T1
...................................
32766:  from all lookup main
32767:  from all lookup default

В таблице T1 прописан маршрут по умолчанию для данного интерфейса - default via 62.205.x.y dev eth1.
Проблема в том, что при данной конфигурации выход в сеть через 62.205.c.d не работает, пакеты не идут через маршрут по умолчанию.
Когда я запрашиваю маршрут вывод следующий:

Код: Выделить всё

ip r get 8.8.8.8 from 62.205.c.d
8.8.8.8 from 62.205.c.d via 62.205.x.y dev eth1
    cache  mtu 1500 advmss 1460 hoplimit 64

tcpdump показывает следующее:

Код: Выделить всё

17:05:33.942019 IP 62.205.c.d > 8.8.8.8: ICMP echo request, id 512, seq 64265, length 40
17:05:33.943402 IP 217.12.251.1 > 62.205.c.d: ICMP host 8.8.8.8 unreachable - admin prohibited filter, length 36
17:05:34.942045 IP 62.205.c.d > 8.8.8.8: ICMP echo request, id 512, seq 64521, length 40
17:05:34.943478 IP 217.12.251.1 > 62.205.c.d: ICMP host 8.8.8.8 unreachable - admin prohibited filter, length 36
17:05:35.942103 IP 62.205.c.d > 8.8.8.8: ICMP echo request, id 512, seq 64777, length 40
17:05:35.943318 IP 217.12.251.1 > 62.205.c.d: ICMP host 8.8.8.8 unreachable - admin prohibited filter, length 36

Если пинговать дефолтный шлюз 62.205.x.y, то пакеты проходят.
На "жертве", компьютер с WindowsXP, это выглядит следующим образом - либо сразу "Сеть не доступно", либо после некоторого времени "Превышено время ожидания".
Как только я переключился на использование одного канала с шлюзом 62.205.x.y всё сразу заработало.
Складывается непонятная для меня ситуация, с одной стороны роутинг прописан правильно, как мне кажется, с другой - пакеты идут по совершенно другому маршруту.
Где я ошибся в конфигурировании системы или я не учитываю некие факторы?
Спасибо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

$ ip r get 8.8.8.8
?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение IMB »

Код: Выделить всё

default via 62.205.x.y dev eth1

ip r g 8.8.8.8
8.8.8.8 via 62.205.x.y dev eth1  src 62.205.a.b
    cache  mtu 1500 advmss 1460 hoplimit 64

Код: Выделить всё

default
        nexthop via 62.205.x.y  dev eth1 weight 1
        nexthop via 212.48.a.b  dev vlan144 weight 3
        nexthop via 217.12.c.d  dev vlan253 weight 3

ip r g 8.8.8.8
8.8.8.8 via 212.48.a.b dev vlan144  src 212.48.g.а
    cache  mtu 1500 advmss 1460 hoplimit 64

При нескольких маршрутах, как и ожидается, выборным методом.
При смене конфигурации маршрута по-умолчанию выполняю ip route flush cache.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

IMB писал(а):
14.03.2011 18:22
ip r g 8.8.8.8
8.8.8.8 via 212.48.a.b dev vlan144 src 212.48.g.а
cache mtu 1500 advmss 1460 hoplimit 64

так. пакеты к 8.8.8.8 пошли бы (в тот момент) через vlan144.
212.48.a.b — что это за адрес? это провайдерский шлюз 217.12.251.1, как я понимаю?

p.s. tcpdump из первого поста какой интерфейс слушал?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение IMB »

sash-kan писал(а):
15.03.2011 17:54
так. пакеты к 8.8.8.8 пошли бы (в тот момент) через vlan144.
212.48.a.b — что это за адрес? это провайдерский шлюз 217.12.251.1, как я понимаю?

212.48.a.b это дефолтный гейт одного из провайдеров, а 217.12.251.1 это вход в сеть другого провайдера

tcpdump-ом я слушал интерфейс eth1 на котором и находится интересующий меня адрес
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

IMB
прошу прощения, что-то я не разглядел, что адреса совсем разные.

ок.

из этого:
IMB писал(а):
14.03.2011 17:44
17:05:33.943402 IP 217.12.251.1 > 62.205.c.d: ICMP host 8.8.8.8 unreachable - admin prohibited filter, length 36
можно предположить, что машине 217.12.251.1 не нравится адрес отправителя 62.205.c.d.
у вас на eth1, случайно, не завалялось адреса, который понравится машине 217.12.251.1?
если да, настройте snat соответствующим образом. если нет, уберите из дефолтного маршрута таблицы main ip-адрес шлюза, за которым находится эта самая машина 217.12.251.1

хотя стоп. на eth1 у вас шлюзом стоит только 62.205.x.y. это за ним, что ли, находится машина 217.12.251.1? а что ж ей тогда не нравится в ваших пакетах? может, ей вообще пинг-реквесты не нравятся?

p.s. покажите уж полную расшифровку этих двух пакетов:
IMB писал(а):
14.03.2011 17:44
17:05:33.942019 IP 62.205.c.d > 8.8.8.8: ICMP echo request, id 512, seq 64265, length 40
17:05:33.943402 IP 217.12.251.1 > 62.205.c.d: ICMP host 8.8.8.8 unreachable - admin prohibited filter, length 36

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

sash-kan писал(а):
15.03.2011 23:27
прошу прощения, что-то я не разглядел, что адреса совсем разные.
тьфу, всё правильно я разглядел. но неправильно в пост вставил.
вот так правильно будет звучать мой вопрос:
"217.12.c.d — что это за адрес? это провайдерский шлюз 217.12.251.1, как я понимаю?"

и он вам ответил на интерфейсе eth1, а не на vlan253???
этот вилан физически не через eth1 ли проходит?
может, в его настройке и зарыта собака?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение IMB »

sash-kan писал(а):
15.03.2011 23:38
sash-kan писал(а):
15.03.2011 23:27
прошу прощения, что-то я не разглядел, что адреса совсем разные.
тьфу, всё правильно я разглядел. но неправильно в пост вставил.
вот так правильно будет звучать мой вопрос:
"217.12.c.d — что это за адрес? это провайдерский шлюз 217.12.251.1, как я понимаю?"

217.12.c.d это мой дефолтный гейт у этого провайдра, а 217.12.251.1 это шлюз в сеть этого провайдера, т.е. дефолтный гейт для всей сети этого провайдера
sash-kan писал(а):
15.03.2011 23:38
и он вам ответил на интерфейсе eth1, а не на vlan253???
этот вилан физически не через eth1 ли проходит?
может, в его настройке и зарыта собака?

Да, vlan253 физически находится на eth1.
Собственно, вот настройки интерфейсов:

Код: Выделить всё

allow-hotplug eth1
iface eth1 inet static
        address 62.205.a.b
        netmask 255.255.255.240
        broadcast 62.205.w.z
        post-up /bin/ip route flush table corbina
        post-up /bin/ip route add default via 62.205.x.y table corbina
        post-up /bin/ip rule add from 62.205.a.b table corbina
        post-up /bin/ip route add 195.14.50.1 via 62.205.x.y
        post-up /bin/ip route add 195.14.50.21 via 62.205.x.y
        post-up /bin/ip address add 62.205.c.d/28 brd 62.205.w.z \
            dev eth1
        post-up /bin/ip address add 62.205.e.f/28 brd 62.205.w.z \
            dev eth1
        post-up /bin/ip address add 62.205.g.h/28 brd 62.205.w.z \
            dev eth1
        post-up /bin/ip rule add from 62.205.c.d table corbina
        post-up /bin/ip rule add from 62.205.e.f table corbina
        post-up /bin/ip rule add from 62.205.g.h table corbina
        post-up /bin/ip route flush cache
        post-down /bin/ip rule delete from 62.205.a.b
        post-down /bin/ip rule delete from 62.205.c.d
        post-down /bin/ip rule delete from 62.205.e.f
        post-down /bin/ip rule delete from 62.205.g.h

auto vlan253
iface vlan253 inet static
    address 217.12.a.b
    netmask 255.255.255.0
    vlan_raw_device eth1
    post-up /bin/ip route flush table rcs
    post-up /bin/ip route add default via 217.12.c.d table rcs
    post-up /bin/ip route add 217.12.242.34 via 217.12.c.d
    post-up /bin/ip route add 217.12.244.2 via 217.12.c.d
    post-up /bin/ip rule add from 217.12.a.b table rcs
    post-up /bin/ip route flush cache
    post-down /bin/ip rule delete from 217.12.a.b
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

IMB писал(а):
16.03.2011 09:16
Собственно, вот настройки интерфейсов
подтянутся знатоки vlan-ов, подскажут.

я могу только направление для размышлений подсказать:
$ sudo ip r d default
$ sudo ip r a default via 217.12.c.d dev vlan253

подозреваю, после этого на пинг будет тот же самый ответ:
host 8.8.8.8 unreachable - admin prohibited filter
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение IMB »

sash-kan писал(а):
16.03.2011 10:47
я могу только направление для размышлений подсказать:
$ sudo ip r d default
$ sudo ip r a default via 217.12.c.d dev vlan253

Это не очень удачный вариант, так как в данном случае целиком не используются все доступные каналы.
sash-kan писал(а):
16.03.2011 10:47
подозреваю, после этого на пинг будет тот же самый ответ:
host 8.8.8.8 unreachable - admin prohibited filter

Эта фраза наводит на мысль, что у меня в настройке явная ошибка. Но начало ответа это не подтверждает.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

IMB
так что происходит после замены трёх-шлюзового маршрута на одно-шлюзовый (именно via 217.12.c.d dev vlan253)?

IMB писал(а):
16.03.2011 09:16
sash-kan писал(а):
15.03.2011 23:38
и он вам ответил на интерфейсе eth1, а не на vlan253???
этот вилан физически не через eth1 ли проходит?
может, в его настройке и зарыта собака?

Да, vlan253 физически находится на eth1.
никогда vlan-ами не пользовался, но подозреваю, что
$ sudo tshark -pni eth1
не должен бы показывать трафик, гуляющий по vlan253.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

sash-kan писал(а):
16.03.2011 13:25
никогда vlan-ами не пользовался, но подозреваю, что
$ sudo tshark -pni eth1
не должен бы показывать трафик, гуляющий по vlan253.
а, так проверить просто. трафик до 217.12.c.d должен быть виден так:
$ sudo tshark -pni vlan253
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение IMB »

sash-kan писал(а):
16.03.2011 13:25
IMB
так что происходит после замены трёх-шлюзового маршрута на одно-шлюзовый (именно via 217.12.c.d dev vlan253)?

Честно говоря этот вариант я не проверял, быстрым решением оказалось переключение на одношлюзовый вариант 62.205.x.y.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Роутинг: использование дефолтного гейта при нескольких каналах

Сообщение sash-kan »

IMB писал(а):
16.03.2011 14:17
sash-kan писал(а):
16.03.2011 13:25
IMB
так что происходит после замены трёх-шлюзового маршрута на одно-шлюзовый (именно via 217.12.c.d dev vlan253)?

Честно говоря этот вариант я не проверял, быстрым решением оказалось переключение на одношлюзовый вариант 62.205.x.y.
так проверьте. судя по прослеживающейся логике, пакеты будут точно также иметь адрес отправителя 62.205.c.d, и, следовательно, будет точно такой же отлуп от 217.12.251.1.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: