один из моих серверов (Debian 5.0.6) имеет два открытых ip-адреса на одном интерфейсе. Раньше это работало хорошо в течение нескольких месяцев, но внезапно он использует «неправильные» IP-адреса для исходящих соединений. Это проблема, потому что обратный поиск не будет совпадать, и письма получат спам.
eth0 Link encap:Ethernet Hardware Adresse 00:1b:21:14:8e:9c
inet Adresse:81.169.180.51 Bcast:81.169.180.51 Maske:255.255.255.255
inet6-Adresse: fe80::21b:21ff:fe14:8e9c/64 Gültigkeitsbereich:Verbindung
eth0:0 Link encap:Ethernet Hardware Adresse 00:1b:21:14:8e:9c
inet Adresse:85.214.157.120 Bcast:85.214.157.120 Maske:255.255.255.255
Kernel-IP-Routentabelle
Destination Router Genmask Flags Metric Ref Use Iface
81.169.180.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
0.0.0.0 81.169.180.1 0.0.0.0 UG 0 0 0 eth0
В настоящее время он использует 85.214.157.120 для исходящих соединений. Как мне заставить его использовать 81.169.180.51?
Изменить : Маска сети 255.255.255.255 согласуется как с документацией, так и с ответом DHCP хостинговой компании. Вызов /etc/init.d/networking перезапускается несколько раз, и в итоге получится правильный IP-адрес для исходящих соединений. Но это, очевидно, не стабильное решение. /Редактировать
Изменить 2 : Чтобы убедиться, что маршрут хоста не связан с моей проблемой, я настраиваю локальную тестовую сеть:
eth0 inet Adresse:192.168.0.2 Bcast:192.168.0.255 Maske:255.255.255.0
eth0:0 inet Adresse:192.168.0.3 Bcast:192.168.0.255 Maske:255.255.255.0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Если у кого-то есть идея, как убедиться, что исходящий IP-адрес 192.168.0.2 используется для исходящих соединений tcp, я был бы благодарен. / Изменить 2
Ответ от bindbn хорош, но я обнаружил некоторые сложности.
1) Вы должны проверить «список маршрутов ip», как говорит bindbn. Некоторые другие правила в списке могут иметь приоритет над маршрутом по умолчанию. Возможно, вам придется удалить это правило или создать немного другое правило.
2) Все изменения, сделанные с помощью команды ip, работают только до следующей перезагрузки. Этот ответ Постоянное добавление правил маршрутизации политики источника объясняет, как сделать его постоянным.
Таким образом, вы можете добавить команду ip route, которую вам нужно запустить как строку «вверх» или «после» в файл / etc / network / interfaces. Вы можете добавить соответствующую строку «вниз», чтобы удалить маршрут.
источник
Попробуйте изменить
в
Это должно заставить ваш физический интерфейс появиться первым. Вам также может понадобиться изменить запись allow-hotplug для eth0: 0.
источник
Из любопытства, почему ваши IP-адреса имеют сетевую маску 255.255.255.255? Это действительно невозможно, поскольку это будет означать, что весь адрес является сетью. Нет места для хозяев. Тот факт, что ваш широковещательный адрес совпадает с IP-адресом вашего хоста, также вызывает беспокойство, но, вероятно, из-за проблемы с маской сети. Скорее всего, ваша сетевая маска должна быть 255.255.255.0.
Это было сделано, чтобы дать вам два хоста в одной подсети? Может быть предпочтительнее просто внести изменения, чтобы каждый интерфейс находился в отдельной подсети. 255.255.255.128 поместит eth0 и ваш шлюз (из 81.169.180.1) в одну подсеть, с eth0: 0 в отдельную подсеть. Однако это будет означать, что eth0 может общаться только с 81.169.180.1-81.169.180.127. И eth0: 0 идет от 129-254. Но, как говорится, я не могу понять, почему ваша текущая настройка работает вообще.
Теперь, это вызовет проблемы, которые вы видите выше? Я не вижу прямой ссылки, но это возможно.
Это конечно то, что я бы подправил. Если это не поможет, возможно, вы сможете объяснить, почему у вас все настроено таким образом.
Изменить: Это работало нормально на этом хосте, или это была другая машина / ОС? Есть идеи, что могло измениться? Причина, по которой я спрашиваю, состоит в том, что Linux действительно не любит иметь два интерфейса в одной подсети. Это сводило меня с ума, пытаясь заставить это работать в моей собственной сети. Вполне возможно, что вы работали с правильным IP, до тех пор, пока вы не перезагрузили / не перезапустили сетевые службы. Тогда это пришло, используя неправильный интерфейс. Ссылка: http://anders.com/cms/258
Вы также можете примерить
ifdown
eth0: 0, затем добавить маршрутifup
и вернуться обратно. Это может гарантировать, что правильный IP будет использован.Добавление вручную
dev eth0
может помочь, но кажется, что маршрут был сделан правильно.Далее Edit: Вы можете попробовать использовать новейшие средства управления IP в Debian,
iproute 2
. ( Вторичная ссылка ) Похоже, что-то вроде того, чтобыпривести интерфейс вверх:
ip link set eth0 up
ip addr add 192.168.0.2/24 dev ethe0
ip addr add 192.168.0.3/24 dev eth0
Затем
ip route add 10.0.0.0/16 via 192.168.0.2
настройте таблицу маршрутизации с помощью --Christopher Karel
источник
Ваши текущие настройки не должны работать вообще. Поскольку маска маски для обоих интерфейсов 255.255.255.255, нет места для шлюза. Однако для доставки значимого трафика вашему серверу нужен шлюз. Интернет-провайдер, предоставляющий два общедоступных IP-адреса, также должен предоставить вам настройки сетевой маски и шлюза для обоих IP-адресов.
Пример (это мой частный сервер и IP-адреса действительны):
Сам сервер находится на 217.10.144.210, который находится в той же подсети, что и шлюз (должен, иначе трафик не может быть маршрутизирован). Предположительно, провайдер предоставляет такую же подсеть для некоторых других клиентов.
Если вы находитесь на этом сервере и выполняете эхо-запрос на свой шлюз, вы должны получить сообщение «Нет маршрута к хосту».
Поговорите с интернет-провайдером и получите правильные настройки, затем обновите конфигурацию интерфейса, перезапустите сеть и проверьте снова.
источник