FunkyByte
30-07-2009, 11:28
Доброго времени суток! На компьютере есть 2 сетевых подключения - ненадёжный, но постоянно присутствующий Wi-Fi и надёжный, но переодически отключаемый мной Ethernet (не спрашивайте, почему так, причины лежат вне IT). Оба соединения идут на роутер Zyxel p330w, на котором поднят NAT. Адреса соответственно тоже выдаются роутером: 192.168.1.2 для Wi-Fi интерфейса и 192.168.1.4 для Ethernet. Кроме того на роутере настроен проброс портов на 192.168.1.2 для файлообменных сетей. Задача следующая: сделать так, чтобы при наличии Ethernet-подключения траффик по максимуму шёл через него, а при отсутствии оного - куда деваться - шёл через Wi-Fi. Сделать это было бы относительно просто - принудительно выставить метрику ethernet-подключения меньше, чем у Wi-Fi - если бы не проброс портов. Роутер пробрасывать одни и те же порты на 2 адреса не умеет. Клиентам осла и торрента тоже не объяснишь, что на 192.168.1.2 слушай вот эти порты, а на 192.168.1.4 - вот эти другие.
Попробовал реализовать компромиссный вариант - таки выставить метрику ethernet-соединения 20, у WiFi - 25, но при этом смартшуртизировать подсети, откуда идёт p2p-траффик, на WiFi, выставив для этих подсетей метрику 15 и WiFi-подключение в роли интерфейса. Например, так route -p add 213.178.32.0 mask 255.255.224.0 192.168.1.1 metric 15 if 0x2Тем самым p2p-траффик продолжал идти через WiFi. Остальной траффик при этом шёл через ethernet. Проблема в том, что после того, как WiFi в очередной раз отвалился и поднялся заново, номер его интерфейса сбился (стал вместо 0x2 0x50002) и соответственно вся маршрутизация пошла прахом. По результатам этих мытарств, у меня возникли следующие вопросы:
можно ли при задании роута сетевой интерфейс указывать не через его номер, а, скажем, через IP-адрес?
можно ли принудительно задать номер сетевого подключения, который не менялся бы при обрыве связи и её восстановлении?
может быть всё же возможно "на лету" как-то перенаправить p2p-траффик на ethernet? Может возможно как-то организовать на роутере перепроброс портов, например, при выдаче адреса 192.168.1.4?
Попробовал реализовать компромиссный вариант - таки выставить метрику ethernet-соединения 20, у WiFi - 25, но при этом смартшуртизировать подсети, откуда идёт p2p-траффик, на WiFi, выставив для этих подсетей метрику 15 и WiFi-подключение в роли интерфейса. Например, так route -p add 213.178.32.0 mask 255.255.224.0 192.168.1.1 metric 15 if 0x2Тем самым p2p-траффик продолжал идти через WiFi. Остальной траффик при этом шёл через ethernet. Проблема в том, что после того, как WiFi в очередной раз отвалился и поднялся заново, номер его интерфейса сбился (стал вместо 0x2 0x50002) и соответственно вся маршрутизация пошла прахом. По результатам этих мытарств, у меня возникли следующие вопросы:
можно ли при задании роута сетевой интерфейс указывать не через его номер, а, скажем, через IP-адрес?
можно ли принудительно задать номер сетевого подключения, который не менялся бы при обрыве связи и её восстановлении?
может быть всё же возможно "на лету" как-то перенаправить p2p-траффик на ethernet? Может возможно как-то организовать на роутере перепроброс портов, например, при выдаче адреса 192.168.1.4?