시스코 스위치의 ios를 다운로드 받아서 다른 스위치 ios 업그레이드 하기.

다른 스위치의 ios를 다운로드 받아서 ios 업그레이드 하기.

시스코 스위치의 ios는 시스코 홈페이지에서 다운로드 받을 수 있으나, 시스코의 서비스를 받을 수 없는 상황이라면 동일 기종의 ios를 다운로드 받아 ios를 업그레이드 할 수 있다.

여기서는 구형 시스코 C3550 스위치를 사용하였다.

1. 기존 스위치에서 이미지 파일 다운로드

* ios 버전 확인.

Switch_exist#show version
Cisco IOS Software, C3550 Software (C3550-IPBASE-M), Version 12.2(44)SE6, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Mon 09-Mar-09 14:33 by gereddy
...

* ios 파일을 확인한다. 아래 보면 두 가지 버전이 존재하는데, 상위버전인 c3550-ipbase-mz.122-44.SE6.bin 파일을 다운로드 하자.

Switch_exist#dir flash:
Directory of flash:/

    2  -rwx       11449   Jan 5 2022 15:01:48 +09:00  config.text
    4  -rwx        5585   Mar 1 1993 09:06:06 +09:00  config.text.renamed
    5  -rwx           5   Jan 5 2022 15:01:48 +09:00  private-config.text
    6  -rwx           0  Feb 28 2011 14:49:58 +09:00  env_vars
    8  drwx         192   Mar 1 1993 09:04:21 +09:00  c3550-i9q3l2-mz.121-19.EA1c
    7  -rwx           5   Mar 1 1993 09:06:06 +09:00  private-config.text.renamed
   88  -rwx         315  Feb 28 2011 14:49:58 +09:00  system_env_vars
   89  -rwx     6719771  Feb 10 2011 12:12:14 +09:00  c3550-ipbase-mz.122-44.SE6.bin
   90  -rwx        2072   Jan 5 2022 15:01:50 +09:00  multiple-fs
   91  -rwx         676   Mar 1 1993 09:00:55 +09:00  vlan.dat

15998976 bytes total (2847744 bytes free)

* 파일을 tftp 서버로 다운로드한다.

Switch_exist#copy flash:/c3550-ipbase-mz.122-44.SE6.bin tftp:
Address or name of remote host []? 192.168.0.17
Destination filename [c3550-ipbase-mz.122-44.SE6.bin]? 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6719771 bytes copied in 91.796 secs (73203 bytes/sec)

Continue reading

unix/linux 디렉토리별 파일 개수 세기.

unix/linux 디렉토리별 파일 개수 세기.

지인 부탁으로 만든 파일 개수 세는 쉘 스크립트.

/test/uploads 디렉토리 아래 존재하는 모든 디렉토리내의 파일 갯수를 센다. 맨 아래 디렉토리는 파일 갯수를 그 위의 디렉토리에는 파일과 디렉토리가 더해진 값을 표시한다.

#!/bin/sh

find /test/uploads -type d | while read -r dir
do
        printf "%s:\t" "$dir";
        find "$dir" -type f | wc -l;
done

Continue reading

우분투 리눅스 20.04 에서 nvidia 설치오류 – nouveau 커널 드라이버 제거

우분투 리눅스 20.04 에서 nvidia driver, cuda 설치오류 – nouveau 커널 드라이버 제거

cuda 설치하려고 하는데, 아래같이 설치되지 않았다.

$ cat /var/log/nvidia-installer.log
nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Wed Apr  6 01:20:18 2022
installer version: 510.60.02

PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

nvidia-installer command line:
    ./nvidia-installer

Using: nvidia-installer ncurses v6 user interface
-> Detected 20 CPUs online; setting concurrency level to 20.
-> Installing NVIDIA driver version 510.60.02.
ERROR: The Nouveau kernel driver is currently in use by your system.  This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding.  Please consult the NVIDIA driver README and your Linux distribution's documentation for details on how to correctly disable the Nouveau kernel driver.
-> For some distributions, Nouveau can be disabled by adding a file in the modprobe configuration directory.  Would you like nvidia-installer to attempt to create this modprobe file for you? (Answer: No)
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.

Continue reading

[Django] 관리자 페이지에 모델 action 추가.

django 관리자 페이지에 모델 action 추가.

특정 모델의 기본 action 은 아래 그림처럼 삭제가 기본이다. (django import-export를 설치했기 때문에 export action이 더 보인다).

여기에 내가 원하는 action을 추가하고싶다면 다음과 같이 처리해야한다.

1. app/models.py 의 모델이 아래와 같다.

class NetworkDevice(models.Model):
    dev_ip = models.GenericIPAddressField(default='0.0.0.0', verbose_name='Network Device IP Address')
    dev_nip = models.BigIntegerField(blank=True, null=True, verbose_name='Numeric IP')
    username = models.CharField(max_length=24, verbose_name='UserName')
    password = encrypt(models.CharField(max_length=50, verbose_name='Password'))
    protocol = models.CharField(max_length=10, choices=protocols, verbose_name='Connection Protocol')
    platform = models.CharField(max_length=16, null=True, blank=True, verbose_name='Platform')
    port = models.CharField(max_length=5, verbose_name='Port number')
    vendor = models.CharField(max_length=32, verbose_name='Vendors')
    isl3 = models.BooleanField(default=False, verbose_name='L3')
    hostname = models.CharField(max_length=64, null=True, blank=True, verbose_name='Hostname')
    collect = models.BooleanField(default=False, verbose_name='Collect Data')
    uplink = models.TextField(null=True, blank=True, verbose_name='UP Link port list')
    model_number = models.CharField(max_length=32, null=True, blank=True, verbose_name='Model')

    category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.CASCADE, verbose_name='Category')

    class Meta:
        verbose_name_plural = 'Basic Device Information.'

Continue reading

cisco ios-xe ARP timeout 조정

시스코 스위치의 ARP 캐시의 만료시간 설정- arp timeout 조정

시스코 스위치에서 ARP가 캐시에 유지되는 시간은 기본값이 14400초(4시간)이다. 이것은 인터페이스를 확인해 보면 알 수 있다.

9404R#show int vlan250
Vlan250 is up, line protocol is up , Autostate Enabled
 ...
  ARP type: ARPA, ARP Timeout 04:00:00

...

시스코 9404R 스위치에서 ARP를 확인해 보면 아래처럼 보인다.

9404R#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.201.169         6   e4c7.2269.a5c2  ARPA   TenGigabitEthernet2/0/1
Internet  172.16.201.170         -   8024.8fee.fa42  ARPA   TenGigabitEthernet2/0/1
Internet  172.16.201.173         6   e4c7.2269.a242  ARPA   TenGigabitEthernet2/0/2
Internet  172.16.201.174         -   8024.8fee.fa45  ARPA   TenGigabitEthernet2/0/2
Internet  172.16.100.1           -   8024.8fee.fa5a  ARPA   Vlan247
Internet  172.16.100.4           9   0023.245c.7d1b  ARPA   Vlan247
Internet  172.16.100.5           0   0023.245c.7db6  ARPA   Vlan247
Internet  172.16.100.6          25   0011.20fc.e880  ARPA   Vlan247
Internet  172.16.100.7          25   0011.2039.9080  ARPA   Vlan247
Internet  172.16.100.8          25   0011.5c4b.c680  ARPA   Vlan247
...

Continue reading

cisco Nexus HSRP 설정

Nexus HSRP 설정.

Nexus 7000 2대를 백본으로 사용하며 위쪽에 방화벽 1개를 사용하는 구성.

방화벽과 Nexus 사이를 ospf 구성하고 싶었으나 방화벽쪽에서 난색(?)을 표하여, 방화벽과 Nexus 연결을 hsrp로 설정하여 연결함.(방화벽은 라우터 모드)

1. 각 장비 구성은 아래와 같다.

* Nexus1
hostname: Backbone_1
ip: 172.16.10.2

*Nexus2
ip: 172.16.10.3
hostname: Backbone_2

* HSRP
hsrp 그룹: 8
Virtual IP: 172.16.10.1
적용할 인터페이스: VLAN 444
Nexus1을 Active , Nexus2를 Standby

vlan에 포트 할당하는 부분은 생략함.

Continue reading

IOS-XE copy scp, copy sftp로 파일 복사 , 전송 하기.

IOS-XE scp, sftp로 파일 복사, 전송 하기.

1. ssh로 다른 장비 또는 서버 접속 가능한지 확인.

시스코 IOS-XE 에서 ssh 로 다른 장비나 서버에 접속하려면 아래와 같이 -l 옵션 뒤에 id, -p 옵션뒤에 포트번호를 입력하고 접속할 대상의 ip 주소를 입력하면 된다. 기본 포트번호 22는 생략 가능하다.

C9404R#ssh -l snowfox -p 22 192.168.0.20
[Connection to 192.168.0.20 aborted: error status 0]
C9404R#

위와 같은 오류가 발생할때, 아래와 같은 오류메시지를 볼 수 있다.

C9404R#sh log

Jan 28 13:25:25: %SSH-3-BAD_PACK_LEN: Bad packet length 1349676916

Continue reading

리눅스에서 LSI MegaRaid 상태 보기

CentOS 7(64bit), megaraid 상태 보기.

아래와 비슷한 메시지가 보인다면 megaraid 컨트롤러를 사용중이다.

# dmesg | grep -i mega
[    1.145344] megasas: 06.807.10.00-rh1
[    1.145775] megasas: FW now in Ready state
[    1.145797] megaraid_sas 0000:08:00.0: irq 28 for MSI/MSI-X
[    1.145807] megaraid_sas 0000:08:00.0: firmware supports msix        : (0)
[    1.145809] megaraid_sas 0000:08:00.0: current msix/online cpus      : (1/16)
[    1.251298] megaraid_sas 0000:08:00.0: controller type       : MR(512MB)
[    1.251323] megasas_init_mfi: fw_support_ieee=0
[    1.251324] megasas: INIT adapter done
[    1.293339] megaraid_sas 0000:08:00.0: pci id                : (0x1000)/(0x0079)/(0x8086)/(0x9260)
[    1.293340] megaraid_sas 0000:08:00.0: unevenspan support    : no
[    1.293341] megaraid_sas 0000:08:00.0: disable ocr           : no
[    1.293342] megaraid_sas 0000:08:00.0: firmware crash dump   : no
[    1.293343] megaraid_sas 0000:08:00.0: secure jbod           : no
[    1.293348] scsi host0: Avago SAS based MegaRAID driver

raid 관련 유틸리티가 설치되어 있지 않다면, MegaCLI를 설치한다.

Continue reading

ubuntu 18.04, apache2 mod-security2 설치 및 설정.

ubuntu 18.04, apache2 mod-security2 설치 및 설정.

1. 설치.

$ sudo apt install libapache2-mod-security2

2. 아파치 웹서버를 다시 실행하고 security2 모듈이 작동중인지 확인한다.

재실행.

$ sudo systemctl restart apache2

모듈 확인

$ sudo apachectl -M | grep -i security
 security2_module (shared)

Continue reading

Ubuntu 20.04 LTS 대기모드 진입 금지.

Ubuntu 20.04 LTS에서 대기모드(hibernate) 금지하기.

Ubuntu 20.04 LTS 에 GPU 서버 구성후에, 일정 시간 지나면 서버가 대기상태로 들어가는 현상이 발생했다. 이 현상은 Ubuntu 18.04에서는 없었던 현상이다.

먼저, 아래처럼 동면(?)상태로 들어가는 서비스를 확인 해 본다.

mlearn@mlearn6:~$ sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
[sudo] password for mlearn:
 sleep.target - Sleep
     Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
     Active: inactive (dead) since Thu 2021-12-23 08:21:42 UTC; 1min 41s ago
       Docs: man:systemd.special(7)

Dec 23 07:30:04 mlearn6 systemd[1]: Reached target Sleep.
Dec 23 08:21:42 mlearn6 systemd[1]: Stopped target Sleep.

 suspend.target - Suspend
     Loaded: loaded (/lib/systemd/system/suspend.target; static; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

Dec 23 06:39:33 mlearn6 systemd[1]: Reached target Suspend.
Dec 23 06:39:33 mlearn6 systemd[1]: Stopped target Suspend.
Dec 23 07:09:35 mlearn6 systemd[1]: Reached target Suspend.
Dec 23 07:09:35 mlearn6 systemd[1]: Stopped target Suspend.
Dec 23 08:21:42 mlearn6 systemd[1]: Reached target Suspend.
Dec 23 08:21:42 mlearn6 systemd[1]: Stopped target Suspend.

 hibernate.target - Hibernate
     Loaded: loaded (/lib/systemd/system/hibernate.target; static; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

 hybrid-sleep.target - Hybrid Suspend+Hibernate
     Loaded: loaded (/lib/systemd/system/hybrid-sleep.target; static; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

Continue reading