RTX1100弄り始め
何をトチ狂ったのか、SNMP弄りが出来るネットワーク機材が欲しくなった。シェルスクリプトでSNMPマネージャーもどきやるとか・・・
個人で買えるくらいのないかなーとTwitter上で聞いてみたら、リプライがあった。ありがたや。
@papiron 中古のRTX1100とか安いみたいですよ。ファームも無料で提供されてるし、IPSec/L2TPも使えるし。
— ot2sy39 (@ot2sy39) April 20, 2016
@papiron ある。https://t.co/CeklBc1IjW
— Anubis (@Anubis_369) April 20, 2016
NETGEARの方は高かったので・・・YAMAHAのRTX1100中古をAmazonで探してみたら、5,000円弱であった。後先考えずにポチってしまった。
で思ったよりも早く配達されていた。本格的に弄るのはしばらく出来そうにないが、動作不良とかが無いか確認する必要があるため、最低限の設定をしてみることにした。
telnetログインしたい
シリアルコンソールケーブルは持ってるのだが、あいにく会社に置いてる。何とかtelnetログインが出来ないか調べたら、rarpdやIPv6リンクローカル接続をする方法があった。MACアドレスは機材の裏側にシールで貼ってあるので確認しておく。設定用のパソコンはMac。OSX El Capitanを利用。
rarpdを試してみる。
$ sudo vim /etc/ethers 00:A0:DE:XX:XX:XX 192.168.X.X $ sudo rarpd -d en7
別の端末からtelnetしてみるが・・・ダメ。
$ telnet 192.168.X.X Trying 192.168.X.X...
arp -sを使う手も試してみる。 がこっちもダメ・・・
$ sudo arp -s 192.168.X.X 00:A0:DE:XX:XX:XX $ telnet 192.168.X.X Trying 192.168.X.X...
ということでIPv6リンクローカルアドレスを試してみた。やり方は下記を参考に。
my notes: In search of RARP server for MacOS
インターフェース名はen7(USB有線LAN使ってるので)。必要な部分のみを記載。
まずはマルチキャストにping。
$ ping6 -I en7 ff02::2 PING6(56=40+8+8 bytes) fe80::217:89ff:feXX:XXXX%en7 --> ff02::2 16 bytes from fe80::2a0:deff:feXX:XXXX%en7, icmp_seq=0 hlim=64 time=1.589 ms 16 bytes from fe80::2a0:deff:feXX:XXXX%en7, icmp_seq=1 hlim=64 time=0.915 ms $ netstat -rn Routing tables Internet6: Destination Gateway Flags Netif Expire fe80::2a0:deff:feXX:XXXX%en7 0:a0:de:XX:XX:XX UHLWIi en7
これでIPv6リンクローカルが分かったので、telnetでログイン。念のため端末の文字コードはShift-JISにしておく。
$ telnet fe80::2a0:deff:feXX:XXXX%en7 Trying fe80::2a0:deff:feXX:XXXX... Connected to fe80::2a0:deff:feXX:XXXX%en7. Escape character is '^]'. Password: RTX1100 Rev.8.03.94 (Thu Dec 5 19:06:16 2013) Copyright (c) 1994-2012 Yamaha Corporation. All Rights Reserved. Copyright (c) 1991-1997 Regents of the University of California. Copyright (c) 1995-2004 Jean-loup Gailly and Mark Adler. Copyright (c) 1998-2000 Tokyo Institute of Technology. Copyright (c) 2000 Japan Advanced Institute of Science and Technology, HOKURIKU. Copyright (c) 2002 RSA Security Inc. All rights reserved. Copyright (c) 1997-2004 University of Cambridge. All rights reserved. Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved. Copyright (c) 1995 Tatu Ylonen , Espoo, Finland All rights reserved. Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved. Copyright (c) 2006 Digital Arts Inc. All Rights Reserved. 00:a0:de:XX:XX:XX, 00:a0:de:XX:XX:XX, 00:a0:de:XX:XX:XX, Memory 32Mbytes, 3LAN, 1BRI > administrator Password:
ログイン出来たぞ!!
最低限の設定
よっしゃーということで、最低限の設定をする。本格的に運用する設定ではなく、あくまでもSNMPとかで遊ぶためだけの設定。
# ip lan1 address 192.168.X.X/24 # snmp host any # snmp community read-only papiron # snmp syscontact @papiron # snmp sysname papiron_RTX1100 # snmp syslocation papiron_room # httpd host any # save セーブ中... CONFIG0 終了
SNMPで情報取得
SNMPで情報取得出来るかチェック。
$ snmpwalk -v 1 -c papiron 192.168.X.X system RFC1213-MIB::sysDescr.0 = STRING: "RTX1100 Rev.8.03.94 (Thu Dec 5 19:06:16 2013)" RFC1213-MIB::sysObjectID.0 = OID: YAMAHA-PRODUCTS-MIB::rtx1100 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (245441) 0:40:54.41 RFC1213-MIB::sysContact.0 = STRING: "@papiron" RFC1213-MIB::sysName.0 = STRING: "papiron_RTX1100" RFC1213-MIB::sysLocation.0 = STRING: "papiron_room" RFC1213-MIB::sysServices.0 = INTEGER: 12 $ snmpwalk -v 1 -c papiron 192.168.X.X ifDescr RFC1213-MIB::ifDescr.1 = STRING: "LAN1" RFC1213-MIB::ifDescr.2 = STRING: "LAN2" RFC1213-MIB::ifDescr.3 = STRING: "LAN3" RFC1213-MIB::ifDescr.4 = STRING: "BRI1" RFC1213-MIB::ifDescr.139 = STRING: "NULL" RFC1213-MIB::ifDescr.140 = STRING: "LOOPBACK1" RFC1213-MIB::ifDescr.141 = STRING: "LOOPBACK2" RFC1213-MIB::ifDescr.142 = STRING: "LOOPBACK3" RFC1213-MIB::ifDescr.143 = STRING: "LOOPBACK4" RFC1213-MIB::ifDescr.144 = STRING: "LOOPBACK5" RFC1213-MIB::ifDescr.145 = STRING: "LOOPBACK6" RFC1213-MIB::ifDescr.146 = STRING: "LOOPBACK7" RFC1213-MIB::ifDescr.147 = STRING: "LOOPBACK8" RFC1213-MIB::ifDescr.148 = STRING: "LOOPBACK9"
とりあえずは取得出来た。だがifDescrのリストを見ると、物理ポート毎の情報が取れるわけではなさそう。まあスイッチでは無いし、(業務用としては)安価なルーターだからそんなもんか。
RTX1100には物理的な通信ポートが7つある。
- LAN1に4つ(LAN側)
- LAN2に1つ(WAN側)
- LAN3に1つ(WAN側)
- ISDNのS/Tが1つ(WAN側)
LAN1の物理的なポート毎の情報が何かしら取れないのか?ということでYAMAHA private MIBを調べる。下記にMIB情報のASN.1形式データが置いてある。
ここからMIB情報をダウンロードして、使えるようにする。
$ mkdir temp $ cd temp $ wget http://www.rtpro.yamaha.co.jp/RT/docs/mib/yamaha-private-mib.tar.gz $ tar zxvf yamaha-private-mib.tar.gz $ mkdir -p ~/.snmp/mibs $ cp *.txt ~/.snmp/mibs $ sudo vim /etc/snmp/snmp.conf mibdirs /usr/share/snmp/mibs:/Users/ログイン名/.snmp/mibs mibs all
これで準備完了。では物理ポートについての情報を取得してみる。YrIfPhysicalPortEntryというエントリが使えそうだ。
$ snmpwalk -v 1 -c papiron 192.168.X.X YrIfPhysicalPortEntry YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.1 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.2 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.3 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.4 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.5 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.6 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfSlotIndex.1.7 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.1 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.2 = INTEGER: 2 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.3 = INTEGER: 3 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.4 = INTEGER: 4 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.5 = INTEGER: 5 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.6 = INTEGER: 6 YAMAHA-RT-INTERFACES::yrIfPortIndex.1.7 = INTEGER: 7 YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.1 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.2 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.3 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.4 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.5 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.6 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfInterfaceType.1.7 = INTEGER: bri(2) YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.1 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.2 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.3 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.4 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.5 = INTEGER: 2 YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.6 = INTEGER: 3 YAMAHA-RT-INTERFACES::yrIfInterfaceNum.1.7 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.1 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.2 = INTEGER: 2 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.3 = INTEGER: 3 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.4 = INTEGER: 4 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.5 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.6 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortNumber.1.7 = INTEGER: 1 YAMAHA-RT-INTERFACES::yrIfPortType.1.1 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.2 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.3 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.4 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.5 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.6 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.7 = INTEGER: bri-st(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.1 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.2 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.3 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.4 = INTEGER: up(1) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.5 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.6 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.7 = INTEGER: down(2)
お、物理ポート毎の情報が取れていそうである。yrIfPortType
とyrIfPortLinkState
のみを見てみる。
$ snmpwalk -v 1 -c papiron 192.168.X.X yrIfPortType YAMAHA-RT-INTERFACES::yrIfPortType.1.1 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.2 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.3 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.4 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.5 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.6 = INTEGER: lan(1) YAMAHA-RT-INTERFACES::yrIfPortType.1.7 = INTEGER: bri-st(2) $ snmpwalk -v 1 -c papiron 192.168.X.X yrIfPortLinkState YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.1 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.2 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.3 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.4 = INTEGER: up(1) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.5 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.6 = INTEGER: down(2) YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.7 = INTEGER: down(2)
LAN1の4番目のポートがリンクアップしている(LANケーブルを挿している)が、その様子が下記の行で確認出来る。
YAMAHA-RT-INTERFACES::yrIfPortLinkState.1.4 = INTEGER: up(1)
とりあえず今回は、やったことのメモ的なエントリ。SNMP情報取得の練習出来る時間は当分先だろう・・・