YAMAHA 라우터 설정을 Ansible로 설정해 보십시오.
그렇다고 불편할 것도 없지만, 어떤 이유로 최근 라우터 설정을 빈번하게 조정하다 보니 신경 쓰는 Ansible 설정 방법을 시도해 봤다.
컨디션
제어 노드
대상 노드
해본 일
공식 문서의 절차에 따라 작업을 진행하고 자동화된 IPoE 설정을 시도한다.
롯데라이트를 사용했기 때문에 PPPoE 연결도 제공됐지만 IPoE 연결을 전제로 했다.
사전 준비
YAMAHA에서 제공하는Ansible 모듈 SSH는 제어 노드에서 대상 노드로 명령을 실행합니다.
따라서 라우터가 초기화되는 즉시 Ansible을 실행해도 안 되며 최소한의 설정이 필요하다.
관리자 패스워드 명령을 통해 관리 암호 설정
# administrator password become_password
SSH 로그인을 작성한 사용자
# login user username password
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.ymlansible_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화하고 있어 똑같이 관리할 수 있다는 점이 큰 이점이라고 본다.
각주
Ansible에 대한 기종 및 펌웨어에는 제한이 있습니다.↩︎
Reference
이 문제에 관하여(YAMAHA 라우터 설정을 Ansible로 설정해 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/mitu217/articles/manage-yamaha-router-by-ansible텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)