11.10.2018 12:41, Eugene Grosbein пишет:
11.10.2018 12:08, Andrey A Lyubimets пишет:
Навеяно соседним тредом.
mpd5 работает на сервере подключенном к двум провайдерам - l2tp/ipsec
устанавливает соединения только на том интерфейсе где дефаултроутер.
Можно ли как-то заставить его работать на любом интерфейсе?
или не париться и забить?
Это не проблема mpd5, ему совершенно всё равно и он у меня работает со
множеством внешних каналов.
Это проблема не настроенного PBR на роутере - чтобы ответы на запросы, пришедшие
через недефолтный канал, уходили в него же, а не по дефолтному роутеру.
Извиняюсь, что написал сверхкратко, до ввода в заблуждение.
У меня настроен PBR только средствами pf - pptp работает на обоих каналах
правила pf для PBR выглядят так:
pass in on $ext_if_1 reply-to ($ext_if_1 $gw_1) inet to ($ext_if_1) tag
EXT_IF_A
pass in on $ext_if_1 inet from ($ext_if_1:network) to ($ext_if_1)
pass in on $ext_if_2 reply-to ($ext_if_2 $gw_2) inet to ($ext_if_2) tag
EXT_IF_2
pass in on $ext_if_2 inet from ($ext_if_2:network) to ($ext_if_2)
pass in quick from ($ext_if_1:network) tagged EXT_IF_1 keep state
pass in quick reply-to ($ext_if_1 $gw_1) tagged EXT_IF_1 keep state
pass in quick from ($ext_if_2:network) tagged EXT_IF_2 keep state
pass in quick reply-to ($ext_if_2 $gw_2) tagged EXT_IF_2 keep state
pass out route-to ($ext_if_1 $gw_1) inet from $ext_addr_1 keep state
pass out route-to ($ext_if_2 $gw_2) inet from $ext_addr_2 keep state
pptp работает на обоих каналах, но при установке ipsec-соединения
обмен пакетами с ракуном вижу, а ответных ipsec-пакетов нет:
14:21:14.590034 IP 80.x.x.x.59690 > 212.y.y.y.500: isakmp: phase 1 I ident
14:21:14.597585 IP 212.y.y.y.500 > 80.x.x.x.59690: isakmp: phase 1 R ident
14:21:14.606945 IP 80.x.x.x.59690 > 212.y.y.y.500: isakmp: phase 1 I ident
14:21:14.614994 IP 212.y.y.y.500 > 80.x.x.x.59690: isakmp: phase 1 R ident
14:21:14.619311 IP 80.x.x.x.60052 > 212.y.y.y.4500: NONESP-encap:
isakmp: phase 1 I ident[E]
14:21:14.627155 IP 212.y.y.y.4500 > 80.x.x.x.60052: NONESP-encap:
isakmp: phase 1 R ident[E]
14:21:14.630252 IP 80.x.x.x.60052 > 212.y.y.y.4500: NONESP-encap:
isakmp: phase 2/others I oakley-quick[E]
14:21:14.639471 IP 212.y.y.y.4500 > 80.x.x.x.60052: NONESP-encap:
isakmp: phase 2/others R oakley-quick[E]
14:21:14.640948 IP 80.x.x.x.60052 > 212.y.y.y.4500: NONESP-encap:
isakmp: phase 2/others I oakley-quick[E]
14:21:14.653265 IP 80.x.x.x.60052 > 212.y.y.y.4500: UDP-encap:
ESP(spi=0x0d18e3ea,seq=0x1), length 164
14:21:15.649011 IP 80.x.x.x.60052 > 212.y.y.y.4500: UDP-encap:
ESP(spi=0x0d18e3ea,seq=0x2), length 164
14:21:17.648743 IP 80.x.x.x.60052 > 212.y.y.y.4500: UDP-encap:
ESP(spi=0x0d18e3ea,seq=0x3), length 164
14:21:21.648771 IP 80.x.x.x.60052 > 212.y.y.y.4500: UDP-encap:
ESP(spi=0x0d18e3ea,seq=0x4), length 164
14:21:29.648306 IP 80.x.x.x.60052 > 212.y.y.y.4500: UDP-encap:
ESP(spi=0x0d18e3ea,seq=0x5), length 164
14:21:34.616983 IP 80.x.x.x.60052 > 212.y.y.y.4500: isakmp-nat-keep-alive
14:21:39.647956 IP 80.x.x.x.60052 > 212.y.y.y.4500: UDP-encap:
ESP(spi=0x0d18e3ea,seq=0x6), length 164
если сделать route change default 212.y.y.y ,то соединение устанавливается.
Для демона, запущенного непосредственно на самом роутере, проблема решается
одним дополнительным правилом ipfw типа такого:
ipfw add 10 fwd $gw2 from $ip2 to any out xmit $if1
где $if1 - имя дефолтного интерфейса, $gw2 - IP-адрес шлюза второго
(недефолтного) провайдера,
$ip2 - IP-адрес самого роутера на втором интерфейсе роутера.
То есть, правило принудительно направляет в нужный провайдерский роутер
ответные пакеты,
идущие с второго интерфейса, если они по роутингу пытаются уйти в неправильный
интерфейс $if1.
Само собой, номер правила ipfw тоже зависит от местных условий, правило надо
добавлять вдумчиво.
_______________________________________________
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd