вторник, 18 декабря 2012 г.

Static route Cisco to Juniper

Есть два статических маршрута в конфиге IOS:


ip route 10.44.254.254 255.255.255.255 10.200.34.29 
ip route 10.44.254.254 255.255.255.255 10.200.34.201 250

Нужно отразить эти маршруты в конфигурации JunOS. Первое, что пришло на ум:


set route 10.44.254.254/32 next-hop 10.200.34.29 metric 1
set route 10.44.254.254/32 next-hop 10.200.34.201 metric 250

Получилось:


route 10.44.254.254/32 { 
    next-hop [ 10.200.34.29 10.200.34.201 ]; 
    metric 250; 
}

Что-то не так :)

Есть у Juniper инструмент " I2J translator". Заливаем ему часть конфига IOS, он выдает ей в синтаксисе JunOS. Результат:


* I2J Version:       10.1R2 / 7/19/2011 
 * Parse Date:        Tue Dec 18 05:19:13 PST 2012 
 * Error Lines:       0 
 * Warning Lines:     0 
 * Information Lines: 0 
 * 
 * NOTE: This config is NOT PERFECT.  It must be carefully 
 *       examined to ensure correctness. 
 * 
 * Jump to JUNOS section: 
 *  routing-options 
 * 
 * Jump to IOS configuration file with conversion messages 
  
routing-options { 
    static { 
        route 10.44.254.254/32 { 
            next-hop 10.200.34.29; 
            qualified-next-hop 10.200.34.201 { 
                preference 250; 
            } 
            resolve; 
        } 
    } 
}

Спасибо, Espen, за хороший вопрос :)

понедельник, 10 декабря 2012 г.

Cisco IOS password recovery

Оригинал тут http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/810-cisco-router-password-recovery.html


Introduction

Password recovery is a fairly frequently used procedure for administrators and engineers. Even though we usually stack our passwords in some word, excel or text file, it's very easy to forget to update them when changes occur. The end result is you find yourself locked out of the device, wondering what on earth could be the password.
Accessing a Cisco router requires certain privileges. Depending on the router's configuration, you might be required to firstly log into the router and then enter the popular 'enable' password to elevate your access to privileged mode, from where you can issue configuration commands.
This article will show you how you can gain full administrator access to a Cisco router, bypassing all security passwords. The password recovery process, however, can be rendered useless if the administrator has previously configured the router not to allow this process to take place. In this case, the router will warn the user and, if he proceeds, all configuration will be erased, so there will be nothing to recover!

вторник, 6 ноября 2012 г.

Еще несколько слов о Path MTU Discovery Black Hole NABRAHABR.RU

Очень хорошая статья о решении проблем с MTU. Взял тут - http://habrahabr.ru/post/136871/#habracut

Еще несколько слов о Path MTU Discovery Black Hole



Вместо вступления


Однажды для каждого настоящего системного администратора (или исполняющего обязанности такового) наступает момент истины. Ему выпадает судьба настроить маршрутизатор на компьютере с установленной ОС GNU/Linux. Те, кто это уже прошел, знают, что ничего сложного в этом нет и можно уложиться в пару команд. И вот наш админ находит эти команды, вбивает их в консоль и гордо идет к пользователям сказать, что уже все работает. Но не тут-то было – пользователи говорят что их любимые сайты не открываются. После траты некоторой части своей жизни на выяснение подробностей обнаруживается, что большая часть сайтов ведет себя следующим образом:
1. При открытии страницы загружается заголовок и больше ничего;
2. В таком состоянии страница висит неопределенно долгое время;
3. Строка статуса браузера все это время показывает что загружает страницу;
4. Пинги и трассировка до данного сайта проходят нормально;
5. Соединение по telnet на 80 порт тоже проходит нормально.
Обескураженный админ звонит в техподдержку провайдера, но там от него быстро избавляются, советуя попробовать настроить маршрутизатор на OC Windows, а если уж и там не работает тогда… купить аппаратный маршрутизатор.
Я думаю, эта ситуация знакома многим. Некоторые в нее попадали сами, у кого-то с ней сталкивались знакомые, а кто-то встречал таких админов на форумах и прочих конференциях. Итак: если у Вас Такая Ситуация, то — Поздравляю! Вы столкнулись сPath MTU Discovering Black Hole. Данная статья посвящается тому, отчего это бывает, и как решить эту проблему.


вторник, 30 октября 2012 г.

Cisco ASA Policer

Шейпер на АСА можно применить только для default-class, полисеры же применяются к любым классам.

Для пользователя 192.168.11.11 режем скорость вверх и вниз на 100000 bits per second.
Политику применяем на интерфейс Inside.

access-list user1_wifi-inet_to_user extended permit ip any host 192.168.11.11
access-list user1_wifi_user_to_inet extended permit ip host 192.168.11.11 any
!
class-map user1_inet_to_user
 match access-list user1_wifi-inet_to_user
!
!
class-map user1_user_to_inet
 match access-list user1_wifi_user_to_inet
!
!
policy-map PolicyMap_Inside
 class user1_inet_to_user
  police output 100000
 class user1_user_to_inet
  police input 100000
!
!

service-policy PolicyMap_Inside interface inside

Чтобы убрать политику с интерфейса:

no service-policy PolicyMap_Inside interface inside.

Для теста скорости, рекомендую использовать утилиту ipref.

По теме:
http://serverfault.com/questions/322621/qos-on-cisco-asa-5505-by-vlan-subnet/322803#322803
http://www.cisco.com/en/US/docs/security/asa/asa82/configuration/guide/conns_qos.html#wp1171819
http://www.icefortress.ru/?p=53

вторник, 4 сентября 2012 г.

Увидеть ASA через tracert

По началу не мог понять, куда же АСА прячется из трассы. Вот оно как.

http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/products_tech_note09186a0080094e8a.shtml#asatrace


Make the Firewall Show Up in a Traceroute in ASA/PIX

ciscoasa(config)#class-map class-default
ciscoasa(config)#match any


!--- This class-map exists by default.


ciscoasa(config)#policy-map global_policy


!--- This Policy-map exists by default.


ciscoasa(config-pmap)#class class-default


!--- Add another class-map to this policy.


ciscoasa(config-pmap-c)#set connection decrement-ttl


!--- Decrement the IP TTL field for packets traversing the firewall.
!--- By default, the TTL is not decrement hiding (somewhat) the firewall.

четверг, 21 июня 2012 г.

Предотвращение IP-фрагментации. Что такое TCP MSS и как оно работает


Оригинал тут http://www.cyberguru.ru/networks/protocols/ip-fragmentation-page3.html

Максимальный Размер TCP Сегмента (MSS) определяет максимальное количество данных, которые хост желает принимать в единственной TCP/IP датаграмме. Эта TCP/IP датаграмма может быть фрагментирована в уровне IP. Значение MSS посылают как опциию TCP заголовка только в сегменте TCP SYN. Каждая сторона на TCP соединении сообщает свое значение MSS другой стороне. Хост отправитель обязан ограничивать размер данных в единственном TCP сегменте в значение, меньшем или равном MSS, о котором сообщает хост получатель. 

Первоначально, значение MSS означало, сколько памяти нужно выделить (больше или равной 65496 КБ) на станции получателя, чтобы в состоянии хранить TCP данные, содержавшиеся в пределах единственной IP датаграммы. MSS был максимальным сегментом (кусочком) данных, которые желал принимать TCP получатель. Этот TCP сегмент мог быть огромным, примерно до 64 КБ (максимальный размер IP датаграммы), и его необходимо было фрагментировать на уровне IP, чтобы передать по сети к хосту получателю. Принимающий хост повторно должен был собрать IP датаграмму прежде, чем передать полный TCP сегмент на уровень TCP.

Рассмотрим ниже несколько показательных сценариев, от том как установливаются и используются значения MSS, чтобы ограничить размеры TCP сегмента, и соотвественно, размеры IP датаграммы. 

Сценарий 1 иллюстрирует способ, которым реализовывлся MSS ранее. Хост A имеет буфер 16 КБ а Хост B - буфер 8 КБ. Они посылают и получают свои МSS значения и корректируют их чтобы послать данные друг другу. Заметьте, что Хост A и Хост B должны фрагментировать IP датаграммы, которые по размеру больше чем MTU интерфейса, но все еще меньше чем посылаемый MSS, потому что стек TCP может передать 16 КБ или 8 КБ данных в IP стек. В случае Хоста B, пакеты могут быть фрагментированы дважды, один раз, чтобы дойти до Token Ring LAN и еще раз, чтобы добраться до сети Ethernet.

IP-фрагментация - Сетевые протоколы - Сети и интернет - Программирование, исходники, операционные системы
  1. Хост А посылает свое MSS значениеХ в 16К Хосту B
  2. Хост B принимает значение MSS 16K от Хоста A
  3. Хост B устанавливает MSS посылки в значение 16K
  4. Хост B посылает свое значение MSS в 8K хосту A
  5. Хост A принимает значение MSS 8K от Хоста B
  6. Хост A устанавливает MSS посылки в значение 8K
Для того, чтобы уйти от IP-фрагментации, на конечных точках TCP соединения, выбранные значения MSS были изменены на минимальный размер буфера и MTU исходящего интерфейса (-40). Значение MSS на 40 байт меньше чем значение MTU, потому что MSS это только размер TCP данных, который не включает 20-байтовый заголовок IP и 20-байтовый заголовок TCP. MSS основан на значениях размера заголовков по умолчанию; стек отправителя должен вычесть соответствующие значения для IP заголовка и TCP заголовка в зависимости от того, какая используется TCP или IP опция. 

Способ которым теперь работает MSS это то, что каждый хост сначала сравнивает свой MTU исходящего интерфейса с его собственным буфером и выберет самое низкое значение в качестве MSS, для посылки. Затем хосты сравнят полученный размер MSS, с их собственным MTU интерфейса и снова выберут меньшее из двух значений. 

Сценарий 2 иллюстрирует этот дополнительный шаг, сделанный отправителем, чтобы избежать фрагментации на локальных и удаленных каналах. Посмотрите, как принимается во внимание MTU исходящего интерфейса каждым хостом (прежде, чем хосты пошлют друг другу свои значения MSS), и как это помогает избежать фрагментации.

IP-фрагментация - Сетевые протоколы - Сети и интернет - Программирование, исходники, операционные системы
  1. Хост A сравнивает свой MSS буфер (16 КБ) и свой MTU (1500 - 40 = 1460) и использует наименьшее значение как MSS (1460), чтобы послать его Хосту B. 
  2. Хост B получает MSS (1460) который послал хост A, и сравнивает его со значением MTU своего исходящего интерфейса - 40 (4422). 
  3. Хост B устанавливает наименьшее значение (1460) как MSS для того, чтобы послать IP датаграммы Хосту A. 
  4. Хост B сравнивает свой MSS буфер (8 КБ) и свой MTU (4462-40 = 4422) и использует 4422 как MSS, чтобы послать его Хосту A. 
  5. Хост A получает MSS от хоста B (4422), и сравнивает его со значением MTU своего исходящего интерфейса -40 (1460). 
  6. Хост А устанавливает наименьшее значение (1460) как MSS для того, чтобы посылать IP датаграммы Хосту B. 
1460 это значение, выбранное обоими хостами как МSS посылка друг для друга. Часто посылаемое значение MSS будет тем же самым на каждой стороне TCP соединения. 

В Сценарии 2, фрагментация не происходит, потому что хостами были приняты во внимание MTU обоих интерфейсов. Пакеты могут все еще фрагментироваться в сети между Router A и Router B, если они встретят линк с более низким MTU.

Проблемы IP-фрагментации


Оригинал http://www.cyberguru.ru/networks/protocols/ip-fragmentation-page2.html

Существуют несколько проблем, когда IP-фрагментация нежелательна. Чтобы фрагментировать IP датаграмму требуются больше ресурсов CPU и памяти. Это справедливо как для отправителя так и для маршрутизатора между отправителем и получателем. Создание фрагментов просто влечет за собой создание заголовков для IP-фрагментов и копирование оригинальной датаграммы во фрагменты. Это может быть сделано достаточно эффективно, потому что вся информация для создания фрагментов уже доступна. 

Фрагментация накладывает больше расходов для получателя, когда он повторно собирает фрагменты, потому что получатель должен выделять память для прибывающих фрагментов и соединять их обратно в одну датаграмму после того, как получены все фрагменты. Реассемблирование на хосте это не проблема, потому что хост имеет время и ресурсы памяти, чтобы посвятить их этой задаче. 

пятница, 15 июня 2012 г.

Double tagging, QINQ. Двойной тэггинг.


 нужно пройти процедуру согласования номера влана, все коммерческие процедуры… Дело может затянуться не на один день. В общем, попали мы в такую ситуацию, что в городе М, оператор заворачивает наши вланы в ещё один тэг, пуская их по своей сети уже этим номером. Первых тэгов он не видит вообще.
Вот такая схема:



На его коммутаторе акцесный (access) порт, который ставит на приходящие в него пакеты номер 50.

#
interface Ten-GigabitEthernet1/0/3
 description QINQ-M-to-K
 port access vlan 50
 qinq enable
#

Со своей стороны я отдаю в него вланы 3071, 3072 транком.

interface Ten-GigabitEthernet1/0/16
 description to-city-K
 port link-type trunk
 undo port trunk permit vlan 1
 port trunk permit vlan 3031 to 3032
 qos trust dscp

четверг, 31 мая 2012 г.

Многопоточность в Perl. Threads, Queue.

У меня уже был пост об этом. Со временем исправил много багов. Теперь нити работают через очередь, не зависают. Данный скрипт пингает хосты из сети, которую мы ему задаем в переменной $network, выдаёт статистику "сколько хостов ответило из общего количества в сети". Сеть задаём в формате N.N.N.N/N, модуль Net::Netmask определяет кол-во хостов в сети. В данном случае стартует 25 нитей, каждая из которых выполняет функцию ping. Когда очередь исчерпана, скрипт переходит к подсчёту статистики из файла.


#!/usr/bin/perl -w
#Ping network with threads and queue

use threads;
use Net::Ping;
use Net::Netmask;
use Thread::Queue;

# Programm variables

$debug=1;
$data_queue0 = Thread::Queue->new;
my $sleeptime = 0;                              

$network='178.76.215.0/25';

sub cidr {
  my $net = shift @_;
  my $block = Net::Netmask->new($net);
  my @pool;
  $size=$block->size();

  for (my $i=0; $i<=$size; $i++) {
   #print $block->nth($i),"\n";
 push (@pool, $block->nth($i));
 
  }
  return @pool;

}
                                                        
sub ping {
  while ($data_queue0->pending()) {
  my $host = $data_queue0->dequeue;
  my $pingprotocol = "icmp";
  my $pingtimeout = 1;
  my $pinglength = 1;
                                                                                                 
  my $p = Net::Ping->new($pingprotocol,$pingtimeout,$pinglength);
    if ( $p->ping($host) ) {
      print OFILE "$host OK\n";
      #print "$host OK\n";
        }  
  $p->close();
  }
}


sub que {
    print "Starting que sub\n";
    my @ar=@_;
    #print @ar,"\n"; 
    my $a;

    foreach my $ip (@ar) {
     $data_queue0->enqueue($ip);
  $a++;
    }

    if ($debug==1) { print "$a elements queued\n"; }
}

sub startthreads {
    for ($m=0; $m<=24; $m++) {
 sleep($sleeptime);
 $thrd[$m] = threads->new(\&ping, $data_queue0);
     print "Thread $m started.\n";  

    }
    print "All threads are started\n";                                            
    foreach (@thrd) { $_->join(); }
    print "All threads are joined!\n";
}

#Programm body

#1 - Recive data from cidr to array
@ipaddr = cidr($network);

#2 - Insert array into queue
que(@ipaddr);

#3 - Open file for inserting stdout from threads
open OFILE, ">ping_network_stats.txt";

#4 - Create threads
startthreads;

#5 - Close file with WRITE ONLY
close(OFILE);

#6 - Open file with READ ONLY
open OFILE1, ";

#8 Delete empty strings
chomp @count;

#9 - Print results of programm 
print "Network usage\: ",$#count," of ",$size,", ", $use=($#count/$size)*100, " %";

#10 - Close file descriptor with WRITE ONLY
close (OFILE1);

четверг, 24 мая 2012 г.

Работа с PostgreSQL через DBI в Perl

Очень доходчиво.

Оригинал тут http://www.lghost.ru/docs/postgres/DBI_pg.html

В этом небольшом руководстве я рассмотрю работу с SQL сервером PostgreSQL в языке Perl. Поскольку для Perl существует стандартный интерфейс для работы с разными СУБД, который называется DBI (Database Independent Interface), то я буду рассматривать именно его. Хотя DBI и является стандартной вещью, но всё-равно от специфики конкретных СУБД никуда не уйти, так как некоторые СУБД могут не поддерживать весь спектр возможностей заложенных в DBI. Поэтому, в данном случае, я буду говорить только о реализации DBI интерфейса, которую поддерживает DBI драйвер для PostgreSQL. Этот драйвер поставляется в виде отдельного модуля, который интегрируется с DBI и называется DBD::Pg (DataBase Driver для PostgreSQL).

Информация, которую вы найдёте в данном руководстве не является (за малыми исключениями) моим личным опытом. Я просто сделал небольшую компиляцю странички man наDBD::Pg и снабдил ряд моментов пояснениями и примерами. В принципе, если у вас нет трудностей с английским языком, а также есть желание почитать оригинал - вы всегда можете это сделать.


среда, 25 апреля 2012 г.

Редактор по умолчанию. Debian.


В Debian, в качестве редактора по умолчанию, выступает программа nano. Не могу сказать что он плохой или не удобный, просто дело привычки и личного комфорта, поэтому первое что я делаю попав в систему, меняю его.
Делается это с помощью команды update-alternatives. Как работает данный механизм, можно ппрочитать в man. Если коротко, есть директория /etc/alternatives в которой лежит куча символических ссылок на различные программы, которые по сути являются группами. Возьмем например текстовые редакторы, им соответствует ссылка/etc/alternatives/editor, а эта ссылка, ведет уже на какой-то конкретный редактор ( или на еще одну ссылку, которая уже ведет на редактор ) в каталоге /usr/bin.
То есть что мы имеем по умолчанию, на примере текстовых редакторов. Символическая ссылка /etc/alternatives/editor, ведет на файл /usr/bin/nano, который в свою очередь является ссылкой на бинарный файл редактора /bin/nano. Немного запутанно, согласен, но по сути вникать в сам механизм альтернатив и не обязательно, нужно просто знать как он работает, мало-ли чего.
Программа update-alternatives умеет работать в интервактивном и командном режимах , процесс выбора редактора по умолчанию в интерактивном режиме, выглядит так:
root@backtrack:/usr/bin# update-alternatives --config editor

There are 6 alternatives which provide `editor'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/bin/vim.tiny
          2    /bin/ed
*+        3    /bin/nano # символом *, отмечена текущая программа, символом +, программа с самым высоким приориретом в данной группе
          4    /usr/bin/emacs21
          5    /usr/bin/nedit
          6    /usr/bin/mcedit-debian

Press enter to keep the default[*], or type selection number: 6 # выбираем номер 6
Using '/usr/bin/mcedit-debian' to provide 'editor'.
# Проверим
root@backtrack:/usr/bin# update-alternatives --config editor

There are 6 alternatives which provide `editor'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/bin/vim.tiny
          2    /bin/ed
 +        3    /bin/nano
          4    /usr/bin/emacs21
          5    /usr/bin/nedit
*         6    /usr/bin/mcedit-debian # теперь этот редактор является текущим
Что-бы выставить значение по умолчанию, достаточно выполнить команду:
root@backtrack:/usr/bin# update-alternatives --auto editor
и редактором по умолчанию снова станет программа, помеченная символом +.
Если запустить update-alternatives с ключом --all, запустится интерактивная настройка всех групп в сисеме альтернатив, просто нажимая Enter, можете просмотреть все имеющиеся в наличии группы команд.
В качестве примера был взят именно текстовый редактор, поскольку из системы альтернатив, я настраиваю только его, при этом постоянно забываю как это делать).

вторник, 24 апреля 2012 г.

GPRS через Bloetooth в Debian

Оригинал: http://tuxedo-live.blogspot.com/2007/05/gprs-linux.html Размещаю у себя, чтобы не потерялось.

Устанавливаем следующие пакеты:
[+]ppp
[+]wvdial
[-]libuniconf4.2
[-]libwvstreams4.2-base
[-]libwvstreams4.2-extras
[-]libxplc0.3.13
[+]bluetooth
[-]bluez-utils
[+]bluez-hcidump
[-]libbluetooth2
~$ su или ~$ sudo -s // получаем права суперпользователя

~# apt-get install ppp wvdial bluetooth bluez-hcidump
или выбираем предложенные пакеты в synaptic

После установки пакетов производим следующие настройки:
~# nano /etc/wvdial.conf
[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 115200
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","internet.beeline.ru"
Phone = *99***1#
Username = beeline
Password = beeline

для пользователей МТС изменяем beeline на mts

~# nano /etc/resolv.conf
nameserver 217.118.66.243 # один из DNS Би Лайн
nameserver 213.87.0.1 # один из DNS МТС


~$ hciconfig // подцепляем bluetooth адаптер на ноуте~$ hcitool scan // сканируем девайсы с синим зубом~# rfcomm bind 0 [полученный мак-адрес] 1


update (triklozoid)

rfcomm bind 0 [полученный мак-адрес] 1
не всегда имеет такой вид.
Нужно сначала выполнить "sdptool browse MAC-адрес" и посмотресть параметр channel у службы Dialup-Networking.
В моем случае канал оказался второй, а не первый. Таким образом команда имеет вид
rfcomm bind 0 MAC-адрес CHANNEL


соединяемся...
~$ wvdial
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CGDCONT=1,"IP","internet.beeline.ru"
AT+CGDCONT=1,"IP","internet.beeline.ru"
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }8}#}$@#}(}"}'}"}"}&} } } } }%}&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;[1f]R.hx5~
--> Carrier detected. Waiting for prompt.
~[7f]}#@!}!}"} }8}#}$@#}(}"}'}"}"}&} } } } }%}&[1f]R.h2'~
--> PPP negotiation detected.
--> Starting pppd at Sat May 12 00:45:04 2007
--> Pid of pppd: 12892
--> Using interface ppp0
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> local IP address 10.1.***.***
--> pppd: H[08][07][06][08]@
--> [06][08]
--> remote IP address 217.118.***.***
--> pppd: H[08][07][06][08]@
--> [06][08]
--> primary DNS address 217.118.66.243
--> pppd: H[08][07][06][08]@
--> [06][08]
--> secondary DNS address 217.118.66.244
--> pppd: H[08][07][06][08]@
--> [06][08]

вторник, 27 марта 2012 г.

Mysql backup/restore

Просто положу здесь.

Use of mysqldump for taking backup of one table

In this section you will see the example of mysqldump function which takes the backup of only one table.

The mysqldump utility provides many options to take the backup of data as per user requirement. You can specify the name of table be backup in while executing the mysqldump utility.

Let's assume we have to take the backup of table1 from the mydatabase, then you can issue the following command on the console:

mysqldump -u -p mydatabase table1 > table1.sql

To restore the backup you can use the following command:

mysql -u -p mydatabase < table1.sql The mysqldump is very handy tool, it can be easily used to take the backup of only one table from the database. --- Dump ALL MySQL Databases mysqldump --user=XXXXXXXX --password=XXXXXXX -A > /PATH/TO/DUMPFILE.SQL

Dump Individual or Multiple MySQL Databases
mysqldump --user=XXXXXXXX --password=XXXXXXX --databases DB_NAME1 DB_NAME2 DB_NAME3 > /PATH/TO/DUMPFILE.SQL

Dump only certain tables from a MySQL Database
mysqldump --user=XXXXXXXX --password=XXXXXXXX --databases DB_NAME --tables TABLE_NAME > /PATH/TO/DUMPFILE.SQL

Use the following procedure to reload the contents of a database:
1. Unzip the backup file you wish to use.
2. Open it up and pull out only the information that you will need.
3. Save this text file.
4. Use the following command to feed back in the contents of a text file:
mysql --verbose --user=XXXXXXXX --password=XXXXXXXX DB_NAME < /PATH/TO/DUMPFILE.SQL

четверг, 1 марта 2012 г.

BGP между двумя VRF в JunOS

Интересная ситуация. Сделал vrf в juniper mx80, решил подружить его по bgp с Global таблицей. Внутри vrf в опциях protocol - bgp прописал local as. Тем не менее, от глобала все маршруты дропались (попадали в hidden) с формулировкой AS Looped. В чём же дело. В рутерах cisco все заводится с пол пинка.
>show route receive-protocol bgp 1.1.1.1 detail hidden
  0.0.0.0/0 (2 entries, 1 announced)
     Nexthop: 1.1.1.1
     AS path: 4444 3333 I (Looped: 4444) 

VRF {  
 instance-type virtual-router;
 interface ge-1/1/5.37;
 interface xe-1/3/0.303;
 routing-options {
    static {
        route 1.1.3.3/30 next-table White.inet.0;
    }
 }
 protocols {
    bgp {
        local-as 65190;
        group GRP {
            type external;
            import import_BGP;
            export export_BGP;
            neighbor 1.1.1.1 {
                peer-as 4444;
            }
        }
    }
 }  
}
4.4.4.4 - AS роутера в глобальной таблице. Такое ощущение, что vrf тоже ощущает себя в этой же АС. Так и было. Умные люди подсказали, что в параметрах routing-options внутри vrf и нужно задавать АС для этого vrf, а в protocols bgp задаются уже АС для восприятия их другими пирами. Маршруты же приходящий в данный vrf получают AS-PATH из routing options. В результате выглядит так:
VRF {  
 instance-type virtual-router;
 interface ge-1/1/5.37;
 interface xe-1/3/0.303;
 routing-options {
    static {
        route 1.1.3.3/30 next-table White.inet.0;
    }
    autonomous-system 65190;
 }
 protocols {
    bgp {
        local-as 65190;
        group GRP {
            type external;
            import import_BGP;
            export export_BGP;
            neighbor 1.1.1.1 {
                peer-as 4444;
            }
        }
    }
 }  
}
После чего
>show route table VRF                   

VRF.inet.0: 21 destinations, 22 routes (6 active, 0 holddown, 15 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0          *[BGP/170] 00:21:57, localpref 100
                      AS path: 4444 3333 I
                    > to 1.1.1.1 via ge-1/1/5.37

среда, 29 февраля 2012 г.

CISCO Catalyst 4900M

Вставлял модуль для твингигов и десяток в третий слот. Нашел полезные заметки по серии 4900M.

http://billyc5022.blogspot.com/2012/01/configuration-tricks-catalyst-4900m.html

http://www.cisco.com/en/US/docs/switches/lan/catalyst4500/12.2/54sg/configuration/guide/sw_int.html#wp1077316

P.S. Порты модуля 1, которые расположены непосредственно в шасси работают только на сколости 10 Gbps и только к X2 модулями. TwinGig и переходник на SFP+ тут работать не будет. Во втором и третьем модуле можно переключить с десятки на гигабиты, что и описано в ссылка выше.