LINUX.ORG.RU

Два провайдера и один со своим блэкджеком

 ,


0

1

Есть два провайдера. Оба не резервные. Просто, один обычный, а второй спущен «сверху» и им «постановили» пользоваться. Один, условно, comcor, а второй «департамент».
В чем прелесть: Можно было бы просто пользоваться услугами обычного, но в подсети от департамента находятся разного рода ресурсы, на которые обязывают то же заходить. Из внешней сети они недоступны, а только если дефолт маршрут к гейту такого провайдера.
Можно конечно сделать что-то типа

ip rule add to 192.168.3.3 table department pref 30000
ip route add default via 192.168.1.1 dev eth1 table department
где 192.168.3.3 один из ip внутренних ресурсов такого провайдера, но одним ip дело не обойдется. ну, то есть, да - забить все это дело в конфиг /etc/netplan/блаблабла. Но как вижу это я - получится простыня из ip адресов.

Вопрос. Можно ли вместо ip ресурсов указать какой-то address list? Ну и, наверное, сам лист генерить посредством layer7, нет? То есть забить регулярок (доменные имена ресурсов) и тем самым генерить список ip и подкидывать его для маршрутов. +генерация ip от dns такого прова, а не от внешнего.
И вообще. В правильном ли направлении иду? Как более грамотно в таком случае поступить? А то, похоже, вообще выкатил ересь. Не сталкивался с таким.
так-то, если гуглить тему, то если мультипровайдинг, то только на случай резервного варианта, «если вдруг что». Или разделение клиентов, кто через какой гейт ходить будет.

★★★

Последнее исправление: ESTAF (всего исправлений: 1)

Пропиши на шлюзе, куда подключены эти два провайдера и через который ходит твоя внутренняя сеть, что маршруты до сети за вторым провайдером ходят через его шлюз.

Вопрос. Можно ли вместо ip ресурсов указать какой-то address list?

Пропиши в ip rule сеть целиком.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Пропиши в ip rule сеть целиком.

Попробовал на вм
Ну еще и, если вдруг реально ляжет обычный провайдер. Только как систему оповещения еще сделать пингом. Но это потом попробую доделать. rt_tables

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
#nain######
10      primary
20      secondary
30      depart

И я не знаю, стоит ли менять /etc/netplan/00-installer-config.yaml на какой-то другой, как в интернетах примеры приводят. Он и так работает.

network:
  version: 2
  renderer: networkd
  ethernets:
    ens38:
      addresses: [172.16.54.131/24]
      routes:
        - to: 0.0.0.0/0
          from: 172.16.54.131
          via: 172.16.54.2
          metric: 100
        - to: 0.0.0.0/0
          via: 172.16.54.2
          table: 10
      routing-policy:
        - from: 172.16.54.131
          table: 10
          priority: 31000
      nameservers:
        addresses: [8.8.8.8]
    ens33:
      addresses: [192.168.1.5/24]
      routes:
        - to: 0.0.0.0/0
          from: 192.168.1.5
          via: 192.168.1.1
          metric: 200
        - to: 0.0.0.0/0
          via: 192.168.1.1
          table: 20
        - to: 0.0.0.0/0
          via: 192.168.1.1
          table: 30
      routing-policy:
        - from: 192.168.1.5
          table: 20
          priority: 32000
        - to: 192.168.3.0/24
          table: 30
          priority: 30000
      nameservers:
        addresses: [192.168.1.1]
    ens37:
      addresses: [192.168.2.1/24]
      nameservers:
        addresses: []
172.16.54.0/24 это типа сеть обычного прова. 192.168.1.0/24 департамент. 3.0/24 одна из его подсетей. Все имена и явки вымышленные. Виртуалка же.
Но так-то работает, если с клиента смотреть.
C:\Users\iron>tracert 192.168.3.3

Трассировка маршрута к 192.168.3.3 с максимальным числом прыжков 30

  1    <1 мс    <1 мс    <1 мс  192.168.2.1
  2    <1 мс    <1 мс    <1 мс  192.168.1.1
  3     1 ms    <1 мс    <1 мс  192.168.3.3
сорри за оффтоп. Просто проверял виндулет оц машину.
C:\Users\iron>tracert ya.ru

Трассировка маршрута к ya.ru [87.250.250.242]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.2.1
  2    <1 мс    <1 мс    <1 мс  172.16.54.2
  3     1 ms    <1 мс    <1 мс  192.168.9.1
  4     5 ms     1 ms     1 ms  10.4.216.1[/br]
Будет ли, правда, в реале это работать. Еще не знаю, что там за подсети. Там так - приди сделай, стань передо мной, как лист перед травой и сделай в раз.

ESTAF ★★★
() автор топика
Ответ на: комментарий от chenbr0

На работе ты сопротивляешься пользоваться провайдером, в сети которого есть ресурсы для работы? Я правильно понял?

Ну, почему. Ходить же по впн на работу иногда надо, да и скорость у обычного лучше. А то, что для работы, надо сделать, чтоб работало.

ESTAF ★★★
() автор топика

Можно навелосипедить что-нить типа такого(код не проверял):

#!/bin/bash

GATEWAY='192.168.0.1'
LIST='domain_names.list'
SET='DEPARTMENT'
TABLE='department'
IFACE='eth0'

# echo 2 > /proc/sys/net/ipv4/conf/${IFACE}/rp_filter # Или это же через sysctl.conf
# echo 1 > /proc/sys/net/ipv4/ip_forward
ipset create ${SET} hash:ip family inet
while read NAME
do
    IP=$(host -t A ${NAME} | cut -d' ' -f 4)
    ipset add ${SET} ${IP}
done<${LIST}
ipset save > /etc/ipset.conf
iptables -I PREROUTING -t mangle -m set --match-set ${SET} dst -j MARK --set-mark 1
#echo 250 ${TABLE} >> /etc/iproute2/rt_tables # Это делаем один раз
ip route add default via ${GATEWAY} table ${TABLE}
ip rule add prio 100 fwmark 1 lookup ${TABLE}
iptables -t nat -A POSTOUTING -o ${IFACE} -j MASQUERADE
└─> cat domain_names.list
google.ru
ya.ru

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

IP=$(host -t A ${NAME} | cut -d' ' -f 4)

ну не факт, хотя..

Не. Просто сужу по своему rpz в named. там у меня то же есть всякие записи, типа

vk.com       A   127.0.0.1
По dig/nslookup/ping как бы все ок. А вот в адресс строке в браузере забиваешь имя и вуаля - ты на ресурсе.
Если только layer7 использовать и делать лист, но еще не изучал.

2 shell-script
Спасибо за помощь.

ESTAF ★★★
() автор топика