Networking87 네트워크 엔지니어를 위한 프로그래밍 기초 - 9 Sets - Unordered : 순서가 없다. (Key값이나 Index값이 없다)(특정한 위치 값이 없으므로 어떤 값이 이 set안에 들어 있는가 안들어있는가 확인하는 이런 용도로 사용) - Unique items : Set의 요소item 은 중복으로 존재할 수 없다. (Set에는 수정이 불가능한 값들이 들어와야 한다) - Hashable : Set의 요소item은 hashable, 즉 immutable 값으로 number, string, tuples이 가능하다.(딕셔너리 X) - { } 중괄호 사용: Dictionary와 같이 { } 중괄호 사용 - Mutable : Set의 요소item은 수정이 가능하다. - 우리말로는 집합 중복이 존재 하는 값을 set을 만들어보자 이렇게 중복 되는 것들은 제거되.. 2021. 5. 24. VRF - 1 VRF (Virtual Routing & Forwarding) VRF는 Virtual router라고들 설명하지만, 자세히 보면 아님 무엇을 가상화 시킬것인가? Routing & Forwading을 가상화 시킨다. VLAN은 Layer 2의 Virtualization 이렇게 되면 VLAN 전부가 통신이 가능한 상황이 된다. 이런 상황을 피하기 위해서 세세한 VLAN Routing 이 필요함 이렇게 구성하고 싶을때, Router를 두개를 쓰거나, ACL을 이용하거나 등을 통해 원하는 VLAN끼리 통신하게 할수있따(Packet filtering) 이것보다 쉬운 방법이 없을까? 생각하다가 L3를 가상화 시키자 라는 solution 이 나옴 라우터 안의 가상 라우터를 둬서 VLAN을 나눔, 그런데 이 가상라우터.. 2021. 5. 22. Access list - 1 ACL이란? 네트워크를 접근제어하는 것으로 ac...! 어려워로 암기한다. 정보기기운용기능사 검정형에서 얼마 안되는 어려운 유형에 손꼽히기 때문이다. acl의 의미는 이 말대로 접근을 통제하는 리스트라고 볼 수 있다. 접근을 허용할지 거절할지 접할 수 있으며 Standard(표준) / Extended(확장)의 두 가지 방식의 ACL이 있다. ACL은 윗줄부터 한 줄씩 차례로 수행된다. 또한, ACL은 기본적으로(default로) deny any 명령어가 마지막에 적용되는데 이는 나머지를 모두 거부시킨다는 것이고 따라서 해당하지 않는 주소를 모두 permit을 사용해 허용시켜야 한다. ACL - Standard Access List : 의미 표준형 acl은 출발지 ip를 확인해 접근을 제어한다. 즉, 어디.. 2021. 5. 21. 네트워크 엔지니어를 위한 프로그래밍 기초 - 8 list는 변경 작업이 가능하다. Tuple 리스트와 동일한 성질을 가지고 있지만, "수정"이 불가하다 Tuples - Sequence : Tuple의 아이템은 순서가 있다. 즉 ordered collection 이다. - Heterogeneity : Tuple 의 아이템은 서로 다른 자료형이 와도 상관없다. - Immutable : Tuple은 그 내용을 수정할 수 없다. - Tuple의 항목item : Tuple의 각 항목item은 list, dictionary, tuple등이 올 수 있다. 튜플은 자료구조가 서로 달라도 상관이 없다. 변경이 되선 안되는 데이터들은 튜플로 저장해놓으면 됨 Dictionary를 Tuple로 튜플안에 딕셔너리가 데이터로 들어가 있음. 메모리 낭비를 줄이기위해, 자료형 안.. 2021. 5. 20. 네트워크 엔지니어를 위한 프로그래밍 기초 - 7 ##Palo Alto Config for connecting to Active Directory CN=GeorgiaSeatIT(10200007),OU=IT[Georgia Seat],OU=HR/IT[Georgia Seat], OU=Georgia Seat,OU=Overseas Corporations, OU=Users,OU=Hyundai-Transys,DC=TRANSYS,DC=Global" Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved. C:\Users\admin>dsquery dc=transys,dc=global -name 10200007 dsquery failed:The parameter i.. 2021. 5. 20. 네트워크 엔지니어를 위한 프로그래밍 기초 - 6 Python Data Structure Data Structure : 데이터를 저장할때 어떤 식으로 저장할지 정해놓는것. ex) 어떤 물건을 창고에 저장할때 자주쓰는거는 앞에두고 무거운거는 뒤로 두고 이런식으로 효과적으로 구성하는 것 변수를 정의할때 기본적으로 이 4가지 자료구조중 하나를 정하게 됨 "메모리"에 데이터를 저장할때 4가지의 구조가 있음 왜? 데이터를 활용하는 방법들이 전부 다르기 때문 리스트 : 기본적으로 목록이다. 수정이 가능하다. 대괄호 [] 로 구성. 이 괄호 안에 어떠한 값들을 집어 넣음. 리스트에서 중요한 것은, 데이터에 "순서"가 있다는것. Index 0 , Index 1 .... 이런식으로 순서대로 저장이 됨. 우리는 리스트의 특정한 자료를 정할때 index값으로 사용 Dict.. 2021. 5. 19. 네트워크 엔지니어를 위한 프로그래밍 기초 - 5 pexpect를 이용한 텔넷 접속 pexpect - 일반적인 방법 - 연결 작업 하나하나에 대한 instruction(설명)을 제공해야 한다. paramiko - Python에서 SSH 통신을 위한 라이브러리 - 자동 로그인 프로세스 - 명령어의 결과는 개발자가 코드를 작성하는 메뉴얼 방식을 분석 #Code import pexpect ip_address = '192.168.122.11' username = 'cisco' password = 'cisco' print(ip_address + '로 텔넷 접속을 시도하고 있습니다.') session = pexpect.spawn('telnet ' + ip_address, timeout=20) result = session.expect(['Username: ', p.. 2021. 5. 19. 네트워크 엔지니어를 위한 프로그래밍 기초 - 4 파이썬 코드는 다른 코드와다르게 {}를 안쓰고 들여쓰기, Tab으로 인식을 함. 위의 코드의 예를 보길 identation = 들여쓰기 If문에서는 반드시 :이 들어가야 함, 들여쓰기 가능 주석 달때는 # 하고 치면 됨 파일을 읽어올때 크게 2가지 방식 1. 파일 자체를 읽어오는 방식 2. 사용자의 input을 받는 방식 기본적으로 open명령어를 사용해서 파일을 읽어온다. 그리고 그 파일을 메모리 어딘가에 저장하고, 파일(객체)이라는 변수안에 저장. Readline()같은 명령어 경우 라인을 한 줄 씩 읽어온다. Read(n) 글자 객수로 읽어옴 왼쪽 처럼 코딩해서 실행하면 오른쪽 처럼 나옴 근데 프른트를 하면서 한번더 줄 바꿈이되서 보기 아주 불편해짐 그땐 readline()에다가.strip()명령어.. 2021. 5. 19. 네트워크 엔지니어를 위한 프로그래밍 기초 - 3 파이썬 언어의 개요와 코드 파이썬이 쉽다고 하지만, 프로그래밍언어이기 때문에 초반 진입 장벽이 낮진 않음 prepix library = 보내고 받고 하는데 쓰이는 라이브러리. 이 외에도 다른 라이브들이 많다 Interpreter = 한 줄 치고 실행하는 방식 Python Application = 스크립트 짜서 한번에 프로그램처럼 돌리는 방식 이러하게 한줄 입력하고 한줄실행하고 하는 방식을 Interpreter 방식 이라고 한다. 이렇게 짠 다음에 이렇게 실행 하면 Application 방식으로 실행 시키는 것 Number & String (Python에서 다루는 Data 자료형) data의 자료형이란? 메모리에 자료를 저장할때 어떤 종류로 저장 하느냐에 따라 구분하는 방식 % : 나머지만 취하는거 ** .. 2021. 5. 15. 네트워크 엔지니어를 위한 프로그래밍 기초 - 2 이번에 사용할 코드의 영역(보통 이렇게 코딩을 하는 듯) 이번에 실습할 코드들의 토폴로지 show version을 3개의 라우터에 넣고, 결과값 가지고 오기 궁극적으로는 Vendor사에서 제공하는 API들을 이용해서, 현재 Infra에 적용시켜 그 제품을 좀 더 효율적으로 이용할수 있도록 Tranform 시키는 과정 Function : 반복적으로 이루어지는 작업 Devices file : IP information 가져오기 Connect to device : Telnet 접속 Get device version : version 정보 가져오기 이 3가지 기능경우, 반복적으로 이루어지기 때문에 함수(Function)을 정의함 Main 함수 Main line에서 이 함수들을 active 시키는 과정 Telne.. 2021. 5. 15. 네트워크 엔지니어를 위한 프로그래밍 기초 - 1 네트워크, 특히 인프라 분야에서는 최근 기하급수적으로 바뀌고있다. 자연스럽게 프로그래밍 기반으로 바뀌고 있음. 일반 프로그래밍(데이터를 다룸)과 다르게 네트워크 기반의 프로그래밍은, 네트워크 장비를 다루는데 프로그래밍을 사용한다. 네트워크 장비의 setting및 configuration을 다룬다. 항상 효율적으로 돌아갈수 있도록 구현을 하고 죽지않도록 프로그래밍을 하게 된다. 그렇다면 이러한 네트워크 인프라에서 구현되는 어플리케이션은 무엇이 있는가? Cisco의 IOS에서 사용하는 CLI는, 기계가 분석해서 무언갈 Implement 하게 설계된 것이 아닌, 사람이 직접 명령어를 넣고, 직접 제어 및 분석(Parsing)하는 방식으로 구성 되어있다. Netcuff라든지 관리용 프로토콜을 통해 장비를 제어하.. 2021. 5. 15. Network Programmability - 2 Import telnetlib Host = ‘’ User = ‘’ Password = ‘’ mytelnet = telnetlib.Telnet(host = host) mytelnet.read_until(b’Username:’) mytelnet.write(user.encode() + b’\n’) mytelnet.read_unti9l(b’Password:’) mytelnet.write(b’Password:’) mytelnet.write(b’sh ip int br\n’) mytelnet.write(b’exit\n’) output = mytelnet.read_all() output = output.decode() print(output) 프로그램이란 무엇인가? 컴퓨터가 기능을 수행을 한다, 이 기능을 수행을 하기.. 2021. 5. 14. Network Programmability - 1 Network Programmability Python = Infra/특히 Network 장비를 다루기위함 파이썬을 학습을 해서 만드는것은 어플리케이션, 우리가 만드는 것은, 뭔가 네트웤에 존재하는 IT인프라를 프로그램으로 제어하기 위함. Proactive application : 네트웤에 존재하는 장비들의 설정을 바꾸기 위함, 예를 들면 백업 코드 짜서 프로그램 돌리는거 Reactive application : 장비 자체나 어떤 곳에서 발생하는 로그? 같은 것을 이용해서 그에 맞게 장비 설정을 바꾸는 것. 장비를 설정할때 어떤식으로 할수있는가? 1. CLI : 모든 네트웤 장비는 CLI를 지원함. CLI같은 경우는 자동화 툴이 아니기 때문에, 자동화가 어려움, Proactive application을 .. 2021. 5. 14. Palo Alto Config - 1 user-id agent -> install this agent on DNS server then it will automatically join. redristiribution : Act as re-distribution point -> 다 묻는거 방식 바꾸는거 , USER-ID 정보 distribute 하게 바꾸는거 dsquery dc=transys,dc=global -name 10200007 dsquery user "dc=transys,dc=global" -samid 10200007 show user ip-user-mapping-mp all tail lines 200 follow yes mp-log ikemgr.log test vpn ike-sa gateway KR 2021. 5. 14. First Code - 1 import telnetlib host = '192.168.122.106' user = 'stz' password = 'cisco' mytelnet = telnetlib.Telnet(host = host) mytelnet.read_until(b'Username: '') mytelnet.write(user.encode() + b'\n') mytelnet.read_until(b'Password: '') mytelnet.write(password.encode() + b'\n') mytelnet.write(b'show ip int br\n') mytelnet.write(b'exit\n') output = mytelnet.read_all() output = output.decode() print(output) 2021. 5. 14. Security Fundamentals - 2 차세대 (Next generation) 방화벽 : 방화벽에 여러가지 기능이 붙은 방화벽.Security Zones: Zone이라고 정해놓으면, 방화벽 정책을 더 간단하게 적용 할수 있다. 방화벽의 인터페이스가 이 Zone에 붙게 됨. Zone에는 하나의 인터페이스가 붙는 것이 아닌, 여러가지가 붙을수 있음.Cisco는 Zone이라는 개념을 도입하기 전에 Security Level을 씀. 100, 0이런식으로 적용해서 안전한 쪽에서 불안전한 쪽으로 못가게 이런식으로 설정 하게 만듬. 우리는 DMZ라는 존을 새로 만들수 있음.(외부에서 접속이 필요한 서버는 DMZ존에 놓아서 밖에서 접속 할수 있게 만듬)항상 Security는 높은 곳 에서 낮은 곳 으로 감. IPS(Intrusion Prevention Sy.. 2021. 5. 14. Security Fundamentals - 1 Security Terminology(전문용어)A자원이 있다. 들어가기위해 “문”을 만듬 그 문이 취약점(Vulnerability) 위협에 의해 허가받지 않은 방법으로 내부의 자원이 강탈당할 “위협”. 허가를 받은 사람은 적정한 키와 툴로 들어갈수있음. Exploit(이용하다, 기술적인 약점을 악용 하는 행위 및 도구) : 보안에 위배가 되는 도구나 툴로 문(취약점)을 따고 들어감, 악용을 한다. 공격을 한다. 기술적인 약점.Threat (위협) : 정상적이지 않은 방법으로 Security 를 위협 하는 것. IT 인프라는 상시 Threat 가 존재하긴하지만, 보안 담당자는 어떤 영역에서 Threat이 존재하는지 알아야 할 필요가 있음.Mitigation(감소) Techniques : 어떠한 위협을 감소.. 2021. 5. 14. CCNA - 8 SDN (Software Define Network) 네트워크 가상화. VM이라는 기술이 나오면서, 이 VM에 네트웤(VM에 가상화된 NIC가 있음)을 연결하다 보니 전통적인 네트웤이 가상화가 되야할 필요가 생김. -> 물리적인 네트웤 위에 가상화된 네트웤이 생김. 그러나 비즈니스나 이런 변경을 통해, 인프라를 바꿔야 할 필요성이 굉장히 많아짐. 그래서 네트웤을 가상화함. 네트웤 가상화의 장점은, 컨트롤러를 통한 네트웤 중앙 관리 가능. 물리적인 인프라위에 가상화된 인프라가 올라가는 형식 네트웤 가상화를 하는중 알아야하는 것들. Plane(기능 및 분류)을 알아야함. 이 3개의 function을 통해서 forwarding이 일어남. 인터페이스에도 CPU가 있음, 인터페이스에 해당된 CPU에 의해 작업 되.. 2021. 5. 14. CCNA - 7 Cloud Computing 네트웤 통해서 다른 사업자의 인프라 및 리소스를 빌려쓰고 그에 대해 돈 지불, AWS 1. SaaS(Software As A Service) 내가 소프트웨어를 쓸 필요가 있을때, 클라우로 접속해서 프로그램을 쓰는 방식. 사업자의 DC안에 있는 서버안에 소프트웨어를 넣어 그 소프트웨어를 돌림. (Web Mail) 원래 메일 쓰려면, 컴퓨터에 메일 클라이언트를 설치해서 써야하는데, Gmail처럼 웹에서 메일을 쓸수있는 개념. 2. Platform As A Service (PAAS) 클라우드를 통해서 어떤 어플리케이션을 개발하고 테스팅하고 할수있는 그런 환경을 서비스 받는 것. 윈도우 Azure클라우드 .net 개발 환경을 빌려서 거기서 개발 하고 테스트 할수있음. 데이터 베이스도.. 2021. 5. 14. CCNA - 6 PPPoE 인터넷이 처음에 나왔을때는 모뎀이랑 전화선을 연결함. 그 전화 가입자들의 인증을 위해서 PPP를 사용했음. PPP터널을 구성해서 PPP안의 IP data (Type)을 check. 이거 다음 ADSL이 나옴.(Ethernet) -> 가입자 컴퓨터에서 ADSL까지 Ethernet 으로 바뀜 -> PPPoE의 등장, ADSL에는 기본적으로 PPPoE 소프트웨어가 installed 되어있음. Int dialer 1 -> 항상 켜져있게 인식 MTU 1492 : 원래 Ethernet MTU 는 1500인데 PPP 8kb 빼서써야됨 Encapsulation ppp : PPP헤더 붙이기 PPP chap : PPP는 인증을 하기때문에 인증을 하기 위해 ID/PW가 필요함 Physical int -> dial.. 2021. 5. 14. 이전 1 2 3 4 5 다음