Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Настройка шлюза и прокси-сервера на основе squid.  (Прочитано 2944 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Steelwolf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Здравствуйте, уважаемые форумчане и форумчанки (если такие имеются :))!

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

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

Для начала опишу сеть. Имеются два провайдера и два клиентских оборудования. Первое оборудование работает в режиме роутера, оно же является точкой доступа Wi-Fi для предоставления свободного доступа в интернет по первому каналу (по-другому никак, так как это требование руководства), второе оборудование работает в режиме моста и предоставляет резервный канал для защищаемой сети.

Далее, в качестве ОС использую Ubuntu Server 12.10. Имеется три сетевых интерфейса, один из которых (eth0) смотрит в локальную защищаемую сеть, а остальные - в сеть провайдера (eth1 для WAN1 и eth2 для WAN2). Для WAN1 параметры сети указываю вручную, для WAN2 - по DHCP.

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

Делаю по пользовательскому руководству http://habrahabr.ru/post/54748/. Мне не понятен момент, для чего необходимо создавать две дополнительные таблицы, если маршруты в них дублируют маршруты, которые генерируются ядром в главной таблице, а дефолтный шлюз потом меняется соотношением использования шлюзов?
Если делаю так, как описано в руководстве, немного подкорректировав - убрав глобальную запись шлюзов и одно условие (так как мне необходимо только резервирование) и используя в качестве адреса назначения для проверки 8.8.8.8, то имитируя  пропадания основного канала, переключение происходит, но сайты не грузятся.
Сначала подумал, что на момент переключения  второй канал был не поднят, но проверил - все нормально. Потом прочитал в инете, что желательно очищать кеш маршрутов. Исправил, добавил запись. Все равно. Сайты не грузятся. Но! При этом пинг идет и трассировку маршрута можно выполнить. То есть маршрутизация с клиентской машины выполняется верно.

Подскажите, пожалуйста, что я делаю не так? :-[

Чуть позже опишу как я представляю себе таблицу маршрутов и вообще опишу все, что я делаю.

P.S. Сильно не пинайте, я недавно начал разбираться с серверными ролями на линуксе. Ну и еще я админ-самоучка.

Пользователь решил продолжить мысль 31 Января 2013, 10:54:17:
Как и сказал выше, прикладываю переделанный мною скрипт.
(Нажмите, чтобы показать/скрыть)
В этом скрипте по сути все тоже самое, что и в скрипте по ссылке, просто я изменил для своего удобства наименование параметров и изменил блоки условий.
В самом начале, еще до применения скрипта, я раскомментировал параметр net.ipv4.ip_forward в /etc/sysctl.conf. Вручную создал таблицы.
Потом применяю часть скрипта до части с проверкой доступности. И дальше уже вручную переключаю.
Я не могу понять сейчас, зачем дублировать маршруты в двух дополнительных таблицах и зачем добавлять записи в главную таблицу, которые автоматически генерируются ядром?
А, и еще мелкий вопрос, простите, за тупость, но что значит выражение "> /dev/null 2>&1"?
« Последнее редактирование: 31 Января 2013, 10:54:17 от Steelwolf »

Оффлайн DDDstart

  • Участник
  • *
  • Сообщений: 197
  • Linux создан для сети, как птица для полета
    • Просмотр профиля
А, и еще мелкий вопрос, простите, за тупость, но что значит выражение "> /dev/null 2>&1"?

Это значит весь выхлоп команды отправить в черную дыру.
Неверующие остаются неверующими только до момента своей смерти

Оффлайн fli

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Если трассировка выполняется успешно, а сайты в браузере не грузятся, это говорит о том, что не резолвятся dns имена.
Пробуй при переключении каналов сделать
nslookup mail.ru
nslookup mail.ru ip dns первого провайдера
nslookup mail.ru ip dns второго провайдера

Можно поставить кеширующий dns на шлюз. Прописать forwards на dns isp1 and isp2.

мне не понятно зачем запись:
ip route add default via $WAN1_Gateway > /dev/null 2>&1
если два провайдера, тогда:
ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \
 nexthop via $P2 dev $IF2 weight $W2

По squid.
Там есть параметр
tcp_outgoing_address
если поставить ip eth0, то, по идее, он должен использовать правило маршрутизации:
ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \
 nexthop via $P2 dev $IF2 weight $W2
т.е. балансировка. Я  не пробовал использовать этот параметр. Не понятно как он себя поведет.

+ момент с dns_nameservers;

Ну это теоретически, в маршрутизации не силен, надеюсь гуру меня поправят.
« Последнее редактирование: 02 Февраля 2013, 00:06:02 от fli »

 

Страница сгенерирована за 0.051 секунд. Запросов: 25.