[Comm]routing problems, iptables? - SOLUTION?

CyberSkunk =?iso-8859-1?q?cyberskunk_=CE=C1_gmail=2Ecom?=
Чт Окт 13 17:17:53 MSD 2005


>> Здравствуйте, CyberSkunk.

>>> Есть провайдер. Инет через адсл-модем.
>>> Есть IP адрес(IP_ADDR1).
>>> Есть второй IP от того же провайдера(IP_ADDR2).
>>> Хочется сделать DNAT на машину из локальной сети(LAN_IP)на машине
>>> с IP_ADDR1 типа

>>> iptables -t nat -A PREROUTING -d IP_ADDR2 -j DNAT --to-destinnation LAN_IP

>>> чтобы при коннекте из инета на IP_ADDR2 пакеты порекидывались в локалку
>>> на LAN_IP машиной с IP_ADDR1.
>>> Не работает.
>>> Откуда могут ноги расти? Как можно эти ноги поискать?

>>> --
>>> Best regards,
>>>  CyberSkunk                          mailto:cyberskunk на gmail.com

>>> _______________________________________________
>>> Community mailing list
>>> Community на altlinux.ru
>>> https://lists.altlinux.ru/mailman/listinfo/community

>>> Ну вопервых обратный трафик надо выпустит (выполнять SNAT)
>> А разве DNAT не делает обратную замену адреса? Впрочем, это не важно,
>> я пробовал и нечто вроде
>>  iptables -t nat -A POSTROUTING -s ! LAN_IP -j SNAT --to-source\
>>  IP_ADDR_1
>>  iptables -t nat -A POSTROUTING -s LAN_IP -j SNAT --to-source\
>>  IP_ADDR2
>>> во вторых форвардинг пакетов разрешить
>> А я из этой локалки, так что если бы бы его не было, я бы не смог
>> письма послать:)
>>> в третьих в таблице filter указать соответствующие правила для
>>> транзитных пакетов( цепочка FORWARD)
>> Есть такое дело.

>> Но все равно не пашет.

>> --
>> Best regards,
>>  CyberSkunk                            mailto:cyberskunk на gmail.com

>> _______________________________________________
>> Community mailing list
>> Community на altlinux.ru
>> https://lists.altlinux.ru/mailman/listinfo/community

>> InetIP -Реальный адрес машины в инете
>> SrvIP  -IP адрес машины в сети на которую осуществляется маршрутизация
echo "1" >> /proc/sys/net/ipv4/ip_forward включаем
echo "1" >> форвардинг пакетов ядре
>это понятно
>> iptables -t nat -A POSTROUTING -s 0/0 -j SNAT --to-source IP_ADDR_1 SrvIP
>не совсем понял что при этом происходит,
>но выяснил такую штуку:
>если запустить на хосте, который проводит маршрутизацию
>tcpdump -i eth0 dst IP_ADDR2
>и попробовать с удаленной машины пингануть IP_ADDR2, то я вижу
>14:34:50.899457 arp who-has IP_ADDR2 tell IP_PROV_GW
>где IP_PROV_GW - адрес провайдеровского гейтвея. Что с этим можно
>сделать?
>--
>Best regards,
> CyberSkunk                            mailto:cyberskunk на gmail.com
Мне помогло дописывание статической записи в arp-кэш внешнего
интерфейса, не знаю уж насколько это правильно:
arp -i eth0 -Ds IP_ADDR2 eth0 pub
где eth0 - интерфейс с адресом IP_ADDR1
--
Best regards,
 CyberSkunk                            mailto:cyberskunk на gmail.com





Подробная информация о списке рассылки community