один из моих серверов (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 restart в конечном итоге приведет к получению правильного 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
Обновить по умолчанию:
ip route change default via 81.169.180.1 src 81.169.180.51
Проверить конфигурацию:
ip route list
Ответ bindbn хорош, но я обнаружил некоторые сложности.
1) Вы должны проверить "список IP-маршрутов", как говорит bindbn. Другое правило в списке может иметь приоритет над маршрутом по умолчанию. Возможно, вам потребуется удалить это правило или создать немного другое правило.
2) Все изменения, сделанные с помощью команды ip, действуют только до следующей перезагрузки. Этот ответ Постоянное добавление правил маршрутизации исходной политики объясняет, как сделать это постоянным.
Таким образом, вы можете добавить команду ip route, которую нужно запускать как строку «вверх» или «после», в / etc / network / interfaces. Вы можете добавить соответствующую строку «вниз», чтобы удалить маршрут.
Попробуйте изменить
allow-hotplug eth0
к
auto eth0
Это должно заставить работать ваш физический интерфейс первым. Вам может потребоваться, а может и не потребоваться изменить запись 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. Но при этом я не понимаю, почему ваша текущая установка вообще работает.
Теперь, вызовет ли это проблемы, которые вы видите выше? Я не вижу прямой ссылки, но это возможно.
Я бы определенно это поправил. Если это не поможет, возможно, вы объясните, почему у вас все устроено именно так.
Вы также можете попробовать ifdown
на eth0: 0, затем добавляем маршрут, затем ifup
назад. Это может гарантировать использование правильного IP.
Добавление вручную dev eth0
мощь help, но похоже, что маршрут проложен правильно.
iproute 2
. (Вторичная ссылка) It looks like something along the lines of 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
- Кристофер Карел
Ваша текущая настройка вообще не должна работать. Поскольку сетевая маска для обоих интерфейсов - 255.255.255.255, для шлюза нет места. Однако для доставки любого значимого трафика вашему серверу нужен шлюз. Интернет-провайдер, предоставляющий два общедоступных IP-адреса, также должен предоставить вам сетевую маску и настройки шлюза для обоих IP-адресов.
Пример (это мой частный сервер и настоящие IP-адреса):
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 217.10.144.208 0.0.0.0 255.255.255.248 U 0 0 0 eth0 0.0.0.0 217.10.144.209 0.0.0.0 UG 0 0 0 eth0
Сам сервер находится на 217.10.144.210, который находится в той же подсети, что и шлюз (должен, иначе трафик не может быть маршрутизирован). Предположительно интернет-провайдер предоставляет ту же подсеть для некоторых других клиентов.
Если вы находитесь на этом сервере и выполняете эхо-запрос на свой шлюз, вы должны получить сообщение «Нет маршрута к хосту».
Поговорите с интернет-провайдером и получите правильные настройки, затем обновите конфигурацию интерфейса, перезапустите сеть и проверьте ее снова.