YAMAHA 라우터 설정을 Ansible로 설정해 보십시오.

12581 단어 AnsibleYAMAHAtech
YAMAHA 라우터의 설정을 변경할 수 있는 몇 가지 방법이 있습니다.
  • Web GUI
  • 텔넷 및 SSH에서 명령 실행
  • Ansible
  • 이 중에서 명령이 실행되는 것이 중요하기 때문에 나도 실행된 명령을 적당한 텍스트 파일에 저장하여 관리할 것이다.
    그렇다고 불편할 것도 없지만, 어떤 이유로 최근 라우터 설정을 빈번하게 조정하다 보니 신경 쓰는 Ansible 설정 방법을 시도해 봤다.

    컨디션


    제어 노드

  • ansible (2.12.4)
  • 대상 노드

  • RTX830 (Rev.15.02.22) [1]
  • 해본 일


    공식 문서의 절차에 따라 작업을 진행하고 자동화된 IPoE 설정을 시도한다.
    롯데라이트를 사용했기 때문에 PPPoE 연결도 제공됐지만 IPoE 연결을 전제로 했다.

    사전 준비


    YAMAHA에서 제공하는Ansible 모듈 SSH는 제어 노드에서 대상 노드로 명령을 실행합니다.
    따라서 라우터가 초기화되는 즉시 Ansible을 실행해도 안 되며 최소한의 설정이 필요하다.

  • 관리자 패스워드 명령을 통해 관리 암호 설정
  • 이번 IPoE 설정은 관리자 권한이 필요하므로 설정합니다.
  • # administrator password become_password
    

  • SSH 로그인을 작성한 사용자
  • RTX830에 대한 SSH에는 사용자 이름이 있어야 하므로 기본적으로 사용자 이름이 없는 사용자는 사용할 수 없습니다.
  • 따라서 Ansible용 사용자를 만듭니다
  • .
    # login user username password
    

  • SSH 로그인의 유효성
  • RTX830은 초기 상태에서 SSH 로그인이 무효화되어 유효하지 않음
  • # sshd host key generate
    # sshd service on
    

    재생본 만들기


    전체 카탈로그 구성은 다음과 같습니다.
    .
    ├── inventories
    │   ├── inventory
    ├── vars
    │   └── yamaha.yml
    └── rtx830.yml
    
    inventories/inventory에 대상인 라우터의 로컬 IP 주소 정보vars/yamaha.yml에 SSH 접속 정보가 기재되어 있습니다.
    사용자 이름과 비밀번호는 가짜입니다. 환경에 따라 바꾸십시오.
    이번에는 게임책에 대한 자세한 설명은 생략했지만 지티허브의 샘플과 README.MD의 해설을 참고하면서 게임장을 만듭니다.
    inventories/inventory
    [RTX830]
    192.168.100.1
    
    vars/yamaha.yml
    ansible_network_os: yamaha_network.rtx.rtx
    ansible_user: ansible
    ansible_ssh_pass: password
    ansible_become: true
    ansible_become_password: become_password
    
    rtx830.yml
    ---
    - hosts: RTX830
      vars_files:
        - vars/yamaha.yml
      connection: network_cli
     
      tasks:
        - name: setup connnect by IPoE
          block:
            - name: setup ip route
              yamaha_network.rtx.rtx_config:
                lines:
                  - ip route default gateway tunnel 1
            - name: setup ra-proxy
              yamaha_network.rtx.rtx_config:
                lines:
                  # http://www.rtpro.yamaha.co.jp/RT/docs/ipoe/index.html
                  - ipv6 prefix 1 ra-prefix@lan2::/64
                  - ipv6 lan1 address ra-prefix@lan2::1/64
                  - ipv6 lan1 rtadv send 1 o_flag=on
                  - ipv6 lan1 dhcp service server
                  - ipv6 lan2 dhcp service client ir=on
            - name: setup IPIP for AFTR(Address Family Transition Router)
              yamaha_network.rtx.rtx_config:
                lines:
                  - tunnel encapsulation ipip
                  - tunnel endpoint name dgw.xpass.jp fqdn
                  - tunnel enable 1
                parents:
                  - tunnel select 1
                match: strict
                save_when: changed
            - name: setup DNS
              yamaha_network.rtx.rtx_config:
                lines:
                  - dns server dhcp lan2
            - name: setup filter
              block:
                - name: prepare IPv4 filter
                  yamaha_network.rtx.rtx_config:
                    lines:
                      - ip filter 200030 pass * 192.168.100.0/24 icmp * *
                      - ip filter 200039 reject *
                      - ip filter 200097 pass * * icmp * *
                      - ip filter 200098 pass * * tcp * *
                      - ip filter 200099 pass * * udp * *
                      - ip filter dynamic 200080 * * ftp
                      - ip filter dynamic 200082 * * www
                      - ip filter dynamic 200083 * * smtp
                      - ip filter dynamic 200084 * * pop3
                      - ip filter dynamic 200098 * * tcp
                      - ip filter dynamic 200099 * * udp
                - name: setup IPv4 filter
                  yamaha_network.rtx.rtx_config:
                    lines:
                      - ip tunnel secure filter in 200030 200039
                      - ip tunnel secure filter out 200097 200098 200099 dynamic 200080 200082 200083 200084 200098 200099
                      - tunnel enable 1
                    parents:
                      - tunnel select 1
                    match: strict
                    save_when: changed
                - name: setup IPv6 filter
                  yamaha_network.rtx.rtx_config:
                    lines:
                      - ipv6 lan2 secure filter in 200030 200031 200038 200039
                      - ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099
                      - ipv6 filter 200030 pass * * icmp6 * *
                      - ipv6 filter 200031 pass * * 4
                      - ipv6 filter 200038 pass * * udp * 546
                      - ipv6 filter 200039 reject *
                      - ipv6 filter 200099 pass * * * * *
                      - ipv6 filter dynamic 200080 * * ftp
                      - ipv6 filter dynamic 200081 * * domain
                      - ipv6 filter dynamic 200082 * * www
                      - ipv6 filter dynamic 200083 * * smtp
                      - ipv6 filter dynamic 200084 * * pop3
                      - ipv6 filter dynamic 200098 * * tcp
                      - ipv6 filter dynamic 200099 * * udp
    
        - name: get configuration
          yamaha_network.rtx.rtx_command:
            commands:
            - show config
          register: result
     
        - name: debug
          debug:
            msg: "{{ result.stdout_lines[0] }}"
    

    감상


    장점

  • 적절한 텍스트 파일 관리로 명령을 수행한 상태부터 Ansible 기재법에 따라 설정하여 정보를 쉽게 정리할 수 있음
  • 재생본만 실행하면 설정이 완료됩니다
  • 부족한 점

  • 명령부터 SSH 설정 등을 수행하는 경우 명령을 직접 복제하는 것이 더 효과적입니까?
  • Ansible화의 이점을 느꼈지만 YAMAHA 라우터는 config의 가져오기와 명령만 입력하면 설정을 완성할 수 있기 때문에 시간 문제를 고려하면 그다지 좋은 점이 없다고 생각합니다.
    다만 개인적으로는 다른 인프라 환경 설정도 Ansible화하고 있어 똑같이 관리할 수 있다는 점이 큰 이점이라고 본다.
    각주
    Ansible에 대한 기종 및 펌웨어에는 제한이 있습니다.↩︎

    좋은 웹페이지 즐겨찾기