Skip to content


Быстрая массовая правка конфигураций нескольких подинтерфейсов

Пусть имеем маршрутизатор с множеством логических интерфейсов, для каждого из которых нужно добавить/заменить один и тот же фрагмент в конфиге, например добавить строку "shutdown". Сделать это можно с помощью старого доброго sed.

Пример конфига:

$ cat conf.txt
interface FastEthernet0/1.302
  description Client1
  encapsulation dot1Q 302
  ip address 10.10.10.141 255.255.255.252
  ip verify unicast source reachable-via rx
!
interface FastEthernet0/1.304
  description Client2
  encapsulation dot1Q 304
  ip address 10.10.10.241 255.255.255.252
  ip verify unicast source reachable-via rx
!
interface FastEthernet0/1.313
  description Client3
  encapsulation dot1Q 313
  ip address 10.10.10.33 255.255.255.252
  ip verify unicast source reachable-via rx
!
interface FastEthernet0/1.314
  description Client4
  encapsulation dot1Q 314
  ip address 10.10.20.229 255.255.255.252
  ip verify unicast source reachable-via rx
  shutdown

После команды

$ cat conf.txt | sed -r "s/(interface.*)$/\1\n  shutdown/" > conf_new.txt

получаем тот же конфиг, но с уже добавленным "shutdown" для каждого подинтерфейса:

$ cat conf_new.txt
interface FastEthernet0/1.302
  shutdown
  description Client1
  encapsulation dot1Q 302
  ip address 10.10.10.141 255.255.255.252
  ip verify unicast source reachable-via rx
!
interface FastEthernet0/1.304
  shutdown
  description Client2
  encapsulation dot1Q 304
  ip address 10.10.10.241 255.255.255.252
  ip verify unicast source reachable-via rx
!
interface FastEthernet0/1.313
  shutdown
  description Client3
  encapsulation dot1Q 313
  ip address 10.10.10.33 255.255.255.252
  ip verify unicast source reachable-via rx
!
interface FastEthernet0/1.314
  shutdown
  description Client4
  encapsulation dot1Q 314
  ip address 10.10.20.229 255.255.255.252
  ip verify unicast source reachable-via rx
  shutdown

Да, у FastEthernet0/1.314 получилось два shutdown-а, но это не страшно, ведь маслом кашу не испортишь :).

Posted in *nix, Cisco.

Tagged with , , .


Телефонные коды мобильных операторов Украины

МТС: на крок попереду!
Ви ще не знаєте про нашу нову послугу, але ми вже нараховуємо за неї абонплату.

MTS: 050, 095[1234568]
Jeans (виртуальный оператор MTS): 066, 095[79], 099[02345789]
Ecotel (виртуальный оператор MTS): 099[16]
Kyivstar: 067, 096[2345], 098[12345]
DJuice (виртуальный оператор Kyivstar): 096[016789], 097, 098[6789]
Mobilich (виртуальный оператор Kyivstar): 098[0]
Life: 063, 093
Beeline: 068
Peoplenet (CDMA/3G): 092
UTEL (UMTS/3G): 091
Intertelecom (CDMA/3G): 094, 045
Golden Telecom: 039
Inmarsat (спутниковый): 870
Iridium (спутниковый): 8816
Thuraya (спутниковый): 8821658

Цифры в квадратных скобках означают множество вариантов для первой (из 7-ми) цифры номера абонента.

Международный телефонный код Украины: +38.

Posted in Misc.

Tagged with .


И снова о кошках: SDM templates

кот, сидящий на кошкеИногда встречаются ситуации, когда L3-коммутатор маршрутизирует трафик намного медленее, чем от него ожидается. В таких случаях нужно проверить правильность установки профиля выделения ресурсов, который известен как Switch Database Management template. Эти профили управляют приоретностью выделения системных ресурсов с целью оптимизации поддержки следующих возможностей:

  • маршрутизация (Routing) — максимизация выделения ресурсов для выполнения функций маршрутизации;
  • VLANs — отключение маршрутизации и максимизация количества доступных MAC-адресов (обычно требуется, если коммутатор работает исключительно как L2-коммутатор).
  • Default — баланс между первыми двумя функциями

Профиль устанавливается следующей командой:
sdm prefer {default | routing | vlan}

Примеры реакции некоторых коммутаторов на команду "sh sdm prefer".

Cisco Catalyst 3560G:

switch#sh sdm prefer
  The current template is "desktop routing" template.
  The selected template optimizes the resources in
  the switch to support this level of features for
  8 routed interfaces and 1024 VLANs.
 
   number of unicast mac addresses:                  3K
   number of IPv4 IGMP groups + multicast routes:    1K
   number of IPv4 unicast routes:                    11K
     number of directly-connected IPv4 hosts:        3K
     number of indirect IPv4 routes:                 8K
   number of IPv4 policy based routing aces:         0.5K
   number of IPv4/MAC qos aces:                      0.75K
   number of IPv4/MAC security aces:                 1K

Cisco Catalyst 2970:

switch#show sdm prefer
  The current template is "desktop default" template.
  The selected template optimizes the resources in
  the switch to support this level of features for
  8 routed interfaces and 1024 VLANs.
 
   number of unicast mac addresses:                  8K
   number of IPv4 IGMP groups:                       1K
   number of IPv4/MAC qos aces:                      0.5K
   number of IPv4/MAC security aces:                 1K

Подробнее можно почитать тут.

Posted in Cisco.

Tagged with .


Включение в лог sSMTP даты и времени отправки письма

Патч, который добавляет в лог запись даты и врмени отправки письма.
Чтобы запись в лог работала, sSMTP должен быть сконфигурен с ключом --enable-logfile.
Я также добавляю еще и ключ --enable-ssl, чтобы в логе не было ругани

Unable to set UseTLS="NO"
Unable to set UseTLSCert="NO"

Тестировалось на sSMTP 2.62, размер файла ssmtp.c 42980 байт.
Чтобы пропатчить, используем в директории, где лежит ssmtp.c, команду

patch -p0 < ssmtp.patch

Содержимое файла ssmtp.patch:

--- ssmtp.c 2008-03-06 22:01:22.000000000 +0200
+++ ssmtp.c 2009-03-15 00:02:11.000000000 +0200
@@ -39,6 +39,9 @@
 #include <fcntl.h>
 #include "xgethostname.h"
 
+// added by avz 2008-03-14
+#include <time.h>
+
 bool_t have_date = False;
 bool_t have_from = False;
 #ifdef HASTO_OPTION
@@ -112,12 +115,12 @@
 #ifdef LOGFILE
  FILE *fp;
 
- if((fp = fopen("/tmp/ssmtp.log", "a")) != (FILE *)NULL) {
+ if((fp = fopen("/var/log/ssmtp.log", "a")) != (FILE *)NULL) {
    (void)fprintf(fp, "%s\n", buf);
    (void)fclose(fp);
  }
  else {
-   (void)fprintf(stderr, "Can't write to /tmp/ssmtp.log\n");
+   (void)fprintf(stderr, "Can't write to /var/log/ssmtp.log\n");
  }
 #endif
 
@@ -1408,6 +1411,9 @@
  uid_t uid;
  bool_t minus_v_save;
  int timeout = 0;
+ // added by avz 2009-03-14
+  time_t event_time;
+ struct tm *tms;
 
  outbytes = 0;
  ht = &headers;
@@ -1663,8 +1669,12 @@
  (void)smtp_okay(sock, buf);
  (void)close(sock);
 
- log_event(LOG_INFO, "Sent mail for %s (%s) uid=%d username=%s outbytes=%d",
-   from_strip(uad), buf, uid, pw->pw_name, outbytes);
+ // added by avz 2009-03-14
+ time(&event_time);
+  tms=localtime(&event_time);
+ // log_event(LOG_INFO, "Sent mail for %s (%s) uid=%d username=%s outbytes=%d",  from_strip(uad), buf, uid, pw->pw_name, outbytes);
+ log_event(LOG_INFO, "%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d sent mail for %s (%s) uid=%d username=%s outbytes=%d",
+   1900+tms->tm_year,1+tms->tm_mon,tms->tm_mday,tms->tm_hour,tms->tm_min,tms->tm_sec, from_strip(uad), buf, uid, pw->pw_name, outbytes);
 
  return(0);
 }

Posted in *nix.

Tagged with .