Здесь описан процесс установки по шагам.
1. Ставим как обычно. При смене дисков меняем их не спеша - сначала при запросе на смену жмем Enter, потом извлекаем диск, терпеливо ждем, пока привод определит диск (на это надо секунд 10..15), и только потом еще раз жмем Enter, подтверждая, что поменяли диск.
2. Настраиваем интерфейсы. # ifconfig fxp0: flags=8843 mtu 1500 options=8 inet loc1.loc3.103.223 netmask 0xfffff800 broadcast loc1.loc3.103.255 ether 00:90:27:29:5b:8e media: Ethernet autoselect (100baseTX ) status: active fxp1: flags=8843 mtu 1500 options=8 inet 192.168.7.254 netmask 0xffffff00 broadcast 192.168.7.255 ether 00:90:27:be:e6:3c media: Ethernet autoselect (100baseTX ) status: active plip0: flags=108810 mtu 1500 lo0: flags=8049 mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Показывает, какие интерфейсы есть в системе, статус (если кабель воткнут, то должен быть статус active). У меня были интерфейсы fxp0 и fxp1.
# ifconfig fxp1 inet 192.168.0.254 netmask 255.255.255.0 Назначает адрес на интерфейс.
# ping 192.168.0.254 # ping 192.168.0.1 Проверяем работу интерфейса (на компе 192.168.0.1 должен быть отключен файервол).
# dhclient fxp0 Проверяем автоназначение адреса с DHCP-сервера Корбины. При этом в файле /var/db/dhclient.leases.fxp0 должна появится запись наподобие: # more /var/db/dhclient.leases.fxp0 lease { interface "fxp0"; fixed-address loc1.loc3.103.223; option subnet-mask 255.255.248.0; option routers loc1.loc3.96.1; option domain-name-servers 213.234.192.8,85.21.192.3; option dhcp-lease-time 604800; option dhcp-message-type 5; option dhcp-server-identifier 83.102.233.200; option classless-routes 8,10,10,160,96,1,24,85,21,79,10,160,96,1,24,85,21,90,10,160,96, 1,28,85,21,138,208,10,160,96,1,27,83,102,146,96,10,160,96,1,24,172,16,16,10,160,96,1, 28,85,21,72,80,10,160,96,1,32,78,107,69,98,10,160,96,1,24,78,107,23,10,160,96,1,28,85, 21,108,16,10,160,96,1; renew 3 2008/2/6 00:48:28; rebind 5 2008/2/8 15:48:28; expire 6 2008/2/9 12:48:28; }
3. Это мы только тестировали интерфейсы. Чтобы настройки интерфейсов сохранились и применялись после перезагрузки, редактируем файл /etc/rc.conf: # vi /etc/rc.conf В файле надо добавить строки: ifconfig_fxp1="inet 192.168.0.254 netmask 255.255.255.0" ifconfig_fxp0="DHCP"
4. Включаем сервер ssh. Для этого редактируем файл /etc/rc.conf и добавляем строку: sshd_enable="YES"
Потом редактируем файл /etc/ssh/sshd_config, раскомментруем и изменяем следующие опции (они должны быть в файле в таком виде, как указано здесь): ... PermitRootLogin yes ... PasswordAuthentication yes ...
Перезапускаем сервер sshd (доступны, кроме restart, команды start и stop): # /etc/rc.d/sshd restart
5. Смотрим, какие есть в системе маршруты: # netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default loc1.loc3.96.1 UGS 0 247 fxp0 10 loc1.loc3.96.1 UGS 0 20 fxp0 loc1.loc3.96/21 link#1 UC 0 0 fxp0 loc1.loc3.96.1 00:15:e9:39:5c:02 UHLW 12 0 fxp0 1200 78.107.23/24 loc1.loc3.96.1 UGS 0 0 fxp0 78.107.69.98/32 loc1.loc3.96.1 UGS 0 0 fxp0 83.102.146.96/27 loc1.loc3.96.1 UGS 0 0 fxp0 85.21.72.80/28 loc1.loc3.96.1 UGS 0 0 fxp0 85.21.79/24 loc1.loc3.96.1 UGS 0 0 fxp0 85.21.90/24 loc1.loc3.96.1 UGS 0 0 fxp0 85.21.108.16/28 loc1.loc3.96.1 UGS 0 0 fxp0 85.21.138.208/28 loc1.loc3.96.1 UGS 0 0 fxp0 localhost localhost UH 0 0 lo0 172.16.16/24 loc1.loc3.96.1 UGS 0 0 fxp0 192.168.7 link#2 UC 0 0 fxp1 192.168.7.1 00:0e:a6:5a:43:56 UHLW 1 14654 fxp1 751 Internet6: Destination Gateway Flags Netif Expire localhost localhost UHL lo0 fe80::%lo0 fe80::1%lo0 U lo0 fe80::1%lo0 link#4 UHL lo0 ff01:4:: fe80::1%lo0 UC lo0 ff02::%lo0 fe80::1%lo0 UC lo0
Вместо опции -r можно указать -rn, тогда таблица построится быстрее (без попыток преобразования IP в адреса).
В системе обязательно должен быть маршрут по умолчанию, указывающий на роутер Корбины в её локальной домашней сети (с IP-адресом loc1.loc3.96.1 - этот шлюз по умолчанию раздается по DHCP, когда втыкаете корбиновский кабель во "внешний" интерфейс нашей машинки с FreeBSD):
Destination Gateway Flags Refs Use Netif Expire default loc1.loc3.96.1 UGS 0 247 fxp0
Если такого маршрута нет, то сервера DNS не будут отвечать (они находятся за роутерами). В этом случае надо добавить маршрут: # route add default loc1.loc3.96.1
6. Проверяем работу DNS: # nslookup ftp.corbina.ru Server: 213.234.192.8 Address: 213.234.192.8#53 ftp.corbina.ru canonical name = earth.corbina.ru. Name: earth.corbina.ru Address: 195.14.50.21
7. Проверяем доступность сервера VPN Корбины: # ping vpn.corbina.net PING view0.viewdns.corbina.net (85.21.0.90): 56 data bytes 64 bytes from 85.21.0.90: icmp_seq=0 ttl=248 time=1.222 ms 64 bytes from 85.21.0.90: icmp_seq=1 ttl=248 time=1.696 ms 64 bytes from 85.21.0.90: icmp_seq=2 ttl=248 time=1.398 ms
8. Устанавливаем nmap (из пакета) - необязательный шаг. Хотя куда же без него, родимого?
Пакет nmap.tar.gz и порты nmap-4.20.tar.bz2, make-3.81.tar.bz2 были предварительно скачаны из Интернета и положены в корень ftp-сервера 192.168.7.1. Если бы было настроено подключение к Интернету на FreeBSD, то необходимые порты nmap-4.20.tar.bz2 и make-3.81.tar.bz2 скачались бы автоматически. Скачиваем все, что нужно (nmap.tar.gz, порты nmap-4.20.tar.bz2, make-3.81.tar.bz2), с локального (192.168.7.1) ftp: ftp 192.168.7.1 Connected to 192.168.7.1. 220 Fastream IQ FTP Server Name (192.168.7.1:root): anonymous 331 Password required for anonymous. Password: 230 User anonymous has successfully logged in. Remote system type is Fastream. ftp> ls 500 'EPSV': command not understood. 227 Entering Passive Mode (192,168,7,1,4,161). 150 Opening data connection for folder list. dr--r--r-- 1 ftp ftp 0 Sep 09 2007 . d--------- 1 ftp ftp 0 Sep 09 2007 .. drw-rw-rw- 1 ftp ftp 0 Sep 09 2007 public dr--r--r-- 1 ftp ftp 0 Sep 09 2007 torrents -r--r--r-- 1 ftp ftp 4162 Feb 02 16:21 nmap.tar.gz -r--r--r-- 1 ftp ftp 2156077 Feb 02 17:17 nmap-4.20.tar.bz2 -r--r--r-- 1 ftp ftp 1151445 Feb 02 17:26 make-3.81.tar.bz2 226 File sent ok ftp> binary 200 Type set to I. ftp> get nmap.tar.gz local: nmap.tar.gz remote: nmap.tar.gz 227 Entering Passive Mode (192,168,7,1,4,162). 150 Opening data connection for nmap.tar.gz. 100% |***********************************************************************************| 4162 2.25 MB/s 00:00 ETA 226 File sent ok 4162 bytes received in 00:00 (41.34 KB/s) ftp> get nmap-4.20.tar.bz2 local: nmap-4.20.tar.bz2 remote: nmap-4.20.tar.bz2 227 Entering Passive Mode (192,168,7,1,4,183). 150 Opening data connection for nmap-4.20.tar.bz2. 100% |***********************************************************************************| 2105 KB 5.58 MB/s 00:00 ETA 226 File sent ok WARNING! 8997 bare linefeeds received in ASCII mode. File may not have transferred correctly. 2156077 bytes received in 00:00 (5.56 MB/s) ftp> get make-3.81.tar.bz2 local: make-3.81.tar.bz2 remote: make-3.81.tar.bz2 227 Entering Passive Mode (192,168,7,1,5,247). 150 Opening data connection for make-3.81.tar.bz2. 100% |***********************************************************************************| 1124 KB 5.45 MB/s 00:00 ETA 226 File sent ok 1151445 bytes received in 00:00 (5.43 MB/s) ftp> exit 221 Good Bye! # копируем файлы в нужные места, чтобы их нашла утилита make cp nmap-4.20.tar.bz2 /usr/ports/distfiles/ cp make-3.81.tar.bz2 /usr/ports/distfiles/ # распаковываем nmap.tar.gz, в текущей директории появится временная папка nmap tar -xf nmap.tar.gz # заходим в папку nmap, там должен быть файл Makefile и файлы пакета. cd nmap # запускаем проверку пакета make ... # устанавливаем пакет make install ... # делаем финальную очистку make clean ===> Cleaning for gmake-3.81_2 ===> Cleaning for nmap-4.20_1 # удаляем папку nmap rm -r -f nmap # удаляем файлы make-3.81.tar.bz2, nmap-4.20.tgz и nmap.tar.gz rm make-3.81.tar.bz2 rm nmap* # ищем, куда встала nmap find / -name "nmap" -print /usr/local/bin/nmap /usr/local/share/doc/nmap /usr/local/share/nmap /usr/ports/security/nmap # проверяем запуск мана для nmap man nmap # тестируем nmap (после перезагрузки не надо будет вводить полный путь до nmap): /usr/local/bin/nmap vpn.corbina.net Starting Nmap 4.20 ( http://insecure.org ) at 2008-02-02 17:52 UTC Interesting ports on vpn28-l0.msk.corbina.net (85.21.0.28): Not shown: 1696 closed ports PORT STATE SERVICE 1723/tcp open pptp Nmap finished: 1 IP address (1 host up) scanned in 551.755 seconds /usr/local/bin/nmap 192.168.7.1 Starting Nmap 4.20 ( http://insecure.org ) at 2008-02-02 18:02 UTC Interesting ports on 192.168.7.1: Not shown: 1694 filtered ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 3389/tcp open ms-term-serv MAC Address: 00:0E:A6:5A:43:56 (Asustek Computer) Nmap finished: 1 IP address (1 host up) scanned in 94.131 seconds
10. Устанавливаем mc (Midnight Commander) - необязательный шаг. Это для лентяев (то есть для меня - шибко люблю редактор mcedit и ненавижу vi). Сначала скачиваем ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/mc-4.6.1.tar.gz. Далее: cp mc-4.6.1.tar.gz /usr/ports/distfiles cd /usr/ports/misc/mc make ... make install make clean rm mc-4.6.1.tar.gz reboot Без перезагрузки mc не запускается с ошибкой "Exec format error. Binary file not executable".
11. Установка mpd версии 3.18. Осталось настроить vpn-соединение с Корбиной (у неё таким образом раздается Интернет). pptpclient у меня почему-то не заработал. Пришлось пробовать mpd: # cd /usr/ports/net/mpd # make # make install # make clean # cd /usr/local/etc/mpd # touch mpd.conf # mcedit mpd.conf (или vi mpd.conf)
Вставляем следующее содержимое в файл mpd.conf (комментарии я вставил с символом #, их надо из файла убрать):
default: load vpn
vpn: new -i ng0 vpn vpn #создается интерфейс ng0, в который входит линк vpn (описан в файле mpd.links) set iface idle 0 #не разрывать связь при отсутствии исходящих пакетов set bundle disable multilink #запрет мультилинка set iface up-script /usr/local/etc/mpd/io-up.sh #запуск скрипта при поднятии bundle - скрипт меняет маршрут по умолчанию set iface down-script /usr/local/etc/mpd/io-down.sh #запуск скрипта при опускании bundle - скрипт меняет маршрут по умолчанию set bundle authname "тут_указываем_логин" set bundle password "тут_указываем_пароль" set link keep-alive 60 180 #настраивает временнЫе посылки эхо-пакетов LCP. См. описание команды set link keep-alive set link accept chap #использовать протокол chap set link no pap #не использовать протокол chap set bundle disable compression #запрет сжатия set ccp yes mpp-e40 #разрешает 40-bit MPPE encryption set ccp no mpp-e128 #запрет 128-bit MPPE encryption set bundle disable crypt-reqd #отключить требование шифрования set ccp no mpp-stateless #по этой опции см. help по командам Compression layer set ipcp no vjcomp #отключает Van Jacobson TCP header compression set link mtu 1460 #настраивает размер mtu в байтах open
Создаем также файлы mpd.links, io-up.sh и io-down.sh: [mpd.links] vpn: set link type pptp #устанавливает тип линка set pptp peer 85.21.0.15 #устанавливает IP VPN-сервера Корбина set pptp enable originate incoming outcall #см. команды типа устройства PPTP set pptp disable windowing #см. команды типа устройства PPTP Строчек set pptp peer .. может быть несколько, например: set pptp peer 85.21.0.15 set pptp peer vpn.corbina.net set pptp peer 85.21.0.51
Интересна также опция set link max-redial num, которая задает количество повторных попыток соединения. Если указать num равное 0, то будет бесконечное количество попыток. Внимание! Если поменяли значения в конфигурационных файлах mpd.conf и mpd.links, то требуется перезагрузка mpd: # killall -TERM mpd # mpd -b Теперь рассмотрим скрипты перенастройки маршрутов io-up.sh и io-down.sh. [io-up.sh] #!/bin/sh
route delete $4 route add $4 ВАШ_DEFAULT_GATEWAY route delete default route add default $4
echo $4 > /tmp/dr
[io-down.sh] #!/bin/sh
dr=`cat /tmp/dr` route delete $dr route delete default route add default ВАШ_DEFAULT_GATEWAY rm -f /var/dr
Редактируем /etc/rc.conf. defaultrouter="10.160.96.1" gateway_enable="YES" keymap="ru.koi8-r" linux enable="YES" local startup="/usr/local/etc/rc.d" moused enable="YES" mouse port="/dev/psm0" usbd_enable="YES" ifconfig_fxp1="inet 192.168.7.254 netmask 255.255.255.0" ifconfig_fxp0="DHCP" sshd_enable="YES" tcp_extensions="YES" hostname="msinhome.mydomain.ru" static_routes="localnet dns1 dns2 vpnpptp01 vpnpptp02 vpnpptp03 vpnl2tp01" route_localnet="-net 10.0.0.0 -netmask 255.0.0.0 10.160.96.1" route dns1="213.234.192.8 10.160.96.1" route_dns2="85.21.192.3 10.160.96.1" route_vpnpptp01="85.21.0.15 10.160.96.1" route_vpnpptp02="vpn.corbina.net 10.160.96.1" route_vpnpptp03="85.21.0.51 10.160.96.1" route_vpnl2tp01="85.21.0.254 10.160.96.1"
Тут ничего особенного в контексте настройки mpd - настроен адрес шлюза по умолчанию 10.160.96.1, прописаны маршруты до DNS-серверов (dns1 и dns2) и vpn-серверов Корбины (vpnpptp01, vpnpptp02, vpnpptp03 и vpnl2tp01). Вы конечно заметили, что адрес шлюза по умолчанию совпадает со шлюзом этих маршрутов, но это сделано не случайно - для надежности, поскольку маршрут по умолчанию удаляется и восстанавливается скриптами io-up.sh и io-down.sh, и бывает, что маршрут по умолчанию теряется. В этом случае работают статические маршруты dns1, dns2, vpnpptp01, vpnpptp02, vpnpptp03 и vpnl2tp01.
Кроме man mpd, дока по mpd в html-формате доступна в папке /usr/local/share/doc/mpd. При перезагрузке по идее должен сразу заработать Интернет. Можно также запустить mpd вручную, при этом поднимется линк, прописанный в mpd.conf (при этом будет доступна консоль управления mpd): # mpd или (при этом будет запущен mpd в фоновом режиме) # mpd & или (тоже запуск в фоновом режиме) # mpd -b
Остановить линк можно, выгрузив mpd командой kill (перед эти узнав id процесса mpd командой ps) или killall. Этими же командами можно посылать процессу mpd стандартные сигналы, которые он может распознать (на обновление конфигурации, выгрузку и т. п. - если интересно, см. man mpd).
При запуске и останове mpd отрабатывают скрипты io-up.sh и io-down.sh соответственно (они перенастраивают маршрут по умолчанию). Когда интерфейс поднят, то команда ifconfig выдает следующую инфу об интерфейсе: ng0: flags=88d1 mtu 1460 inet 89.178.134.28 --> 85.21.0.15 netmask 0xffffffff
Когда mpd выгружен, то ifconfig никакой информации по ng0 не выводит.
Соединение и рассоединение с Корбина происходит очень быстро. При установке соединения у меня оно не всегда получалось работоспособным. При этом ifconfig показывает, что виртуальный адаптер находится в состоянии UP: ng0: flags=88d1 mtu 1460
Когда соединение работает, то добавляется еще строка, показывающая привязку в публичному IP: ng0: flags=88d1 mtu 1460 inet 89.178.131.155 --> 85.21.0.15 netmask 0xffffffff
Сам mpd успешность соединения не отслеживает, нужно переустанавливать соединение вручную (посылая сигналы USR2 и USR1). Можно настроить делать эту процедуру автоматически (см. в конце раздел ссылки).
Автозапуск mpd при старте обеспечивается строкой mpd_enable="YES" в файле /etc/rc.conf. При этом mpd запускается с опцией -b (в каталог /usr/local/etc/rc.d/ после установки автоматически записывается скрипт запуска mpd.sh).
Чтобы писался лог, нужно создать файл /var/log/mpd.log с правами на запись для root (owner), а также добавить в файл /etc/syslog.conf две строчки: !mpd *.* /var/log/mpd.log
Чтобы применить настройки немедленно, надо дать команду: # killall -HUP syslogd
Можно добавить автоматически маршрут на интерфейс при поднятии bundle. Это делается командой set iface route deafult|address[[/width] (без указания длины маски width маршрут будет однохостовый).
См. также описание mpd.
Чтобы раздать через получившийся роутер Интернет на другие компьютеры, нужно поднять ipnat (см. статьи FreeBSD: настройка NAT с помощью ipnat и FreeBSD ipnat: автоматическая поддержка правил NAT в актуальном состоянии).
[Проблемы и методы их решения]
Вышеописанная система работает довольно надежно (в круглосуточном режиме), но иногда приходится устранять возможные проблемы. Все они были связаны с пертурбациями у провайдера. Это понятно - там работают живые люди, меняют оборудование (которое тоже иногда ломается) и бывает допускают ошибки. Мне приходилось сталкиваться с двумя главными проблемами, которые были связаны с изменениями у провайдера: 1. Смена IP у DNS-серверов. 2. Смена IP у VPN-сервера. 3. Кончились деньги на персональном счете.
С первой проблемой автоматически не поборешься, приходится узнавать у провайдера адреса DNS и вручную их вгонять в файл /etc/namedb/named.conf (это конфигурационный файл named), либо обновить адрес на внешнем интерфейсе роутера (командой dhclient fxp0), и после этого найти адреса DNS в файле /etc/resolv.conf.
Вторая проблема немного связана с первой. Дело в том, что в конфигурационном файле /usr/local/etc/mpd/mpd.links есть возможность указать не фиксированный IP, а имя vpn.corbina.net. Но иногда это не работает, когда недоступен сервер DNS, причем сервер VPN в этот момент бывает доступен по IP. Поэтому, если Вы поддались соблазну и вставили в список peer сначала фиксированный IP, то это будет работать очень устойчиво и надежно, без всяких DNS, но до поры до времени - пока не сменится адрес рабочего VPN-сервера PPTP. Иногда старый VPN-сервер не вырубают сразу, а просто бросают, и он начинает "шизить" - сбрасывает сессии, отрабатывает не все маршруты, и такую проблему очень трудно выявить, потому что то работает сеть, то нет. Служба техподдержки обычно тут ничем не может помочь - работающие там операторы часто не знают о смене IP у VPN-сервера, и не могут догадаться, что Ваш mpd до сих пор стучится по IP на VPN-сервер, который заброшен или на профилактике. Обычно техподдержка делает "круглые глаза" (мы FreeBSD не поддерживаем!..), просит переключить компьютер напрямую без роутера, и после этого говорят - вот видите, все работает, выкиньте Вашу FreeBSD, до свидания. После начинаешь проверять - и оказывается, что основной сервер VPN (IP которого резолвится через имя vpn.corbina.net) уже другой. Поэтому старайтесь все-же указывать в файле mpd.links не peer IP, а peer имя, указывающее на сервер VPN.
Устранение некоторых проблем на UNIX можно найти на форуме homenet.corbina.net. Ищите там раздел "Домашний интернет группы компаний "Вымпелком" - форумы > Все о компьютерах > Linux/UNIX".
[Краткая памятка по командам при наладке Интернета]
ifconfig Узнаем IP адреса на внешней сетевой карте, а так же тут увидим, создался ли виртуальный сетевой адаптер VPN-сессии (у меня это ng0): msinhome# ifconfig fxp0: flags=8843 mtu 1500 options=8 inet 10.160.103.223 netmask 0xfffff800 broadcast 10.160.103.255 ether 00:90:27:29:5b:8e media: Ethernet autoselect (100baseTX ) status: active fxp1: flags=8843 mtu 1500 options=8 inet 192.168.7.254 netmask 0xffffff00 broadcast 192.168.7.255 ether 00:d0:b7:28:60:71 media: Ethernet autoselect (100baseTX ) status: active plip0: flags=108810 mtu 1500 lo0: flags=8049 mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 ng0: flags=88d1 mtu 1460 inet 78.106.117.234 --> 85.21.0.148 netmask 0xffffffff
netstat -rn Смотрим прописанные маршруты в системе, видим шлюз по умолчанию (10.160.96.1): msinhome# netstat -rn Routing tables
Internet: Destination Gateway Flags Refs Use Netif Expire default 85.21.0.148 UGS 0 4136 ng0 10 10.160.96.1 UGS 0 48 fxp0 10.160.96/21 link#1 UC 0 0 fxp0 10.160.96.1 00:15:e9:39:5c:02 UHLW 24 51 fxp0 1199 10.160.96.243 00:1e:8c:a5:b7:ef UHLW 1 3 fxp0 1199 10.160.103.223 00:90:27:29:5b:8e UHLW 2 0 lo0 78.106.117.234 lo0 UHS 0 0 lo0 78.107.23/24 10.160.96.1 UGS 0 0 fxp0 78.107.51/28 10.160.96.1 UGS 0 0 fxp0 78.107.196/22 10.160.96.1 UGS 0 0 fxp0 78.107.235.4/30 10.160.96.1 UGS 0 0 fxp0 83.102.146.96/27 10.160.96.1 UGS 0 0 fxp0 83.102.231.32/28 10.160.96.1 UGS 0 0 fxp0 85.21.0.15 10.160.96.1 UGHS 0 0 fxp0 85.21.0.41 10.160.96.1 UGHS 0 0 fxp0 85.21.0.43 10.160.96.1 UGHS 0 0 fxp0 85.21.0.51 10.160.96.1 UGHS 0 0 fxp0 85.21.0.148 10.160.96.1 UGHS 1 4804 fxp0 85.21.0.254 10.160.96.1 UGHS 0 0 fxp0 85.21.72.80/28 10.160.96.1 UGS 0 98 fxp0 85.21.79/24 10.160.96.1 UGS 0 0 fxp0 85.21.90/24 10.160.96.1 UGS 0 0 fxp0 85.21.108.16/28 10.160.96.1 UGS 0 0 fxp0 85.21.138.208/28 10.160.96.1 UGS 0 0 fxp0 85.21.192.3 10.160.96.1 UGHS 0 117 fxp0 127.0.0.1 127.0.0.1 UH 0 122 lo0 192.168.7 link#2 UC 0 0 fxp1 192.168.7.1 00:0e:a6:5a:43:56 UHLW 1 92733 fxp1 1066 195.14.50.21 10.160.96.1 UGHS 0 39136 fxp0 213.234.192.8 10.160.96.1 UGHS 0 202 fxp0 217.118.84.213/32 10.160.96.1 UGS 0 0 fxp0 217.118.84.249/32 10.160.96.1 UGS 0 0 fxp0 233.32.240 10.160.103.223 UGS 0 0 fxp0
Internet6: Destination Gateway Flags Netif Expire ::1 ::1 UHL lo0 fe80::%lo0/64 fe80::1%lo0 U lo0 fe80::1%lo0 link#4 UHL lo0 ff01:4::/32 fe80::1%lo0 UC lo0 ff02::%lo0/32 fe80::1%lo0 UC lo0
ping Ну про эту команду все знают. Первейшая наша задача - проверить доступность сервера VPN, а иногда доступность предполагаемых адресов DNS, да или просто работоспособность Интернета: ping 10.160.96.1 (проверка шлюза по умолчанию) ping vpn.corbina.net (проверка сервера PPTP VPN, а заодно и работу сервера DNS). ping www.mail.ru ping yandex.ru ping google.ru
killall -USR2 mpd Сброс сессии VPN (VPN-соединение разрывается, Интернет перестает работать).
killall -USR1 mpd Установка новой сессии VPN (Интернет начинает работать).
tail -f /var/log/mpd.log tail -n 100 -f /var/log/mpd.log Следим за логом mpd (будет отображаться его хвост) - тут в реальном времени будут видны попытки соединения, и из лога можно выудить много полезной информации (он довольно подробный, что хорошо для диагностики). В приведенном примере показан дамп успешного соединения (сервер VPN в этом случае был найден через DNS по имени vpn.corbina.net - 85.21.0.148). Jun 23 21:05:13 msinhome mpd: IPADDR 78.106.117.234 Jun 23 21:05:13 msinhome mpd: [vpn] IPCP: state change Ack-Sent --> Opened Jun 23 21:05:13 msinhome mpd: [vpn] IPCP: LayerUp Jun 23 21:05:13 msinhome mpd: 78.106.117.234 -> 85.21.0.148 Jun 23 21:05:13 msinhome mpd: [vpn] IFACE: Up event Jun 23 21:05:13 msinhome mpd: [vpn] setting interface ng0 MTU to 1460 bytes Jun 23 21:05:13 msinhome mpd: [vpn] exec: /sbin/ifconfig ng0 78.106.117.234 85.21.0.148 netmask 0xffffffff -link0 Jun 23 21:05:13 msinhome mpd: [vpn] exec: /sbin/route add 78.106.117.234 -iface lo0 Jun 23 21:05:13 msinhome mpd: [vpn] exec: /usr/local/etc/mpd/io-up.sh ng0 inet 78.106.117.234 85.21.0.148 msin Jun 23 21:05:13 msinhome mpd: [vpn] IFACE: Up event
more -f /var/log/mpd.log Вывод лога полностью. Внимание - файл может оказаться очень большой, до конца не доберетесь. Лучше используйте tail -n 100 -f /var/log/mpd.log (после опции -n указывается нужное число строк).
traceroute Тоже общеизвестная команда. Строим маршрут до нужного узла, и смотрим, где обрыв: msinhome# traceroute google.ru traceroute: Warning: google.ru has multiple addresses; using 74.125.77.104 traceroute to google.ru (74.125.77.104), 64 hops max, 40 byte packets 1 vpn148-l0.msk.corbina.net (85.21.0.148) 1.315 ms 1.341 ms 0.902 ms 2 * * * 3 195.14.54.48 (195.14.54.48) 19.186 ms 19.169 ms 19.345 ms 4 ko-crs-teng0-7-0-4.msk.corbina.net (195.14.54.184) 19.090 ms 19.208 ms 19.031 ms 5 tc-bb-teng3-2.msk.corbina.net (195.14.54.223) 19.281 ms 19.365 ms 19.216 ms 6 bankrost-lgw.Moscow.gldn.net (195.239.10.57) 35.376 ms 19.314 ms 28.946 ms 7 cat01.Frankfurt.gldn.net (194.186.80.233) 48.885 ms 54.160 ms 51.422 ms 8 de-cix10.net.google.com (80.81.192.108) 46.822 ms 46.787 ms 46.559 ms 9 209.85.255.172 (209.85.255.172) 46.932 ms 209.85.255.170 (209.85.255.170) 46.995 ms 46.970 ms 10 209.85.248.182 (209.85.248.182) 50.173 ms 209.85.250.140 (209.85.250.140) 77.381 ms 209.85.248.182 (209.85.248.182) 51.109 ms 11 209.85.248.79 (209.85.248.79) 53.818 ms 64.233.175.246 (64.233.175.246) 53.919 ms 54.180 ms 12 72.14.239.197 (72.14.239.197) 69.100 ms 54.289 ms 72.14.239.199 (72.14.239.199) 54.628 ms 13 209.85.255.106 (209.85.255.106) 59.127 ms 209.85.255.102 (209.85.255.102) 60.501 ms 54.519 ms 14 * * * 15 * * * 16 *^C
[Ссылки]
1. FreeBSD: настройка NAT с помощью ipnat. 2. FreeBSD ipnat: автоматическая поддержка правил NAT в актуальном состоянии. 3. FreeBSD: описание демона mpd. |
Комментарии
только в статье поправь
вместо:
route dns1="213.234.192.8 10.160.96.1"
route vpnpptp01="85.21.0.15 10.160.96.1"
route vpnl2tp01="85.21.0.254 10.160.96.1"
надо:
route_dns1="213.234.192.8 10.160.96.1"
route_vpnpptp01="85.21.0.15 10.160.96.1"
route_vpnl2tp01="85.21.0.254 10.160.96.1"
по крайней мере у меня на 7.0
microsin: благодарю что заметили очепатку, исправил.
RSS лента комментариев этой записи