LINUX.ORG.RU

[Help me!] FreeBSD, PPP, не работает как надо


0

1

Вчера получил статичный IP и решил что пришло время перевести модем в режим бриджа, а на FreeBSD настроить ppp. Сказано, - сделано. Но вот встала небольшая проблемка, после настройки в несколько строчек, в три конфига инет не заработал. Что-то с маршрутом по умолчанию.

enoch@freebsd-host:~> cat /etc/ppp/ppp.conf
default:
 set log Phase tun command
 set ifaddr 192.168.1.1/0 192.168.1.2/0

adsl:
 set device PPPoE:vr0
 set dial
 set login
 set authname xxx
 set authkey xxx
 enable lqr
 add default HISADDR

Выжимка из /etc/rc.conf:

# ADSL PPPoE Setup
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl"

enoch@freebsd-host:~> ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
        ether 00:22:xx:xx:xx:xx
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
vr1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
        ether 00:22:xx:xx:xx:xx
        inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
        options=80000<LINKSTATE>
        inet 78.yy.yy.yy --> 78.xx.xxx.x netmask 0xffffffff
        Opened by PID 463
enoch@freebsd-host:~> netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            78.xx.xxx.x        UGS         0      292    vr0
10.0.0.0/24        link#2             U           1       49    vr1
10.0.0.1           link#2             UHS         0        0    lo0
78.xx.xxx.x        link#5             UHS         0        0   tun0
78.yy.yy.yy        link#5             UHS         0        0    lo0
127.0.0.1          link#4             UH          0        0    lo0
192.168.1.0/24     link#1             U           0        0    vr0
192.168.1.2        link#1             UHS         0        0    lo0

Пингуем ya.ru и 8.8.8.8:

enoch@freebsd-host:~> ping ya.ru
ping: cannot resolve ya.ru: Host name lookup failure
enoch@freebsd-host:~> ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: Invalid argument
ping: sendto: Invalid argument
ping: sendto: Invalid argument
ping: sendto: Invalid argument
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

Не проходит. Печаль.

Удаляем дефолтный шлюз и добавляем его заново:

enoch@freebsd-host:~> sudo route delete default
delete net default
enoch@freebsd-host:~> sudo route add default 78.xx.xxx.x
add net default: gateway 78.xx.xxx.x

А вот так нормально:

enoch@freebsd-host:~> netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            78.xx.xxx.x        UGS         0    58042   tun0
10.0.0.0/24        link#2             U           1    97321    vr1
10.0.0.1           link#2             UHS         0        0    lo0
78.xx.xxx.x        link#5             UHS         0        0   tun0
78.yy.yy.yy        link#5             UHS         0        0    lo0
127.0.0.1          link#4             UH          0        8    lo0
192.168.1.0/24     link#1             U           0       90    vr0
192.168.1.2        link#1             UHS         0        0    lo0

enoch@freebsd-host:~> ping ya.ru
PING ya.ru (93.158.134.3): 56 data bytes
64 bytes from 93.158.134.3: icmp_seq=0 ttl=251 time=53.348 ms
64 bytes from 93.158.134.3: icmp_seq=1 ttl=251 time=59.589 ms
64 bytes from 93.158.134.3: icmp_seq=2 ttl=251 time=53.132 ms
64 bytes from 93.158.134.3: icmp_seq=3 ttl=251 time=53.954 ms
64 bytes from 93.158.134.3: icmp_seq=4 ttl=251 time=52.839 ms
^C
--- ya.ru ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 52.839/54.572/59.589/2.535 ms

Как видно из netstat -rn дело в маршруте по-умолчанию. На момент загрузки системы он уже есть, но используется интерфейс vr0, а не tun0. Что делать? Как это исправить? Уже пробовал выставлять defaultrouter=«NO» и defaultrouter=«78.x.x.x» не помогает. Все равно по умолчанию висит на интерфейсе vr0.

Помогите, плиз.

З.Ы.: FreeBSD-RELEASE-p1



Последнее исправление: Enoch (всего исправлений: 1)

Ответ на: комментарий от hizel

Сейчас только ядрышко дособеру и попробую :)

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

>Если не сработает - значит, эпик баг.

Не срабатывает :(

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

>delete ALL

Тоже не помогло, этот фак читал :(

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

>включить больше дебага и посмотреть какого негатива оно так делает

Да ясно же в чем дело, я ж написал. Причина найдена, как устранить только :( Дело в том что маршрут по-дефолту вяжется не к тому интерфейсу :(

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

А может вместо set device PPPoE:vr0 попробывать set device PPPoE:tun0 как вариант. Возможно также не писать add default HISADDR в конфиге и потом в rc.local дописать добавления маршрута по умолчанию. Я как-то одному настраивал подобную чтуку строго по хендбуку, то таких проблем не наблюдал.

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

>set device PPPoE:tun0

О зохэн вэй! Там же надо указывать ethernet-интерфейс, это же PPPoE!

add default HISADDR

Пробовал и писать, и не писать, и писать с восклицательным знаком, и что я только не пробовал. Сейчас в rc.local костыль с удалением и добавлением шлюза.

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

Проблема решена. Все дело в том что при загрузке у меня поднимался интерфейс vr0, на котором висел ADSL-модем. Решение проблемы заключалось в том, чтобы закомментировать в rc.conf переметры интерфейса. Что я и сделал.

Теперь так:

#ifconfig_vr0=«inet 192.168.1.2 netmask 255.255.255.0»

Это было настолько очевидно, что я не смог сие понять в самом начале своих мытарств.

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

Надеюсь что эта тема в дальнейшем поможет людям в борьбе с PPPoE во FreeBSD :)))

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