Мой роутер ClearOS 6(Centos 6). В моем маршрутизаторе у меня есть два внешних (интернет) сетевых подключения от двух интернет-провайдеров.
Первичное соединение - это eth2, подключенное к кабельному модему, а второе - это ppp0, подключенное к DSL-модему. Я назначил eth2 в качестве основного соединения (с высоким значением метрики). Фактически это делается через многопользовательский веб-интерфейс clearos. У меня в Nagios есть тест, чтобы проверить, есть ли первичное соединение. Это соединение выполняется на основе результата
curl ifconfig.me
Но кажется, что ifconfig.me всегда дает IP-адрес моего вторичного подключения. Протестировал через браузер. Да, ifconfig.me дает дополнительный IP-адрес Интернета (ppp0). Но whatismyipaddress. [Com | org] укажите мой основной IP-адрес (eth2). Я проверил маршрут по умолчанию на роутере через
ip route list 0/0
<secondary network> dev ppp0 proto kernel scope link src <secondary ip address>
<primary network> dev eth2 proto kernel scope link src <primary ip address>
<lan> dev eth0 proto kernel scope link src <lan interface address>
default via <primary gateway address> dev eth2
который также показывает основное соединение (eth2) как маршрут по умолчанию.
В
traceroute www.google.com
и
traceroute ifconfig.me
оба, кажется, прослеживаются через основное соединение (eth2).
Поскольку наше вторичное интернет-соединение имеет только ограниченную загрузку, я не хочу, чтобы в конце месяца мне приходилось платить большую сумму.
У кого-нибудь есть идея, почему ifconfig.me показывает мой вторичный адрес?
Как лучше всего убедиться, что мой маршрутизатор (и, следовательно, локальная сеть) использует правильное подключение к Интернету.
На первый взгляд кажется, что ваши маршруты настроены правильно.
Я предлагаю вам использовать Wireshark / T-Shark для просмотра пакетов, покидающих каждый внешний интерфейс (eth2, ppp0) индивидуально, и посмотреть, что происходит, когда вы запускаете свой curl ifconfig.me
команда. Это может дать вам представление о том, почему вы получаете разные результаты с разными инструментами.
Вы пробовали искать другой IP-адрес? инструменты чтобы увидеть, получите ли вы такие же результаты? Опять же, это может быть поучительно.
Как лучше всего убедиться, что мой маршрутизатор (и, следовательно, локальная сеть) использует правильное подключение к Интернету.
Но похоже, что на самом деле вам нужна отработка отказа вместо балансировки нагрузки. Другими словами, вы хотите, чтобы весь ваш трафик покидал ваше основное соединение, а вторичное оставалось только на тот случай, если ваше основное соединение выйдет из строя.
Веса для нескольких WAN используются для балансировки исходящего интернет-трафика. По умолчанию всем интерфейсам WAN дается вес, равный единице. Эта конфигурация по умолчанию означает, что сетевой трафик будет примерно поровну распределяться между различными соединениями WAN.
В одной из типичных конфигураций с несколькими WAN для резервного копирования используется второе широкополосное соединение. Это второе соединение часто является недорогим соединением с низкой пропускной способностью. В этом случае вы захотите установить вес для вашего высокоскоростного соединения на 3 или 4, а для вашего недорогого / недорогого соединения оставьте вес 1.
Как заметил kce, ваши таблицы маршрутизации выглядят правильно. В таком случае я подозреваю, что у вас может быть какой-то настроенный SNAT, даже не осознавая этого.
Сначала попробуйте это: lsmod | grep conntrack
Это нужно для того, чтобы увидеть, загружен ли модуль conntrack. Если это не так, не запускайте следующую команду, это не нужно, и простое действие по перечислению пустой таблицы conntrack загрузит модуль, а не выгрузит его автоматически после этого. Это может быть спящая бомба замедленного действия на серверах с высокой сетевой нагрузкой, которые превышают размер по умолчанию таблицы отслеживания соединений ядра.
Если получится что-то подобное ...
nf_conntrack_ipv4 7597 3 iptable_nat,nf_nat
nf_conntrack 38083 4 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4
nf_defrag_ipv4 779 1 nf_conntrack_ipv4
... затем попробуйте перечислить таблицу conntrack следующим образом:
iptables -vn --line-numbers -t nat -L POSTROUTING
Вы ищете строку с надписью «SNAT» в целевом столбце с IP-адресом вашего вторичного интерфейса справа. Удалите эту строку, и все будет готово.
Надеюсь, это все.