Страница 1 из 1

Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 11:04:48
Oleg__K
Здрасте всем! Заранее прошу прощения за глупые вопросы - я только осваиваю FreeBSD.
Имеем:
FreeBSD 8.2-RELEASE, работают два модема Novatel U720 и Novatel U760 от Интертелеком, непрозрачный прокси шлет на каждый из них свою группу пользователей, сегодня с утра оба получают один и тот же IP адрес на стороне провайдера. Соответственно имеем в ppp.log:
tun1: IPCP: myaddr 93.180.XX.XX hisaddr = 195.128.182.33
tun1: Warning: iface add: ioctl(SIOCAIFADDR, 93.180.XX.XX -> 195.128.182.33): File exists
tun1: Error: ipcp_InterfaceUp: unable to set ip address
т.е. кто первый встал того и тапки.
в Windows это то выглядит так:
Изображение
Изображение
а во FreeBSD:

Код: Выделить всё

>ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
        ether 00:1d:7d:22:99:2f
        inet 192.168.XXX.XXX netmask 0xffffff00 broadcast 192.168.XXX.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33200
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 46.247.XXX.XXX --> 195.128.182.33 netmask 0xffffffff
        Opened by PID 480
tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 46.247.XXX.XXX -->195.128.182.33 netmask 0xffffffff
        inet 46.247.XXX.XXX -->195.128.182.33 netmask 0xffffffff
        inet 95.111.XXX.XXX -->195.128.182.33 netmask 0xffffffff
...
        Opened by PID 489
ppp.log

Код: Выделить всё

Jun 22 11:00:06 fbsd8 ppp[489]: tun1: IPCP: myaddr 95.81.XXX.XXX hisaddr = 195.128.182.33
Jun 22 11:00:06 fbsd8 ppp[489]: tun1: Warning: iface add: ioctl(SIOCAIFADDR, 95.81.XXX.XXX -> 195.128.182.33): File exists
Jun 22 11:00:06 fbsd8 ppp[489]: tun1: Error: ipcp_InterfaceUp: unable to set ip address
Jun 22 11:00:06 fbsd8 ppp[489]: tun1: IPCP: deflink: LayerDown: 95.81.XXX.XXX
ppp.conf

Код: Выделить всё

#################################################################
# PPP  Sample Configuration File
# Originally written by Toshiharu OHNO
# Simplified 5/14/1999 by wself@cdrom.com
#
# See /usr/share/examples/ppp/ for some examples
#
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.11.2.2.4.1 2010/12/21 17:09:25 kensmith Exp $
#################################################################
default:
 ident user-ppp VERSION (built COMPILATIONDATE)

itc1:
 ident user-ppp VERSION (built COMPILATIONDATE)
 set log PHase Chat LCP IPCP CCP tun command
 set device /dev/cuaU0.0
 set phone "#777"
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0s7=60 OK \\dATDT\\T TIMEOUT 40 CONNECT"
 set login
 set timeout 0
 set authname "IT"
 set authkey "IT"
# add default HISADDR
 disable ipv6cp

itc2:
 ident user-ppp VERSION (built COMPILATIONDATE)
 set log PHase Chat LCP IPCP CCP tun command
 set device /dev/cuaU4.0
 set phone "#777"
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0s7=60 OK \\dATDT\\T TIMEOUT 40 CONNECT"
 set login
 set timeout 0
 set authname "IT"
 set authkey "IT"
# add default HISADDR
 disable ipv6cp
как бы так сделать, что бы работало? Спасибо.

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 11:33:32
Gamerman
Хм.. Один и тот же адрес на стороне провайдера частая ситуация, вроде ничем не должна мешать.

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 11:35:09
Gamerman
rc.conf покажите, где ррр настроено.

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 11:44:26
Oleg__K
Gamerman писал(а):rc.conf покажите, где ррр настроено.

Код: Выделить всё

# -- sysinstall generated deltas -- # Thu May 26 18:12:18 2011
# Created: Thu May 26 18:12:18 2011
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.

defaultrouter="192.168.1.5"
gateway_enable="YES"
hostname="fbsd8.local"
ifconfig_vr0="inet 192.168.1.53  netmask 255.255.255.0"

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="itc1 itc2"
ppp_user="root"

# bsnmpd
bsnmpd_enable="YES"

inetd_enable="YES"

ntpdate_enable="YES"
ntpdate_hosts="europe.pool.ntp.org"

saver="warp"

sshd_enable="YES"

mousechar_start="3"

pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pf.log"
pflog_flags=""

accf_http_load="YES"
webmin_enable="YES"
squid_enable="YES"
apache22_enable="YES"
ddclient_enable="YES"
руками тоже не работает

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 12:02:24
Oleg__K
Я так понимаю, что проблема с маршрутизацией, сейчас имеем

Код: Выделить всё

/root/>netstat -r
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            195.128.182.33     UGS         0    72640   tun0
95.111.XXX.XXX     link#5             UHS         0        0    lo0
localhost          link#3             UH          0     4817    lo0
192.168.1.0      link#1             U           8   124736    vr0
192.168.1.53     link#1             UHS         0        0    lo0
195.128.182.33     link#5             UHS         0        0   tun0
это для одного, а когда второй пытается 195.128.182.33 засунуть - ошибка - есть уже, но вот как заставить ppp не пихать то, что уже есть.
Ну и с пониманием маршрутизации у меня всё плохо, но обещаю подтянуть хвосты :oops:

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 12:17:16
Gamerman

Код: Выделить всё

#ppp_profile="itc1 itc2"
ppp_profile="itc1"   # Which profile to use from /etc/ppp/ppp.conf.
ppp_itc1_unit="1"
ppp_profile="itc2"   # Which profile to use from /etc/ppp/ppp.conf.
ppp_itc2_unit="2"
Попробуйте так

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 13:43:45
Oleg__K
Gamerman писал(а):

Код: Выделить всё

#ppp_profile="itc1 itc2"
ppp_profile="itc1"   # Which profile to use from /etc/ppp/ppp.conf.
ppp_itc1_unit="1"
ppp_profile="itc2"   # Which profile to use from /etc/ppp/ppp.conf.
ppp_itc2_unit="2"
Попробуйте так
Увы, не работает :( Причем стартует только itc2 на tun2. если потом дать

Код: Выделить всё

ppp -quiet -ddial -unit1 itc1
стартует и опять не может присвоить IP :unknown:

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 14:21:50
Oleg__K
Пока что пришел к идее делать

Код: Выделить всё

route delete 195.128.182.33
в ppp.linkup, но как-то это "криво", что-ли :unknown: ну и вроде бы работает, а зачем ppp пихает адрес сервера в маршруты, если и без него работает?
вот когда давали разные адреса было красиво :smile:

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-22 15:35:52
Gamerman

Код: Выделить всё

# add default HISADDR
Попробуйте снять ремарку
И поиграйтесь с параметром

Код: Выделить всё

set ifaddr 10.0.0.1/0 10.0.0.2/0

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-23 7:48:51
Oleg__K
Вот жеж заразы! Опять дают разные! Блинство какое-то :cry:

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-23 10:31:07
lap
Есть подозрение что просто на разные серваки попали.

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-23 14:42:08
Oleg__K
Не совсем понятно, как быть, если такое будет повторяться. После каждого перезапуска смотреть как оно там? Может как-то можно ppp.conf поправить?

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-23 15:03:55
Gamerman
А ві пробовали то, что я говорил?

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-23 15:12:53
Oleg__K
Gamerman писал(а):А ві пробовали то, что я говорил?
Да пробовал

Код: Выделить всё

set ifaddr 10.0.0.1/0 10.0.0.2/0
Это, судя по документации, временные адреса для туннеля, которые в процессе подключения заменяются полученными от провайдера.

Код: Выделить всё

add default HISADDR
устанавливает полученный от провайдера адрес в качестве шлюза по умолчанию - не помогает, как-бы после подключения одного из модемов он уже есть в таблице, о чем и говорит лог.
Да мне и не нужно, машина не выполняет роли шлюза - просто прокси для двух групп пользователей. В squid.conf конфигурируется tcp_outgoing_address по факту подключения на полученные адреса и каждый идет своей дорогой.

Re: Два CDMA модема на один адрес у провайдера, как так?

Добавлено: 2011-06-23 15:22:53
Oleg__K
Вот сейчас, при разных адресах всё работает:

Код: Выделить всё

/etc/ppp/>ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
        ether 00:1d:7d:22:99:2f
        inet 192.168.1.53 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33200
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 95.111.XXX.XXX --> 195.128.182.33 netmask 0xffffffff
        Opened by PID 485
tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 95.111.YYY.YYY --> 195.128.182.54 netmask 0xffffffff
        Opened by PID 494

получены 195.128.182.33 и 195.128.182.54

Код: Выделить всё

/etc/ppp/>netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            195.128.182.33     UGS         0    44331   tun0
95.111.XXX.XXX      link#5             UHS         0        0    lo0
95.111.YYY.YYY     link#6             UHS         0        0    lo0
127.0.0.1          link#3             UH          0       45    lo0
192.168.1.0/24   link#1             U           8    50011    vr0
192.168.1.53     link#1             UHS         0        0    lo0
195.128.182.33     link#5             UHS         0        0   tun0
195.128.182.54     link#6             UHS         0        0   tun1
При одинаковых, после первого подключения нужно сделать

Код: Выделить всё

route delete 195.128.182.33
а второе подключение его опять добавляет, и всё работает.
Но вот как отличить одно от второго? Анализировать лог на предмет ошибки, отключать второй модем, удалять адрес, опять подключать?
Боюсь не осилю :cry: