Назад | Перейти на главную страницу

Различные внешние IP-адреса с разных сайтов

Мой роутер 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-адрес? инструменты чтобы увидеть, получите ли вы такие же результаты? Опять же, это может быть поучительно.


Как лучше всего убедиться, что мой маршрутизатор (и, следовательно, локальная сеть) использует правильное подключение к Интернету.

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

Из Документация ClearOS:

Веса для нескольких 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-адресом вашего вторичного интерфейса справа. Удалите эту строку, и все будет готово.

Надеюсь, это все.