Дано маршрутизатор с несколькими интерфейсами
eth0 - с реальным ip смотрит к провайдеру,
eth1,eth2,eth3,eth4 смотрит во внутреннюю сеть.на eth3 подключен маршрутизатор клиента, который хочет чтобы у него был реальный ip.
используемые правила маршрутизации:IPTABLES="/sbin/iptables"
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -P FORWARD DROP
$IPTABLES -A FORWARD -d 192.168.0.0/255.255.0.0 -i eth0 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 0.0.0.0/0.0.0.0 -o eth0 -j SNAT --to-source $REAL_IP
$IPTABLES -A FORWARD -s $LOCAL_IP -o eth0 -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
$IPTABLES -A FORWARD -s $LOCAL_IP -o eth0 -m mac --mac-source 66:77:88:99:AA:BB -j ACCEPT
....При этом используется UTM 5.0 для снятия статистики и блокировки пользователя.
Нужно сделать клиенту реальный ip на его маршрутизатор (D-Link) с привязкой к MAC чтобы трафик считался и машина блокировалась, в случае если средсва на счете израсходованы.
>Дано маршрутизатор с несколькими интерфейсами
>eth0 - с реальным ip смотрит к провайдеру,
>eth1,eth2,eth3,eth4 смотрит во внутреннюю сеть.
>
>на eth3 подключен маршрутизатор клиента, который хочет чтобы у него был реальный
>ip.
>
>
>используемые правила маршрутизации:
>
>IPTABLES="/sbin/iptables"
>echo 1 > /proc/sys/net/ipv4/ip_forward
>$IPTABLES -P FORWARD DROP
>$IPTABLES -A FORWARD -d 192.168.0.0/255.255.0.0 -i eth0 -j ACCEPT
>$IPTABLES -t nat -A POSTROUTING -s 0.0.0.0/0.0.0.0 -o eth0 -j SNAT --to-source
>$REAL_IP
>$IPTABLES -A FORWARD -s $LOCAL_IP -o eth0 -m mac --mac-source 00:11:22:33:44:55 -j
>ACCEPT
>$IPTABLES -A FORWARD -s $LOCAL_IP -o eth0 -m mac --mac-source 66:77:88:99:AA:BB -j
>ACCEPT
>....
>
>При этом используется UTM 5.0 для снятия статистики и блокировки пользователя.
>
>Нужно сделать клиенту реальный ip на его маршрутизатор (D-Link) с привязкой к
>MAC чтобы трафик считался и машина блокировалась, в случае если средсва
>на счете израсходованы.
Народ очень нужно, помогите нашел вариант с пробросом машины в инет, но при этом у нее адрес остается внутренней сети, что не хотелось бы.
Тут не НАТ надо делать а роутинг
>Тут не НАТ надо делать а роутингЭто все может и так да только Billing работает через iptables и отключени происходит через удаление правила:
$IPTABLES -A FORWARD -s $LOCAL_IP -o eth0 -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
Поэтому мне немного не понятно как будет в данном случае работать Billing? Если есть варианты, help pls :-)
А у тебя вообще есть возможность раздавать белые IP-адреса?
>А у тебя вообще есть возможность раздавать белые IP-адреса?Да есть. Сейчас это клиент подключен через хаб напрямую к вышестоящему провайдеру, что не очень удобно.
>>А у тебя вообще есть возможность раздавать белые IP-адреса?
>
>Да есть. Сейчас это клиент подключен через хаб напрямую к вышестоящему провайдеру,
>что не очень удобно.На карте которая к провайдеру ifconfig'ом сколько надо айпишников, потом делаешь snat с помощью iptables... если подробнее - многа букаф, поконкретнее спросишь отвечу.
>>>А у тебя вообще есть возможность раздавать белые IP-адреса?
>>
>>Да есть. Сейчас это клиент подключен через хаб напрямую к вышестоящему провайдеру,
>>что не очень удобно.
>
>На карте которая к провайдеру ifconfig'ом сколько надо айпишников, потом делаешь snat
>с помощью iptables... если подробнее - многа букаф, поконкретнее спросишь отвечу.
>решали вроде так
на внешнем интерфейсе даем реальный требуемый IP дополнительно
а далее в ipnat в нашем случае rdr на локальный клиентапоправьте если не прав
>>>>А у тебя вообще есть возможность раздавать белые IP-адреса?
>>>
>>>Да есть. Сейчас это клиент подключен через хаб напрямую к вышестоящему провайдеру,
>>>что не очень удобно.
>>
>>На карте которая к провайдеру ifconfig'ом сколько надо айпишников, потом делаешь snat
>>с помощью iptables... если подробнее - многа букаф, поконкретнее спросишь отвечу.
>>
>
>решали вроде так
>
>на внешнем интерфейсе даем реальный требуемый IP дополнительно
>а далее в ipnat в нашем случае rdr на локальный клиента
>
>поправьте если не прав
Этот вариант не подойдет, так как у клиента в этом случае будет "нереальный" ip, а он хочет чтобы у него на машине стоял "реальный" ip. Ты как раз описываешь случай выноса машины клиента через NAT DNAT, этот способ мне к сожалению не подходит
>>>А у тебя вообще есть возможность раздавать белые IP-адреса?
>>
>>Да есть. Сейчас это клиент подключен через хаб напрямую к вышестоящему провайдеру,
>>что не очень удобно.
>
>На карте которая к провайдеру ifconfig'ом сколько надо айпишников, потом делаешь snat
>с помощью iptables... если подробнее - многа букаф, поконкретнее спросишь отвечу.
>
Если не сложно очень хотелось бы подробнее, спасибо.
>>>А у тебя вообще есть возможность раздавать белые IP-адреса?
>>
>>Да есть. Сейчас это клиент подключен через хаб напрямую к вышестоящему провайдеру,
>>что не очень удобно.
>
>На карте которая к провайдеру ifconfig'ом сколько надо айпишников, потом делаешь snat
>с помощью iptables... если подробнее - многа букаф, поконкретнее спросишь отвечу.
>
Попробую 2-й раз спросить, pls напиши подробно
Сначала делаем алиасы на интерфейсе, например
/sbin/ifconfig eth0:0 172.16.3.10
это значит что на eth0 будет висеть ещё один IP 172.16.3.10
добавляем маршрут
/sbin/route add -host 172.16.3.10 dev eth0:0Командой
$IPTABLES -t nat -A PREROUTING -p tcp -d внешний_айпи --dport 27015 -j SNAT --to-destination внутренний_ip_сервера_клиента_твоего:27015здесь - впускаем людей которые приходят на порт 27015(созданного нами айпи) внутрь сети на адрес твоего клиента, в данном случае люди могут играть на внутреннем counter strike сервере приходя снаружи, например из интернет, и свиду это будет так, как будто сервер и есть на внешнем айпи адресе, по аналогии всё остальное.
Может что-то забыл, проверено на OpenBSDно там немного другой синтаксис и правила файрвола, но принцип такой.
>Сначала делаем алиасы на интерфейсе, например
>/sbin/ifconfig eth0:0 172.16.3.10
>это значит что на eth0 будет висеть ещё один IP 172.16.3.10
>добавляем маршрут
>/sbin/route add -host 172.16.3.10 dev eth0:0
>
>Командой
>$IPTABLES -t nat -A PREROUTING -p tcp -d внешний_айпи --dport 27015 -j
>SNAT --to-destination внутренний_ip_сервера_клиента_твоего:27015
>
>здесь - впускаем людей которые приходят на порт 27015(созданного нами айпи) внутрь
>сети на адрес твоего клиента, в данном случае люди могут играть
>на внутреннем counter strike сервере приходя снаружи, например из интернет, и
>свиду это будет так, как будто сервер и есть на внешнем
>айпи адресе, по аналогии всё остальное.
>
>Может что-то забыл, проверено на OpenBSDно там немного другой синтаксис и правила
>файрвола, но принцип такой.конечно же не командой, а лучше добавить в скрипт запуска файрвола, ну и алиасы раздавать каждый раз при загрузке лучше в скрипте загрузки.
А что, просто маршрутизацию трудно настроить?
Внешний интерфейс: 11.22.33.44
Внутренний: 11.22.33.1 маска 255.255.255.252
У клиента: 11.22.33.2
Адреса вообще могут быть любыми, например 129,130 но правило такое: смотрим на две последние цифры в двоичном коде адреса интерфейса - есди 00 - это адрес сети, если 01 - адрес нашего роутера, если 10 - адрес клиента, если 11 - это броадкаст.
Ну и алиас с серым ИП для остальных.
Элементарно.
А если свич после внутреннего интерфейса управляемый - делаем пару виланов с разными ИПшниками, и все.