У меня есть сценарий, в котором один компьютер должен быть членом двух подсетей в одной физической сети - 192.168.2.0/24 и 192.168.3.0/24. Я добился этого, используя ifconfig eth0:1 192.168.3.123/24 up
т.д. Проблема возникает, когда я пытаюсь запустить сеанс telnet
с другим хостом, который также является членом этих двух подсетей. Этот хост доступен через telnet на обоих IP
адресах, но когда я пытаюсь подключиться к нему, telnet зависает. Эта проблема исчезает, когда я удаляю один из двух интерфейсов. Я думаю, что также стоит упомянуть, что в Windows
нет проблем с такой же множественной настройкой IP
. Поскольку хост, к которому я пытаюсь подключиться, не может быть настроен или изменен, возможно ли решить эту проблему, скажем, ограничив трафик 192.168.3.0 только eth0:1 или, возможно, имея другой MAC
адрес на этом псевдоинтерфейсе?
2 ответа
Для меня это звучит как проблема с исходным IP-адресом. Я думаю, что есть несколько способов исправить это. Возможно, самым простым было бы отключить фильтрацию обратного пути.
Альтернативным вариантом может быть перезапись пакетов, чтобы гарантировать, что выходной адрес всегда соответствует подсети с парой правил snat - возможно, что-то вроде
iptables -t nat -A POSTROUTING -s 192.168.2.x -o 192.168.3.123 --sport 25
-j SNAT --to 192.168.3.x
Если ваш псевдоним адрес используется только для telnetting на этот сервер, то есть очень простое решение: попросите telnet
привязаться к конкретному адресу, который вы хотите использовать, как в:
telnet -b 192.168.3.123 192.168.3.201
telnet -b 192.168.2.123 192.168.2.201
предполагая, что ваш компьютер имеет адреса 192.168.3.123/192.168.2.123, а удаленный сервер имеет IP-адреса 192.168.3.201/192.168.2.201. Обратите внимание, что адреса источника и назначения должны принадлежать к одной подсети, поскольку вы не указали наличие сетевого шлюза.
Если вместо этого вы используете альтернативный адрес более общего характера (например, если вы получаете вызовы telnet
, и в этом случае вы не можете указать опцию -b
как описано выше), вам нужно будет узнать о маршрутизации политики. Но я думаю, мы пересечем этот мост, когда доберемся туда.