LINUX.ORG.RU
ФорумAdmin

Как локальной станции назначить внешний IP с возможностью использования обоих IP?


0

2

Имею- linux, iptables.

Имею- локальную сеть 192.168.0.0/24, через свич, соединённую с интерфейсом eth0 сервера (ip 192.168.0.1); также на сервере имеется интерфейс eth1 (ip 10.10.1.4), через свич, соединяющийся с локальной сеть провайдера; кроме того на интерфейсе eth1 организован интерфейс eht1.11 для выхода в интернет (ip 195.123.45.67).

Необходимо некоторым станциям из локальной сети 192.168.0.0/24 предоставить внешние ip из сети провайдера (ip 195.123.45.69-72) с возможностью общения в локальной сети и использования внешнего адреса. Станции локальной сети работают на Windows.

Спасибо.


вариант 1) на интерфейсе eth1 поднять алиасы 195.123.45.69-72, далее правилами iptables (DNAT) пробросить трафик внутрь на локальные адреса. Опционально SNAT в обратную сторону.

вариант 2) строить бридж из eth0, eth1

MKuznetsov ★★★★★
()
Ответ на: комментарий от gear

Если я правильно понял, то «бридж - это способ соединения двух сегментов Ethernet на канальном уровне, т.е. без использования протоколов более высокого уровня, таких как IP. Пакеты передаются на основе Ethernet-адресов, а не IP-адресов (как в маршрутизаторе). »

Для данного случая не подходит.

bsm
() автор топика

VPN + dnat/snat

zgen ★★★★★
()
Ответ на: комментарий от MKuznetsov

Понял. Попробую 1-й вариант.

bsm
() автор топика
Ответ на: комментарий от MKuznetsov

Как-то так?

ifconfig eth1:70 195.123.45.70 netmask 255.255.255.255 up
iptables --table nat -A PREROUTING --in-interface eth1:70 -j DNAT --to-destination 192.168.0.70
iptables --table nat -A POSTROUTING --out-interface eth1:70 -j SNAT --to-source 192.168.0.70

ifconfig eth1:73 195.123.45.73 netmask 255.255.255.255 up
iptables --table nat -A PREROUTING --in-interface eth1:73 -j DNAT --to-destination 192.168.0.73
iptables --table nat -A POSTROUTING --out-interface eth1:73 -j SNAT --to-source 192.168.0.73
bsm
() автор топика

bridge и nat это чушь несусветная в контексте данной задачи

На windows-машине поднимается loopback(например, 195.123.45.69/32) и делаете статический маршрут в сторону серого адреса windows-машины(например 192.168.0.2), т.е. ip ro add 195.123.45.69/32 via 192.168.0.2 . ip forwarding должен быть разрешён(net.ipv4.ip_forward=1), в iptables в таблице filter, в цепочке forward должны быть разрешающие правила(на время теста просто сделать accept)

srg666
()
Ответ на: комментарий от srg666

:) а маршрутизатор верхнего уровня используя libastral видимо, допрёт что пакеты в адреса 195.123.45.69-72 надо пересылать через 195.123.45.67 :)

MKuznetsov ★★★★★
()
Ответ на: комментарий от bsm

да, только вместо eth1:70 в правилах iptables опираться на ip. То есть вместо --in-interface eth1:70 использовать -d 195.123.45.70. iptables не различает синонимы интерфейсов (по крайней мере раньше не различала).

Таким образом например apache поднятый на сером адресе будет вполне доступен на реальному ip извне. Но возможны траблы например с ftp и sip.

Но если критично чтобы внутренний хост действительно полноправно получил реальный ip, то это или бридж или настройка маршрутизации в обеих подсетях, затрагивая маршрутизатор провайдера.

MKuznetsov ★★★★★
()

На винде настраиваете 2 адреса на интерефейсе, прописываете маршруты. 192.168.0.0/24 на интерфейсе (шлюз 0.0.0.0) и default через 195.123.45.67 (route -p, чтобы маршруты сохранялись после перезагрузки).

Единственное, что у вас какой-то странный диапазон адресов, если это подсетка /28, то адреса должны быть .64-.79, а если подсеть /29, то .64-.71 поэтому не понятно, какую маску писать винде, так как она захочет один адрес под broadcast.

В линунксе разрешаете маршрутизацию (net.ipv4.ip_forward=1), разрешаете прохождение нужных пакетов в iptables, прописываете маршрут на сеть 195.123.45.64/28 (или какую возмёте маску) через eth0, если надо прописываете маршруты к 195.123.45.64, 195.123.45.65 и 195.123.45.66 через eth1, прописываете arp proxy записи для 195.123.45.67 на eth0 (ip neigh add proxy ...) и, если провайдер не прописал у себя маршрут, то прописываете arp proxy записи для 195.123.45.69-72 на eth1.

Если же у провайдера прописан маршрут на сеть 195.123.45.64/28 через 10.10.1.4, то тогда проще повешать адрес 195.123.45.67/28 на eth0 и не создавать arp proxy записи.

mky ★★★★★
()
Ответ на: комментарий от mky

Спасибо всем. Тема не закрыта- получение внешних адресов отложено.

bsm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.