분류없음2018.01.02 09:47

 

Today Key : Server, Network, Check, 서버, 네트워크, 확인, 체크, 명령어, command, ping, tcping, tracert, tcproute


이번 포스팅은 서버에서의 네트워크를 확인하기 위한 몇 가지 명령에 대해서 알아 보겠습니다.

 

이번 포스팅에서 다뤄지는 내용은 서버를 네트워크에 연결하는

초기 구성 시에  서버의 네트워크 설정이 잘 되었는지 확인 하기 위해서 사용하기도 하지만,

갑자기 서버가 정상적으로 통신이 되지 않거나 서비스가 정상적으로 제공 되지 않는 문제가 발생 할 경우에  더 유용하게 사용될 수 있습니다.

 

이번 포스팅에서는 윈도우에서 사용 가능한 명령에 대해서 살펴보지만,

실제 리눅스에서도 거의 동일하게 사용이 가능합니다.

향후 포스팅에서는 리눅스에서의 사용 방법이나, 아래의 명령어 이외에 추가적인 네트워크 확인을 위한 명령에 대해서 살펴보도록 하겠습니다.


 

Ping

네트워크 상태를 확인하는 데, 가장 많이 사용되는 명령어이며 또한

네트워크 엔지니어나 서버 엔지니어에게나 모두 익숙한 명령입니다.

Ping은 IP 네트워크를 통해서 목적지까지 정상적으로 네트워크가 잘 도달하는지를 확인 할 수 있습니다.

 

 ping [옵션] 목적지_IP주소

 

ping에서 사용되는 주요 옵션은 다음과 같습니다.

주요 옵션

리눅스

-n count

Ping을 보내는 패킷(ECHO_REQUEST) 을 몇 번 보내고 종료할 것인지를 지정.

기본 설정은 4회 전송

-t

중지될 때가지 지정한 호스토로 지속적으로 ping 전송..

-S srcaddr

사용할 원본 IP주소로, 리눅스의 –I 옵션과 동일

-size

패킷 크기를 지정. 기본 설정 값은 32바이트

-r count

count 홉의 경로를 기록(최대 9홉까지 설정 가능)

 

 

 

tcping

ping이 목적지까지의 네트워크가 정상적으로 도달하는지 주로 사용하는 명령어이지만,

실제 목적지까지 가는 경로 상에서는 ping에 대해서 보안장비에서 차단하는 경우가 있습니다. 

가장 대표적인 예를 들면, ping naver.com 을 하게 되면 다음과 같은 결과를 확인할 수 있습니다.  

따라서, 목적지까지 정상적으로 서비스가 되는지 확인하기 위해서는 단순히 ping이 아니라

실제 서비스 포트까지도 고려해서 테스트 해야 하는 경우가 있을 수 있습니다.

이럴 때 사용할 수 있는 것이 tcping 입니다.

tcp의 서비스 포트를 사용해서 테스트를 하는 것으로 실제 목적지까지의 서비스가 정상적으로 열리는지를 확인 할 수 있습니다.

실행 결과는 다음과 같이 볼 수 있습니다.

 

tcping의 사용 방법은 일반 ping의 사용법과 동일합니다.

 tcping [옵션] 목적지_IP주소

 

tcping에서 사용되는 주요 옵션은 다음과 같습니다.

주요 옵션

윈도우

-n count

tcping을 전송하는 횟수 (기본 5)

-t

중지될 때가지 지정한 호스토로 지속적으로 ping 전송..

-i interval

tcping을 전송하는 시간 간격

serverport

tcping으로 확인하고자 하는 서비스 포트이며, 미 설정 시에 80이 기본 값

 

* tcping은 기본 윈도우 프로그램이 아니기 때문에 아래의 사이트에서 다운받아서 사용할 수 있습니다.

      https://elifulkerson.com/projects/tcping.php

 

 

 

tracert

 

ping은 네트워크 상태를 확인하는 데, 가장 많이 활용되지만 그만큼 많이 사용되는 명령어가 tracert입니다.

ping 출발지부터 목적지까지의 통신이 되는지 단순히 체크만 한다면, tracert는 출발지부터 목적지까지의 통신이 되는지에 대한 체크를

통과하는 중간 경로를 출력해서 확인하게 됩니다.

 

tracert는 IP 헤더의 TTL(Time To Live) 필드를 이용합니다.

TTL을 1부터 1씩 증가시키면서 목적지에 도달 할 때까지 반복해서 패킷을 전송하면서 경로를 추적하게 됩니다.

네트워크 구간에서 라우터 장비를 하나 지날 때 마다 패킷의 TTL 값이 1씩 줄어들게 되고,

TTL 이 0이 되는 순간 해당 라우터에서 이 패킷을 드랍시키고

패킷 드랍의 이유를 출발지 단말에 icmp 메시지를 이용해서 알려주게 됩니다.

 TTL이 1인 경우에는 1홉까지의 장비로 전달이 되고, TTL이 0으로 만료가 되면서

해당 장비는 ‘ICMP time exceed’ 메시지를 출발지로 전달하게 됩니다.

tracert는 이 메시지를 전달한 장비의 IP를 출력하는 과정을 반복하면서 경로를 추적하는 작업을 하게 됩니다

tracert의 사용법은 다음과 같습니다 .

 tracert [옵션] 목적지_IP주소

 

tracert에서 사용되는 주요 옵션은 다음과 같습니다

주요 옵션

리눅스

-d

IP 주소를 도메인이 아닌 숫자 형식으로 표시(도메인 리졸브 미 수행)

-h maximum_hops

대상 검색을 위한 최대 홉 수

 

 

tcproute

tcproute는 이름에서 대충 감을 잡을 수 있듯이, tracert의 tcp 버전입니다.

마치 앞에서 알아본 ping에 대한 tcping 과 같은 명령어입니다.

tracert를 통해서 출발지부터 목적지까지의 경로를 체크하는 것을 서비스 포트를 이용해서 체크하는 방법입니다.

사용하는 방법은 tracert와 동일하며, 서비스 포트를 별도로 지정하는 등의 옵션을 사용할 수 있습니다 .

 tcproute [옵션] 목적지_IP주소          

tcproute 에서 사용되는 주요 옵션은 다음과 같습니다 

주요 옵션

리눅스

-p PORT

목적지 서비스 포트 지정

-d

IP 주소를 도메인이 아닌 숫자 형식으로 표시(도메인 리졸브 미 수행)

-i INT#

특정 인터페이스로 출발지 인터페이스를 지정

해당 옵션 미 사용 시에는, 명령 실행 시 인터페이스를 선택하게 됨.

--http

HTTP request를 보내서 접속 확인

* tcping과 마찬가지로 tcproute도 기본 윈도우 프로그램이 아니기 때문에 아래의 사이트에서 다운받아서 사용할 수 있습니다.

https://www.elifulkerson.com/projects/tcproute.php

 

 



Posted by 네떡지기
분류없음2015.05.10 23:29

pyeapi, eapi, python, arista : Today Key 

 

Last Update : 2015.05.19 Windows에서 설치하기

이번 포스팅에서는 Arista EOS를 관리할 수 있는 방법 중에 하나로, 기존의 eAPI를 좀 더 쉽게 사용 할 수 있도록 제공해주는

 

Python 라이브러리인 pyeapi에 대해서 다뤄봅니다.

pyeapi를 이용한 EOS 장비 관리를 위한 환경 구축부터 몇 가지 예제를 앞으로 몇 번의 포스팅을 통해서 알아보게 됩니다.

또한, pyeapi를 사용하여 Ansible을 사용하는 예제는 Automation for Networker 시리즈의 포스팅으로도 알아볼 예정입니다.


 


Arsita Python Client for eAPI (pyeapi)


Arista EOS Command API(eAPI)

  • EOS Version 4.12부터 사용 가능

  • Management plane application을 구축하여, 장비의 상태 정보나 설정을 손쉬게 관리할 수 있도록 함.

 

Python Client for eAPI

  • eAPI 작업을 보다 쉽게 구축하기 위해 만들어진 Python Client.

  • 원격지의 EOS Node(장비)에 대해서 eAPI의 HTTP/S 를 통한 제어가 되도록 설계 됨.

 

 


○ 설치하기

  •pip를 사용하여 설치하거나, Github를 통해서 설치가 가능하다.

  •본 포스팅에서는 Github를 통해서 pyeapi를 설치한다.

  •아래와 같이 Github를 통해서 pyeapi를 다운 받은 후에, install 한다.

 

 

 

 Windows 에서 설치하기

 

 

 

 

 

 

 

 

 

○ pyeapi 초기 설정하기

  •pyepai를 사용하기 위해서는 관리하기 위한 Node에 대한 설정을 Configuration 파일에 해야 한다.

  •Configuration File은 INI Style로 구성하며, 다수의 Node를 포함 할 수 있다.

  •Configuration File은 ~/.eapi.conf 에 설정하며, 설정 파일 구성은 다음과 같다.

 

 [connection:zigi1]
 host: 10.1.1.11
 username: zigi
 password: zigi
 transport: https

 

 

 

 

○ pyeapi로 장비 Version 확인하기

  •pyeapi 라이브러리를 먼저 Import 한 후에 관리하고자 하는 장비를 연결하는 데,

     이 때에 Configuration 파일에서 지정한 Naming을 사용한다.

  •장비를 연결한 후에는 Node에 대한 인스턴스를 리턴한다.

  •위의 실행 예제에 대한 결과 값은 다음과 같다.

 

 

 •위의 결과 값은 사용자가 알아보기는 쉽지 않기 때문에 적절하게 다음과 같이 결과 값을 가공하면 좀 더 쉽게 알아볼 수 있다.

   

 

 

다음 포스팅에서는 pyeapi를 사용한 보다 다양한 예제를 다뤄보겠습니다.

 

 

 
Posted by 네떡지기
DevOps/Automation2015.05.02 04:47

Automation, Arista, Ansible, Configuration  : Today Key


Automation for Networker의 8번째이자, Ansible의 7번째 포스팅입니다.

이번 포스팅에서는 실제 가장 적용이 많이 될 만한, Ansible을 활용한 Configuration 백업에 대한 예제입니다.


 

 

Automation Tool인 Ansible을 활용한 Arista Config 백업하기

 


지난 번까지 Ansible에서 eAPI Library를 활용한 Arista 장비를 제어하는 예제를 알아보았습니다.

 

이번에는 제일 유용하게(?) 사용될만한 Configruation 백업에 대한 예제를 다뤄봅니다.

지난 번에 다뤄진 예제와 비슷한 듯 하지만, 몇 가지 더 고려해야 할 만한 부분이 있는 예제입니다.

 

 

< YML  작성하기 >

  - Configuration을 백업하기 위한 commands를 vars로 입력하는 데, enable을 먼저 한 이후에 show running-config를 한다.

    왜냐하면, show running-config를 실행하기 위해서는 enable 모드에서 사용하기 때문이다.

  - 기본 ansbile을 사용하기 위한 Arista Library의 eos_command에서는 json 모드만 지원한다.

    하지만, show running-config는 json을 사용하여 실행하려고 하면 eAPI에서 json으로는 해당 command를 지원하지 않기 때문에

    eos_command에서 json 방식이 아닌 text 방식으로 eAPI에 command를 전송하도록 변경해야 한다.

    (현재도 별도의 라이브러리의 변경없이 text방식이 지원된다면, YML에서만 수정을 해도 된다. 혹은 추후 지원 시..)

  - YML을 작성하면서 언급한 위의 show running-config를 하기 위한 모드 변경 및 방식 변경과 관련한 부분은 arista에서 지원하는

    eAPI Command를 통해서 웹접속으로 직접 명령과 결과 확인이 가능하다. 

 

---
-  name: ARISTA-ANSIBLE
   hosts: arista
   vars:
     commands:
       - enable
       - show running-config

   tasks:
     - name: ZIGI_Arista_eAPI_Command
       eos_command1: eapi_username={{eapi_username}}
                    eapi_password={{eapi_password}}
                    eapi_hostname={{eapi_hostname}}
                    eapi_port={{eapi_port}}
       args: { commands: "{{ commands }}" }
       register: result

     - debug: var=result
     - name: var=result
       template: src=my2.j2 dest=./result2

 

 

 

< Template >

   - 기존의 예제처럼 결과 값의 result의 output에 대한 템플릿을 사용할 수도 있지만,

     아래와 같이 템플릿을 지정하면, 실제 장비에 바로 설정이 가능한 config 형식으로 결과 값을 만들 수 있다.

     (결과 값으로 반환된 값을 Python 데이터 타입으로 확인해보면, 아래와 같이 템플릿으로 지정할 수 있다. )

 

 {{ result['output'][1]['response']['output'] }}

 

 

 

 

< Playbook 실행하기 >

   - 위에서 작성한 YML과 Template을 가지고 실행하면 다음과 같이 정상적으로 실행되었음을 알 수 있다.

   - 그리고 실제 결과 값은 아래와 같이 조금은 한 눈에 들어오지 않게 출력해준다.

 

 

 

 

< 결과 확인하기 >

    - 이제 템플릿을 사용하여, 가공한 결과 값의 파일(result2)를 확인해 보면, 실제 장비 Configuration을 백업하던 것처럼

      바로 적용이 가능하도록 Config가 백업된 것을 확인할 수 있다.

 

.

 

 

Posted by 네떡지기
분류없음2015.04.24 23:22

Ansible Arista  vEOS eAPI  : Today key


Automation for Networker의 8번째이자, Ansible의 6번째 포스팅입니다.  

이번 포스팅은 Ansbile을 사용하여 Arista 장비의 상태 값을 가져오는 예제입니다. 

 

 

지난 번에 간단한 테스트까지만 해두고 놔두었다가, 오늘 지인의 물음에 의해서 다시 점심시간에... 후다닥..

다시 테스트하고... 간단하게 나마.. 포스팅해봅니다.


 

Automation Tool인 Ansible을 활용한 Arista 상태 값 확인


지난 번에는 Ansible에서 eAPI Library를 활용한 Arista 장비를 제어하는 것을 몇 가지 알아보았습니다.

이번에는 동일하게 Library를 사용하여 Arista 장비의 상태 값을 확인하는 예제를 다뤄봅니다.

전체 예제는 Ansible 관리 서버와 Arista VM 1대를 이용하여 진행을 하게 되며, 개인 PC에서도 동일하게 구성하여 테스트가 가능합니다.

 

 

 

예제1) Version 정보 확인

 

[ YML 작성하기 ]

    - YML의 기본 작성 형식에 따라서 이름과, 적용할 Hosts에 대해서 지정한다.

    - eAPI에서 JSON을 사용한 eos_command를 적용하기 위해, eos_command를 라이브러리를 사용한다.

    - 적용하고자 하는 command를 vars에 지정한다. 아래의 예제에서는 1개의 명령어만 있지만, 여러개를 지정할 수 있다.

    - register를 사용하여, Command한 결과 값을 변수처럼 저장하여 사용할 수 있다. 

      이렇게 저장된 값은 template, action, statements에서 사용하게 된다.

    - 그리고, Playbook 실행 시에 결과 값을 볼 수 있도록 debug에 해당 결과 값을 출력하게 하였다.

    - 마지막으로 결과 값을 템플릿을 사용하여 파일로 생성할 수 도 있다.

 

 

 

※ 마지막의 action 항목은 Ansible 0.8 이후부터는 anction 대신에 다음과 같이 사용해도 된다. (결과 값은 동일)

 

 template: src=my.j2 dest=./result1

 

 

 

 

[ Template ]

    - Playbook에서 사용된 결과 값에 대해 파일로 저장하기 위해서 사용한 Template 파일을 보면 아래와 같다.

    - result에서의 'output'에 대한 값만을 결과값 내용으로 취한다.

      무슨 내용인지는 아래의 실행 결과와 생성된 파일의 내용을 보면 보다 이해하기 쉽다.

 

 

 

 

[ YML(Playbook) 실행하기 ]

    - 위에서 작성한, Playbook을 실행하면 아래와 같이 정상적으로 작성이 성공한 것을 볼 수 있다.

    - Debug에서 보면, show version에 대한 결과 값을 확인할 수 있다.

      결과 값은 eapi의 json을 사용하여 나온 결과 값으로 출력되게 된다.

    - 결과 값에서서 보면 result안에 output이라는 항목이 이고, 실제 이 output이 원하는 show version에 대한 내용이다.

      위에서 본 template에서 result안의 output라고 지정한 이유는 이 때문이다. 실제 아래 생성된 결과 파일의 내용을 보면

      Debug에서 볼 수 있는 전체 결과가 아닌 output에 대한 결과값만 저장되었음을 볼 수 있다.

 

 

[ 생성된 결과 파일 확인하기 ]

    - 위의 결과 값 중에 output에 대한 내역에 대해서만 결과 파일로 저장된 것을 확인할 수 있다.

Posted by 네떡지기

 

개인적인 업무상으로 필요로해서 기존에 가지고 있던 자료에서 약간 수정해서 급조해서 만든 명령어 비교 리스트입니다.

후다닥 만든거라서 부족한게 많을 듯 싶지만, 혹시라도 필요하신 분들이 있으실 듯 싶어서 공유합니다. ^^;

추가하면 좋을 부분이라든가 틀린 부분은 가차없이 알려주시면 감사하겠습니다.

 


 

시스코 / 익스트림 / 한드림넷 명령어 리스트

by 네떡지기(http://ThePlmingSpace.tistory.com)

시스코

익스트림

한드림넷

설명

show ver show ver show version

OS 버전

show switch show system system-info

System정보 확인

show run show config show run / write terminal

Configration 표시

show interface show port [no] show interface switchport

포트 정보 확인

show interface status
show interface [if] show port [if] [util/packet] show interface [if]

인터페이스 세부 정보

show arp show iparp show ip arp

arp 정보 표시

show mac-address show fdb show mac-table [IFNAME]

MAC Address를 출력

show vlan show vlan show vlan

VLAN정보 표시

show spanning-tree show vlan show spanning-tree pvstp

spanning-tree 정보 표시

show spanning-tree vlan show "Default" show spanning-tree pvstp

특정 

show ip int brief show vlan show ip int brief

VLAN에 할당된 IP정보 표시

show cdp  show edp show cdp neighbor [detail]

인접 장비 정보 표시

show cdp neighbor [detail] show edp port all [detail]

인접한 장비 정보 표시

show process cpu top show system cpu-load

CPU 정보 표시

show cpu-monitoring
show memory show memory show system memory

Memory 정보 표시

show tech show tech show tech-support 

Show Tech

show log show log show syslog

log 정보 표시

show env fan show fan sh system fan

장비 Fan 정보 표시

show env power show power sh system psu 

장비 Power 정보표시

show env temperature show temperature sh system temperature

장비 온도 표시

writer memory save write [memory]

설정 저장

erase startup unconfigure switch all factory-default

설정 초기화

show inline-power  show inline-power info port [if] show poe

PoE 정보 표시

    show system uptime

시스템 Uptime

 

 

 

시스코_익스트림_한드림넷_명령어리스트.pdf

 

 

Posted by 네떡지기

티스토리 툴바