Допустим есть сервер с centos 6 и белым ip адресом. Есть 2 ПК с серыми ip адресами. Нужно сделать так что бы 2 ПК(или более) устанавливали соединение с сервером и могли видеть друг друга.
Я установил на сервер pptpd и сконфигурировал его таким образом: cat /etc/ppp/options.pptpd
logwtmp
localip 192.168.20.1,192.168.30.1
remoteip 192.168.20.234-240,192.168.30.234-240
Вопрос в том как мне сделать так что бы сервер перенаправлял пакеты автоматически с ppp0 на ppp1 и наоборот.
Первоначально я настроил pptpd так: cat /etc/ppp/options.pptpd
logwtmp
localip 192.168.20.1
remoteip 192.168.20.234-240
У обоих подключений был общий шлюз 192.168.20.1 но похоже образовывалась петля т.к. iperf на первом ПК показывал огромные скорости а на втором ПК вообще не показывал никаких подключений(хотя пинги между узлами ходили но периодически пропадали).
Гугл дает кучу ссылок по поводу OpenVPN но в моем случае мне не нужно шифрование и безопасность для меня не так важна, я не смог найти ни одного примера где бы промежуточный сервер использовался только для объединения сетей без предоставления пользователям выхода в интернет. Я подозреваю что нужно корректно прописать ip route но как это сделать?
да включен , но проблема в том что когда localip одинаковый и я например запускаю iperf-s на сервере то получаю либо совершенно низкую скорость либо вообще никакую, если же сделать localip разный то при iperf -c 192.168.30.1 -p 5001 или iperf -c 192.168.20.1 -p 5001 с клиентов я получаю нормальный обмен пакетами со скоростью 15-18 мегабит
что то вы недоговораваете.. Если вы правы - то я пойду срочно разберу свои впн сервера, которые уже несколько лет работают.
И так, в случае с одинаковым локальным адресом и подключенных двух клиентах:
на сервере
ip a
ip r
iptables -L -n
iptables -L -n -t nat
IP A:
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 22:d9:fc:10:36:24 brd ff:ff:ff:ff:ff:ff
inet ****/24 brd **** scope global eth0
inet ****/32 brd **** scope global eth0:0
inet6 ****/64 scope link
valid_lft forever preferred_lft forever
84: ppp0: mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp
inet 192.168.20.1 peer 192.168.20.235/32 scope global ppp0
87: ppp1: mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp
inet 192.168.20.1 peer 192.168.20.236/32 scope global ppp1
IP B:
192.168.20.235 dev ppp0 proto kernel scope link src 192.168.20.1
192.168.20.236 dev ppp1 proto kernel scope link src 192.168.20.1
****/24 dev eth0 proto kernel scope link src ****
169.254.0.0/16 dev eth0 scope link metric 1002
default via 188.225.74.1 dev eth0
PS: Вот что только что обнаружил при текущих настройках, с первого пк iperf нормально отрабатывает(видимо не работал он когда я начал вакханалию с добавлением роутинга и не совсем понятных мне правил iptables):
c:\iperf-2.0.5-3-win32>iperf.exe -c 192.168.20.1 -p 5001
------------------------------------------------------------
Client connecting to 192.168.20.1, TCP port 5001
TCP window size: 63.0 KByte (default)
------------------------------------------------------------
[ 3] local 127.0.0.1 port 7679 connected with 192.168.20.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 32.2 MBytes 27.0 Mbits/sec
c:\iperf-2.0.5-3-win32>
С второго же пк все плохо...
[ 4] local 192.168.20.1 port 5001 connected with 192.168.20.235 port 7681
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.2 sec 32.2 MBytes 26.6 Mbits/sec
[ 5] local 192.168.20.1 port 5001 connected with 192.168.20.236 port 15454
[ 5] 0.0-29.1 sec 14.0 Bytes 3.84 bits/sec