Вчера получил статичный 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