История изменений
Исправление LeninGad, (текущая версия) :
Не должно работать, если модем не проявит «противоестественный интеллект».
Смотрите, предположим, что мы эти правила переписали в iptables один в один (по DNAT на каждую строчку). Тогда у нас для запросов изнутри интерфейс будет не l2tp.blabla, а внутренний, и для них оно вообще не подействует.
Предположим, мы добавили логику, которая превращает DNAT «для интерфейса l2tp» в DNAT «для того destination IP, который сейчас на интерфейсе l2tp». Тогда опять ничего не заработает, потому что ответ от вашего сервера к клиенту «внутри сети» не пройдёт через модемовский NAT (даже если физически он пройдёт через свитч, являющийся частью модема).
Работающая логика — это делать для перенаправляемых запросов «изнутри на внешний адрес» одновременно SNAT и DNAT, так что ваш сервер будет видет запрос с модема, и ему же отвечать. У меня в zyxel keenetic обычная прошивка так делает, специально для случаев, подобных вашему. Ни один предыдущий роутер (ASUS WL500g, WL520g) «из коробки» такого не умел.
Исправление LeninGad, :
Не должно работать, если модем не проявит «противоестественный интеллект».
Смотрите, предположим, что мы эти правила переписали в iptables один в один (по DNAT на каждую строчку). Тогда у нас для запросов изнутри интерфейс будет не l2tp.blabla, а внутренний, и для них оно вообще не подействует.
Предположим, мы добавили логику, которая превращает DNAT «для интерфейса l2tp» в DNAT «для того destination IP, который сейчас на интерфейсе l2tp». Тогда опять ничего не заработает, потому что ответ от вашего сервера к клиенту «внутри сети» не пройдёт через модемовский NAT (даже если физически он пройдёт через свитч, являющийся частью модема).
Работающая логика — это делать для перенаправляемых запросов «изнутри на внешний адрес» одновременно SNAT и DNAT, так что ваш сервер будет видет запрос с модема, и ему же отвечать. У меня в zyxel keenetic обычная прошивка так делает, специально для случаев, подобных вашему. Ни один предыдущий роутер (ASUS WL500g, WL520g) не умел.
Исходная версия LeninGad, :
Не должно работать, если модем не проявит «противоестественный интеллект».
Смотрите, предположим, что мы эти правила переписали в iptables один в один (по DNAT на каждую строчку). Тогда у нас для запросов изнутри интерфейс будет не l2tp.blabla, а внутренний, и для них оно вообще не подействует.
Предположим, мы добавили логику, которая превращает DNAT «для интерфейса l2tp» в DNAT «для того destination IP, который сейчас на интерфейсе l2tp». Тогда опять ничего не заработает, потому что ответ от вашего сервера к клиенту «внутри сети» не пройдёт через модемовский NAT (даже если физически он пройдёт через свитч, являющийся частью модема).
Работающая логика — это делать для перенаправляемых запросов «изнутри на внешний адрес» одновременно SNAT и DNAT, так что ваш сервер будет видет запрос с модема, и ему же отвечать. У меня в zyxel keenetic встроенная прошивка так делает, специально для случаев, подобных вашему.