カテゴリ:

使うと便利ですが、慣れないと設定が分かりづらいのがmenuコマンドです。ここではごく簡単な設定をして利用方法を確認します。

R1に設定を行います。まずmenuコマンドに続いて、設定するメニューの名前を指定します。ここではMYMENUとします。併せてメニューのタイトルを指定します。分かりづらいですが、行末に使った文字で最後に閉じます。

R1(config)#menu MYMENU title -
Enter TEXT message.  End with the character '-'.
This is my menu
-
R1(config)#

続けて実際に表示するメニューを作成します。今回は1番がshow ip route、2番がshow ip interface bried、3番がexitを設定してみます。

1番をまず設定します。textに続けて"1"を入力し、その後表示する文字列を指定します。

R1(config)#menu MYMENU text ?
  WORD  Menu item number or character

R1(config)#menu MYMENU text 1 ?
  LINE  Text for this menu item

R1(config)#menu MYMENU text 1 show ip route

次に実際に実行されるコマンドを指定します。

R1(config)#menu MYMENU command 1 ?
  LINE  Command for this menu item

R1(config)#menu MYMENU command 1 show ip route

この手順で2番と3番も設定します。

R1(config)#menu MYMENU text 2 show ip interface brief
R1(config)#menu MYMENU command 2 show ip interface brief
R1(config)#menu MYMENU text 3 finish this menu
R1(config)#menu MYMENU command 3 exit

設定されたメニューはTELNETでユーザciscoでログインした場合に実行される設定を行います。

R1(config)#username cisco secret cisco
R1(config)#username cisco autocommand menu MYMENU
R1(config)#line vty 0 4
R1(config-line)#login local

TELNETで接続するとメニューが表示されることが分かります。

R1(config-line)#do telnet 17.17.1.1
Trying 17.17.1.1 ... Open

User Access Verification

Username: cisco
Password:
This is my menu

    1          show ip route

    2          show ip interface brief

    3          finish this menu

この状態で"1"を押すと下記のように表示されます。

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     17.0.0.0/24 is subnetted, 2 subnets
C       17.17.1.0 is directly connected, Loopback0
D       17.17.2.0 [90/156160] via 12.12.12.2, 00:26:11, FastEthernet0/0
     12.0.0.0/24 is subnetted, 1 subnets
C       12.12.12.0 is directly connected, FastEthernet0/0
This is my menu

    1          show ip route

    2          show ip interface brief

    3          finish this menu

次に"2"を押すと下記のようになります。

Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.1      YES manual up                    up
FastEthernet0/1            unassigned      YES unset  administratively down down
Serial1/0                  unassigned      YES unset  administratively down down
Loopback0                  17.17.1.1       YES NVRAM  up                    up
This is my menu

    1          show ip route

    2          show ip interface brief

    3          finish this menu

最後に"3"で終了となります。

[Connection to 17.17.1.1 closed by foreign host]

上手く活用すれば初心者に管理を任せることも可能になるでしょう。

カテゴリ:

実行したコマンドを記録するにはarchiveを利用します。複数のルータがある場合、どのルータでどのコマンドを打ったのかが分からなくなる場合があります。この昨日を予め有効にしておくことで、コマンドの履歴を確認することが可能です。

R1(config)#archive
R1(config-archive)#log ?
  config  Logging changes to the running configuration

R1(config-archive)#log config
R1(config-archive-log-cfg)#?
commands for controlling config logging:
  default   Set a command to its defaults
  exit      Exit from the log config submode
  hidekeys  suppress output (e.g. passwords) when displaying logged commands
  logging   Modify config logging parameters
  no        Negate a command or set its defaults
  notify    Send logged commands to target applications
  record    What to record in the config logger

R1(config-archive-log-cfg)#logging enable

基本的な設定をした後にコマンドをいくつか実行し、archiveを表示します。

R1(config)#int s1/0
R1(config-if)#no sh
R1#show archive log config all
idx   sess           user@line      Logged command
    1     1        console@console  |  logging enable
    2     3        console@console  |interface Serial1/0
    3     3        console@console  | no shutdown

同じ作業をR2からTELNETでログインし、実行すると下記のように表示されます。

R1#show archive log config all
    7     0   unknown user@vty0     |!exec: enable
    8     4   unknown user@vty0     |interface Serial1/0
    9     4   unknown user@vty0     | shutdown

R1にユーザciscoを作成し、ログイン時に利用すると下記のように表示されます。

R1(config-line)#do sh arc log con all
   15     0          cisco@vty0     |!exec: enable
   16     6          cisco@vty0     |interface Serial1/0
   17     6          cisco@vty0     | no shutdown

初期値ではhidekeysが有効です。パスワード設定時の記録が伏字になることが分かります。

R1(config)#do sh run | b archive
archive
log config
  logging enable
  hidekeys

R1(config)#do sh arc log con all
   31     5        console@console  |username ccie secret *****

hidekeysを無効にすると、パスワードがそのまま表示されます。

R1(config-archive-log-cfg)#no hidekeys
R1(config-archive-log-cfg)#username ccde sec ccde
R1(config)#do sh arc log con all
   36     9        console@console  |  username ccde secret ccde

指定したユーザのみの情報を表示することも出来ます。

R1#show archive log config user cisco 0
idx   sess           user@line      Logged command
   15     0          cisco@vty0     |!exec: enable
   16     6          cisco@vty0     |interface Serial1/0
   17     6          cisco@vty0     | no shutdown
   24     0          cisco@vty0     |!exec: enable

履歴をそのままsyslogに送るにはnotifyコマンドを利用します。

R1(config-archive-log-cfg)#notify syslog
%PARSER-5-CFGLOG_LOGGEDCMD: User:cisco  logged command:no shutdown
%PARSER-5-CFGLOG_LOGGEDCMD: User:cisco  logged command:shutdown

statisticsで、統計情報が表示されます。

R1#show archive log config statistics
Config Log Session Info:
        Number of sessions being tracked: 1
        Memory being held: 3914 bytes
        Total memory allocated for session tracking: 15639 bytes
        Total memory freed from session tracking: 11725 bytes

Config Log log-queue Info:
        Number of entries in the log-queue: 40
        Memory being held by the log-queue: 10956 bytes
        Total memory allocated for log entries: 10956 bytes
        Total memory freed from log entries: 0 bytes

カテゴリ:

今回はダイナミックアクセスリストの設定を確認します。設定そのものはそれほど複雑ではないのですが、よく理解してから設定しないと混乱します。

R1は直接R2に接続され、R2は直接R3に接続されています。

R1(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.1      YES manual up                    up
Loopback0                  17.17.1.1       YES NVRAM  up                    up

R2(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.2      YES manual up                    up
Serial1/2                  23.23.23.2      YES manual up                    up
Loopback0                  17.17.2.2       YES NVRAM  up                    up

R3(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
Serial1/3                  23.23.23.3      YES manual up                    up
Loopback0                  17.17.3.3       YES NVRAM  up                    up

3台全てのインターフェースでEIGRPを有効にしました。

R1(config)#do sh ip rou ei
     17.0.0.0/24 is subnetted, 3 subnets
D       17.17.2.0 [90/156160] via 12.12.12.2, 00:02:30, FastEthernet0/0
D       17.17.3.0 [90/2300416] via 12.12.12.2, 00:02:19, FastEthernet0/0
     23.0.0.0/24 is subnetted, 1 subnets
D       23.23.23.0 [90/2172416] via 12.12.12.2, 00:02:30, FastEthernet0/0

今回はR1からR3へのTELNET接続をダイナミックアクセスリスト使って行います。まずTELNETの設定をユーザ名 cisco、パスワード ciscoで行ないます。

R3(config)#username cisco password cisco
R3(config)#line vty 0 4
R3(config-line)#login local

R1からの接続を確認します。

R1(config)#do telnet 17.17.3.3
Trying 17.17.3.3 ... Open
〜略〜
Username: cisco
Password:
R3>

R2でアクセスリストを設定します。まずはEIGRPのみを通し、それ以外全てを拒否するリストDYNAMIC_LISTを作成します。

R2(config)#ip access-list extended DYNAMIC_LIST
R2(config-ext-nacl)#10 permit eigrp any any
R2(config-ext-nacl)#100 deny ip any any
R2(config-ext-nacl)#do sh ip acce
Extended IP access list DYNAMIC_LIST
    10 permit eigrp any any
    100 deny ip any any

これをR1に直結するF0/0で利用します。

R2(config-ext-nacl)#int f0/0
R2(config-if)#ip access-group DYNAMIC_LIST in
R2(config-if)#do sh ip int f0/0 | i Inbound
  Inbound  access list is DYNAMIC_LIST

この時点では当然ながらTELNETは拒否されます。

R1(config)#do telnet 17.17.3.3
Trying 17.17.3.3 ...
% Destination unreachable; gateway or host down

これからダイナミックアクセスリストの設定を行います。ここではR2へのTELNETが成功した場合に、R3へのTELNETが許可されるという形で進めます。

R2に対してのTELNETをユーザ名 ccie、パスワード ccieで許可します。

R2(config-if)#username ccie pass ccie
R2(config)#line vty 0 4
R2(config-line)#login local
R2(config-line)#ip access-list extended DYNAMIC_LIST
R2(config-ext-nacl)#20 permit tcp any host 17.17.2.2 eq telnet
R2(config-ext-nacl)#do sh ip acce
Extended IP access list DYNAMIC_LIST
    10 permit eigrp any any (267 matches)
    20 permit tcp any host 17.17.2.2 eq telnet
    100 deny ip any any (3 matches)

R1より接続出来ることを確認します。

R1(config)#do telnet 17.17.2.2
Trying 17.17.2.2 ... Open
〜略〜
R2>

ダイナミックアクセスリストをTELNETと名前を指定して作成します。

R2(config-line)#ip access-list extended DYNAMIC_LIST
R2(config-ext-nacl)#30 dynamic TELNET permit tcp any host 17.17.3.3 eq telnet
R2(config-ext-nacl)#do sh ip acce
Extended IP access list DYNAMIC_LIST
    10 permit eigrp any any (2955 matches)
    20 permit tcp any host 17.17.2.2 eq telnet (285 matches)
    30 Dynamic TELNET permit tcp any host 17.17.3.3 eq telnet
    100 deny ip any any (3 matches)

TELNETで有効にするためにline vtyに対して、autocommandコマンドを指定します。

R2(config)#line vty 0 4
R2(config-line)#autocommand access-enable host timeout 10

R1からR2にTELNETで接続します。するとログイン後、自動的にログアウトします。

R1(config)#do telnet 17.17.2.2
Trying 17.17.2.2 ... Open
〜略〜
Password:
[Connection to 17.17.2.2 closed by foreign host]

ここでR2のアクセスリストを確認するとR1からR3へのTELNETが有効になっていることが確認できます。

R2(config-ext-nacl)#do sh ip acce
Extended IP access list DYNAMIC_LIST
    10 permit eigrp any any (2991 matches)
    20 permit tcp any host 17.17.2.2 eq telnet (351 matches)
    30 Dynamic TELNET permit tcp any host 17.17.3.3 eq telnet
       permit tcp host 12.12.12.1 host 17.17.3.3 eq telnet
    100 deny ip any any (3 matches)

この状態でR1からR3へのTELNET接続が可能であることを確認しています。

R1(config)#do telnet 17.17.3.3
Trying 17.17.3.3 ... Open
〜略〜
Password:
R3>

カテゴリ:

今回はIOSでログを利用する際の小技を紹介します。

コマンドを売っている時にログが表示されると画面が見づらくなります。

R1(config)#do deb ip icmp
ICMP packet debugging is on
R1(config)#do pin 17.17.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 17.17.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/12 ms
R1(config)#
ICMP: echo reply sent, src 17.17.1.1, dst 17.17.1.1
〜略〜
ICMP: echo reply rcvd, src 17.17.1.1, dst 17.17.1.1 ←カーソルの位置

logging synchronousコマンドを設定すると割り込みの表示があった際も、カーソル中は元の利用位置に留まります。

R1(config)#line console 0
R1(config-line)#logging synchronous

R1(config-line)#do pin 17.17.1.1
〜略〜
ICMP: echo reply rcvd, src 17.17.1.1, dst 17.17.1.1
R1(config-line)# ←カーソルの位置

表示されたログはスクロールアップして辿っていくという使い方もありですが、logging bufferedコマンドを利用してログを保存すると確認が用意になります。

R1(config)#logging buffered
R1(config)#do pin 17.17.1.1
〜略〜
R1(config)#do sh logging
〜略〜
Log Buffer (4096 bytes):

ICMP: echo reply sent, src 17.17.1.1, dst 17.17.1.1
ICMP: echo reply rcvd, src 17.17.1.1, dst 17.17.1.1

ログに通し番号を付けるにはservice sequence-numbersコマンドを利用します。

R1(config)#service sequence-numbers
R1(config)#do pin 17.17.1.1
〜略〜
000221: ICMP: echo reply sent, src 17.17.1.1, dst 17.17.1.1
000222: ICMP: echo reply rcvd, src 17.17.1.1, dst 17.17.1.1

初期値ではログやデバグに日時は表示されません。service timestampsコマンドを使うことで日時を併せて表示できます。この時、当然ながら時計が正しく設定されていないと意味がありません。

R1(config)#service timestamps debug datetime ?
  localtime      Use local time zone for timestamps
  msec           Include milliseconds in timestamp
  show-timezone  Add time zone information to timestamp
  year           Include year in timestamp
  <cr>

R1(config)#service timestamps debug datetime localtime
R1(config)#service timestamps log datetime localtime
R1(config)#do pin 17.17.1.1
〜略〜
Sep 13 15:21:08: ICMP: echo reply sent, src 17.17.1.1, dst 17.17.1.1
Sep 13 15:21:08: ICMP: echo reply rcvd, src 17.17.1.1, dst 17.17.1.1
R1(config)#do sh clock
15:22:50.971 JST Tue Sep 13 2011

カテゴリ:

今回はアクセスリストでの"log"の利用方法を確認します。R1とR2はF0/0で接続されており、EIGRPが設定されています。

R1(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.1      YES manual up                    up
Loopback0                  17.17.1.1       YES NVRAM  up                    up

R2(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.2      YES manual up                    up
Loopback0                  17.17.2.2       YES NVRAM  up                    up

R1(config)#do sh ip ei 100 int
IP-EIGRP interfaces for process 100

                        Xmit Queue   Mean   Pacing Time   Multicast    Pending
Interface        Peers  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Fa0/0              1        0/0        12       0/1           50           0
Lo0                0        0/0         0       0/1            0           0

R1(config)#do sh ip rou ei
     17.0.0.0/24 is subnetted, 2 subnets
D       17.17.2.0 [90/156160] via 12.12.12.2, 00:08:57, FastEthernet0/0

R1(config)#do pin 17.17.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 17.17.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/12 ms

pingを通すためのアクセスリストを作成します。EIGRPも併せて許可しています。

R2(config)#ip access-list extended LIST1
R2(config-ext-nacl)#10 permit icmp an an
R2(config-ext-nacl)#100 per eigrp an an
R2(config-ext-nacl)#do sh ip acce
Extended IP access list LIST1
    10 permit icmp any any
    100 permit eigrp any any

F0/0に適用して、pingコマンドを実行します。

R2(config-ext-nacl)#int f0/0
R2(config-if)#ip access-group LIST1 in
R2(config-if)#do sh ip int f0/0 | i LIST1
  Inbound  access list is LIST1

実行後、R1よりpingを実行します。

R1(config)#do pin 17.17.2.2
〜略〜
!!!!!

R2でアクセスリストを確認すると"15 matches"となっており、正しく適用されたことが分かります。

R2(config)#do sh ip acce
Extended IP access list LIST1
    10 permit icmp any any (15 matches)
    100 permit eigrp any any (6 matches)

ICMPの行に"log"を追加します。

R2(config)#ip access-list extended LIST1
R2(config-ext-nacl)#no 10 per icmp an an
R2(config-ext-nacl)#10 per icm an an log
R2(config-ext-nacl)#do sh ip acce
Extended IP access list LIST1
    10 permit icmp any any log
〜略〜

R1でpingを実行すると、下記のようなログがR2に表示されます。

Sep  5 06:12:46.347: %SEC-6-IPACCESSLOGDP: list LIST1 permitted icmp 12.12.12.1 -> 17.17.2.2 (0/0), 5 packets

"log"を"log-input"に変更します。

R2(config-ext-nacl)#no 10
R2(config-ext-nacl)#10 permit icmp an an log-input

R1でpingを実行すると、下記のようなログがR2に表示されます。"log"と違い、MACアドレスが表示されることが分かります。

Sep  5 06:14:30.551: %SEC-6-IPACCESSLOGDP: list LIST1 permitted icmp 12.12.12.1 (FastEthernet0/0 c200.163f.0000) -> 17.17.2.2 (0/0), 5 packets

カテゴリ:

今回はIPv6 RIPにおける経路の集約を行います。R1とR2はF0/0で接続されていて、Lo0と共にそれぞれリンクローカルアドレスを設定してあります。R2のLo0には集約で使うアドレスを4つ追加しました。

R1(config)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::1
Loopback0                  [up/up]
    FE80::1

R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::2
    2001:0:0:2::2
    2001:0:0:22::2
    2001:0:0:222::2
    2001:0:0:2222::2

R1とR2のF0/0でRIPを有効にします。

R1(config)#do sh run int f0/0
〜略〜
interface FastEthernet0/0
ipv6 address FE80::1 link-local
ipv6 rip RIP6 enable

R1(config)#do deb ipv rip
RIP Routing Protocol debugging is on
R1(config)#do sh ipv rip RIP6
RIP process "RIP6", port 521, multicast-group FF02::9, pid 246
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 58, trigger updates 11
  Interfaces:
    Loopback0
    FastEthernet0/0
  Redistribution:
    None

R1のルーティングテーブルにR2のアドレスが表示されることが分かります。

R1(config-if)#do sh ipv rou rip
IPv6 Routing Table - 5 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
R   2001:0:0:2::/64 [120/2]
     via FE80::2, FastEthernet0/0
R   2001:0:0:22::/64 [120/2]
     via FE80::2, FastEthernet0/0
R   2001:0:0:222::/64 [120/2]
     via FE80::2, FastEthernet0/0
R   2001:0:0:2222::/64 [120/2]
     via FE80::2, FastEthernet0/0

4つのアドレスにpingを実行します。

R1(config)#do pin 2001:0:0:2::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/10/28 ms
R1(config)#do pin 2001:0:0:22::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:22::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/12 ms
R1(config)#do pin 2001:0:0:222::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:222::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/8 ms
R1(config)#do pin 2001:0:0:2222::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:2222::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/8 ms

pingの実行が確認できたので集約を行います。利用するのはipv6 rip summary-addressコマンドで、ここでは単純に/64を/48に集約します。コマンドを設定するのは集約アドレスを流したいインターフェースで、この場合はR2のF0/0上で利用します。

R2(config-if)#int f0/0
R2(config-if)#ipv rip RIP6 summary-address 2001::/48

RIPでのこの様な設定はOSPFやEIGRPと違い、反映に時間がかかります。CCIE Lab受験時など早く結果を得たい時にはインターフェースを一度shutしルーティングテーブルを消してからno shutします。

設定後、確認すると下記のようにすっきりした形になります。

R1(config)#do sh ipv rou rip
IPv6 Routing Table - 2 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
R   2001::/48 [120/2]
     via FE80::2, FastEthernet0/0

pingを実行します。ここではforeachを使っています。CCIE Lab受験時には多くのアドレスに対してpingを実行しますので、foreachの使い方を覚えおくと便利です。

R1(tcl)#foreach router {
+>(tcl)#2001:0:0:2::2
+>(tcl)#2001:0:0:22::2
+>(tcl)#2001:0:0:222::2
+>(tcl)#2001:0:0:2222::2
+>(tcl)#} { puts [ exec "ping $router"]}

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/9/16 ms

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:22::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/12 ms

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:222::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/8 ms

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:0:0:2222::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/8 ms

R1(tcl)#tclquit

カテゴリ:

今回はIPv6のRIPでメトリックを指定する方法を確認します。現在R1とR2はF0/0とS1/0(フレームリレー)で直接接続されています。

R1(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::1
Serial1/0                  [up/up]
    FE80::1

Loopback0                  [up/up]
    FE80::1
    2001:1::1

R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::2
Serial1/0                  [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::2
    2001:2::2

R1(config)#do pin fe80::2
Output Interface: fastethernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:
Packet sent with a source address of FE80::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/8 ms
R1(config)#do pin fe80::2
Output Interface: serial1/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:
Packet sent with a source address of FE80::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/9/24 ms

R1とR2それぞれでF0/0, S1/0, Lo0でIPv6 RIPを有効にします。

R1(config)#int f0/0
R1(config-if)#ipv6 rip RIP6 enable
R1(config-if)#int s1/0
R1(config-if)#ipv6 rip RIP6 enable
R1(config-if)#int lo0
R1(config-if)#ipv6 rip RIP6 enable
R1(config-if)#do sh ipv rip RIP6
RIP process "RIP6", port 521, multicast-group FF02::9, pid 255
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 103, trigger updates 6
  Interfaces:
    Serial1/0
    FastEthernet0/0
    Loopback0
  Redistribution:
    None

R1からR2へのLo0アドレス(2001:2::2)へのルートを確認します。メトリックが2で、2つのインターフェースを利用していることが分かります。

R1(config-if)#do sh ipv rou 2001:2::2
IPv6 Routing Table - 4 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
R   2001:2::/64 [120/2]
     via FE80::2, FastEthernet0/0
     via FE80::2, Serial1/0

R1のインターフェースでメトリック値を指定してみます。ipv6 rip RIP6 metric-offsetコマンドを利用し、3を指定してみました。

R1(config-if)#int f0/0
R1(config-if)#ipv6 rip RIP6 metric-offset 3
R1(config-if)#int s1/0
R1(config-if)#ipv6 rip RIP6 metric-offset 3
R1(config-if)#do deb ipv6 rip
RIP Routing Protocol debugging is on

メトリックが最初の2(1+1)から4(1+3)に変更されたことが分かります。

R1(config-if)#do sh ipv rou 2001:2::2
〜略〜
R   2001:2::/64 [120/4]
     via FE80::2, Serial1/0
     via FE80::2, FastEthernet0/0

次にF0/0のみ、メトリックを5に変更します。これによりF0/0がルーティングから消えることが分かります。

R1(config-if)#int f0/0
R1(config-if)#ipv6 rip RIP6 metric-offset 5

R1(config-if)#do sh ipv rou 2001:2::2
〜略〜
R   2001:2::/64 [120/4]
     via FE80::2, Serial1/0

特定の経路をあえて使わないようにする場合に、metric-offsetはよく使われます。

カテゴリ:

今回はフレームリレーにIPv6の設定を行います。基本的にはIPv4と同じです。R1のS1/0からはDLCI 102、R2のS1/0からはDLCI 201を使って接続を行います。

R1での設定です、カプセル化とIPアドレスを指定しています。DLCIは静的に利用するため、inverse-arpを無効にしました。

R1(config)#int s1/0
R1(config-if)#encapsulation frame-relay
R1(config-if)#no sh
R1(config-if)#no fram inverse-arp
R1(config-if)#ipv6 address fe80::1 link-local

DLCIをframe-relay mapで指定し、確認します。

R1(config-if)#frame-relay map ipv6 fe80::2 102 broadcast
R1(config-if)#do sh fram map
Serial1/0 (up): ipv6 FE80::2 dlci 102(0x66,0x1860), static,
              broadcast,
              CISCO, status defined, active

R2でも同じように設定します。

R2(config)#int s1/0
R2(config-if)#no sh
R2(config-if)#en fram
R2(config-if)#no fram inv
R2(config-if)#ipv add fe80::2 li
R2(config-if)#fram map ipv6 fe80::1 201 b
R2(config-if)#do sh fram map
Serial1/0 (up): ipv6 FE80::1 dlci 201(0xC9,0x3090), static,
              broadcast,
              CISCO, status defined, active

両方のインターフェースがup/upになっていることが分かります。pingで疎通を確認します。

R1(config-if)#do sh ipv int b
Serial1/0                  [up/up]
    FE80::1

R2(config-if)#do sh ipv int b
Serial1/0                  [up/up]
    FE80::2

R1(config-if)#do pin fe80::2
Output Interface: serial1/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:
Packet sent with a source address of FE80::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/16 ms

当然ながらLMIタイプが一致しないと接続できません。下記はあえてLMIタイプをCISCOに変えている例です。

R1(config-if)#do sh int s1/0 | i LMI type
  LMI DLCI 0  LMI type is ANSI Annex D  frame relay DTE  segmentation inactive
R1(config-if)#do deb fram lmi
Frame Relay LMI debugging is on
Displaying all Frame Relay LMI data

R1(config-if)#frame-relay lmi-type cisco

Aug 15 06:07:09.215: Serial1/0(out): StEnq, myseq 3, yourseen 0, DTE up
Aug 15 06:07:09.219: datagramstart = 0xF400714, datagramsize = 13
Aug 15 06:07:09.219: FR encap = 0xFCF10309
Aug 15 06:07:09.219: 00 75 01 01 01 03 02 03 00
Aug 15 06:07:09.223:
Aug 15 06:07:19.215: Serial1/0(out): StEnq, myseq 1, yourseen 0, DTE down

R1(config-if)#do sh ipv int b
Serial1/0                  [up/down]
    FE80::1

LMIタイプを元に戻し、Lo0にもIPv6アドレスを設定しました。

R1(config-if)#do sh ipv int b
Serial1/0                  [up/up]
    FE80::1
Loopback0                  [up/up]
    FE80::1
    2001:1::1

全てのインターフェースでRIPを有効にします。

R1(config-if)#do sh ipv6 rip
RIP process "RIP6", port 521, multicast-group FF02::9, pid 255
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 1, trigger updates 2
  Interfaces:
    Loopback0
    Serial1/0
  Redistribution:
    None

この様に、IPv6でフレームリレーを利用した場合でもルーティングの設定は基本的に同じです。

R1(config-if)#do sh ipv rou rip
IPv6 Routing Table - 4 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
R   2001:2::/64 [120/2]
     via FE80::2, Serial1/0
R1(config-if)#do pin 2001:2::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/12 ms

カテゴリ:

今回はインターフェースにIPv6アドレスを設定する、ごく基本的な方法を説明します。

R1(config-if)#do sh run int f0/0
Building configuration...

Current configuration : 72 bytes
!
interface FastEthernet0/0
no ip address
end

手っ取り早くIPv6を有効にするにはipv6 enableを利用します。

R1(config-if)#int f0/0
R1(config-if)#ipv6 enable

R1(config-if)#do sh run int f0/0
Building configuration...

Current configuration : 85 bytes
!
interface FastEthernet0/0
no ip address
ipv6 enable
end

R1(config-if)#do sh ipv int b   
FastEthernet0/0            [up/up]
    FE80::C000:12FF:FE13:0

R2にも同じように設定します。

R2(config-if)#int f0/0
R2(config-if)#ipv en
R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::C001:12FF:FE13:0

R1にpingが通ることを確認します。

R2(config-if)#do pin  FE80::C000:12FF:FE13:0
Output Interface: fastethernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::C000:12FF:FE13:0, timeout is 2 seconds:
Packet sent with a source address of FE80::C001:12FF:FE13:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/9/16 ms

グローバルアドレスを割り当てるには手動とMACアドレスを利用するEUIがあります。

まず手動での割り当てです。IPv4と違いsecondary addressを使わなくても、そのまま複数のアドレスを設定可能です。

R1(config-if)#int f0/0
R1(config-if)#ipv add 2001:1::1/64
R1(config-if)#ipv add 2001:1::10/64
R1(config-if)#ipv add 2001:1::100/64
R1(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::C000:12FF:FE13:0
    2001:1::1
    2001:1::10
    2001:1::100

R2はEUIを使って設定してみます。MACアドレスが利用されていることが分かります。

R2(config-if)#int f0/0
R2(config-if)#ipv address 2001:2::/64 ?
  anycast  Configure as an anycast
  eui-64   Use eui-64 interface identifier
  <cr>

R2(config-if)#ipv address 2001:2::/64 eui-64
R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::C001:12FF:FE13:0
    2001:2::C001:12FF:FE13:0

R2(config-if)#do sh ipv int f0/0
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C001:12FF:FE13:0
〜略〜

カテゴリ:

今回はIPv6におけるアクセスリストの利用方法を確認します。現在、R1とR2はEIGRPを利用しています。

R1#show ipv6 interface b
FastEthernet0/0            [up/up]
    FE80::1
Loopback0                  [up/up]
    FE80::1
    2001:1::1

R2#show ipv6 interface brief
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::2
    2001:2::2

R1#show ipv6 route eigrp
IPv6 Routing Table - 4 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
D   2001:2::/64 [90/156160]
     via FE80::2, FastEthernet0/0

R1#ping 2001:2::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/12 ms

アクセス制限をかけていない初期状態ではR1のF0/0とLo0両方からtelnetで接続が可能です。

R1#telnet 2001:2::2 /source-interface f0/0
Trying 2001:2::2 ... Open

User Access Verification

Password:
R2>

R1#telnet 2001:2::2 /source-interface lo0
Trying 2001:2::2 ... Open

User Access Verification

Password:
R2>show users
    Line       User       Host(s)              Idle       Location
   0 con 0                idle                 00:00:16   
* 98 vty 0                idle                 00:00:00 2001:1::1

  Interface    User               Mode         Idle     Peer Address

R2にIPv6でのアクセスリストを使い、接続の制限を行います。IPv6アクセスリストでは名前付きのみが利用可能です。今回は稼働状況を確認するためにlogを加えました。

R2(config)#ipv6 access-list TELNET
R2(config-ipv6-acl)#permit ipv6 2001:1::/64 host 2001:2::2 log
R2(config-ipv6-acl)#do sh ipv ac
IPv6 access list TELNET
    permit ipv6 2001:1::/64 host 2001:2::2 log sequence 10

アクセスリストをline vtyに適用します。

R2(config-ipv6-acl)#line vty 0 4
R2(config-line)#ipv6 access-class TELNET in

接続を確認します。まずf0/0(fe80::1)からでは接続が拒否されます。

R1#telnet 2001:2::2 /source-interface f0/0
Trying 2001:2::2 ...
% Connection refused by remote host

次にlo0(2001:1::1)からの接続は問題がないことが分かります。

R1#telnet 2001:2::2 /source-interface lo0
Trying 2001:2::2 ... Open

User Access Verification

Password:
R2

R2には下記のようにログが表示されます。

R2(config-ipv6-acl)#
Aug  1 06:06:28.675: %IPV6-6-ACCESSLOGP: list TELNET/10 permitted tcp 2001:1::1(13418) -> 2001:2::2(23), 1 packet

R2(config-ipv6-acl)#do sh ipv ac
IPv6 access list TELNET
    permit ipv6 2001:1::/64 host 2001:2::2 log (2 matches) sequence 10

アクセスリストを作成する際は名前付きのみが有効という点以外は、基本的にIPv4と同じ様に利用できます。

カテゴリ:

今回はIPv6での基本的なEIGRPの設定を確認していきます。IPアドレスの設定は前回と同じです。

R1(config)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::1
Loopback0                  [up/up]
    FE80::1
    2001:1::1

R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::2
    2001:2::2

IPv6でのルーティングをR1とR2で有効にします。

R1(config)#ipv6 unicast-routing

次にEIGRPのプロセスを有効にします。

R1(config)#ipv6 router eigrp 100

そしてここに独特な設定が必要です。プロセスの中でno shutdownを実行する必要があるのです。実行しないとEIGRPは有効になりません。

R1(config-rtr)#no shutdown

インターフェースでEIGRPを有効にする点はRIPやOSPFと同じです。R2でも同じようにして有効にします。

R1(config-rtr)#int f0/0
R1(config-if)#ipv6 eigrp 100
R1(config-if)#int lo0
R1(config-if)#ipv6 eigrp 100

show ipv6 protocolコマンドで有効なインターフェースを確認します。

R1(config-if)#do sh ipv prot
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "static"
IPv6 Routing Protocol is "eigrp 100"
  EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  EIGRP maximum hopcount 100
  EIGRP maximum metric variance 1
  Interfaces:
    FastEthernet0/0
    Loopback0
  Redistribution:
    None
  Maximum path: 16
  Distance: internal 90 external 170

show ipv6 eigrp interfaceコマンドでも有効なインターフェースを確認できます。

R1(config)#do sh ipv ei int
IPv6-EIGRP interfaces for process 100

                        Xmit Queue   Mean   Pacing Time   Multicast    Pending
Interface        Peers  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Fa0/0              1        0/0        20       0/1           50           0
Lo0                0        0/0         0       0/1            0           0

IPv4と同じようにIPv6でもEIGRPはすぐに接続が有効になります。

R1(config-if)#do sh ipv ei nei
IPv6-EIGRP neighbors for process 100
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   Link-local address:     Fa0/0             14 00:00:37   20   200  0  4
    FE80::2

show ipv6 eigrp topologyコマンドを実行すると、lo0でのネットワークがEIGRPで流れていることを確認できます。

R1(config)#do sh ipv ei top
IPv6-EIGRP Topology Table for AS(100)/ID(17.17.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 2001:1::/64, 1 successors, FD is 128256
        via Connected, Loopback0
P 2001:2::/64, 1 successors, FD is 156160
        via FE80::2 (156160/128256), FastEthernet0/0

R1でIPv6のルーティングテーブルを確認し、pingが実行出来ることを確認しました。

R1(config)#do sh ipv rou ei
IPv6 Routing Table - 4 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
D   2001:2::/64 [90/156160]
     via FE80::2, FastEthernet0/0

R1(config)#do pin 2001:2::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/8 ms

カテゴリ:

今回はIPv6での基本的なOSPFの設定を確認していきます。IPアドレスの設定は前回と同じです。

R1(config)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::1
Loopback0                  [up/up]
    FE80::1
    2001:1::1

R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::2
    2001:2::2

IPv6でのルーティングをR1とR2で有効にします。

R1(config)#ipv6 unicast-routing

IPv6でもOSPFではプロセスIDを指定して起動します。またルータIDも指定しますが、IPv4アドレスの形式での指定となります。

R1(config)#ipv6 router ospf 1
R1(config-rtr)#router-id ?
  A.B.C.D  OSPF router-id in IP address format

R1(config-rtr)#router-id 17.17.1.1

IPv6ではインターフェース単位でOSPFの有効化を指定します。今回はエリア0を利用しました。

R1(config-rtr)#int f0/0
R1(config-if)#ipv6 ospf 1 area 0
R1(config-if)#int lo0
R1(config-if)#ipv6 ospf 1 area 0

インターフェースが有効であることを確認します。

R1#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "static"
IPv6 Routing Protocol is "ospf 1"
  Interfaces (Area 0):
    Loopback0
    FastEthernet0/0
  Redistribution:
    None

R1#show ipv6 ospf interface brief
Interface    PID   Area            Intf ID    Cost  State Nbrs F/C
Lo0          1     0               13         1     LOOP  0/0
Fa0/0        1     0               4          1     BDR   1/1

R1#debug ipv6 ospf adj
Jul 19 06:41:17.519: OSPFv3: Send LS REQ to 17.17.2.2 length 12 LSA count 1
Jul 19 06:41:17.519: OSPFv3: Send DBD to 17.17.2.2 on FastEthernet0/0 seq 0xDE7 opt 0x0013 flag 0x0 len 28
Jul 19 06:41:17.523: OSPFv3: Rcv LS REQ from 17.17.2.2 on FastEthernet0/0 length 40 LSA count 2
Jul 19 06:41:17.523: OSPFv3: Send UPD to 101.11.13.108 on FastEthernet0/0 length 80 LSA count 2
Jul 19 06:41:17.531: OSPFv3: Rcv LS UPD from 17.17.2.2 on FastEthernet0/0 length 44 LSA count 1
Jul 19 06:41:17.531: OSPFv3: Synchronized with 17.17.2.2 on FastEthernet0/0, state FULL
Jul 19 06:41:17.531: %OSPFv3-5-ADJCHG: Process 1, Nbr 17.17.2.2 on FastEthernet0/0 from LOADING to FULL, Loading Done

インターフェースの詳細を表示するとネットワークタイプやコストなど、IPv4と基本的に同じであることがよく分かります。

R1#show ipv6 ospf interface brief f0/0
FastEthernet0/0 is up, line protocol is up
  Link Local Address FE80::1, Interface ID 4
  Area 0, Process ID 1, Instance ID 0, Router ID 17.17.1.1
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 17.17.2.2, local address FE80::2
  Backup Designated router (ID) 17.17.1.1, local address FE80::1
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:04
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 2, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 17.17.2.2  (Designated Router)
  Suppress hello for 0 neighbor(s)

現在設定されいるエリアを確認します。バックボーンであるArea 0の設定が確認できます。

R1#show ipv6 ospf 1
Routing Process "ospfv3 1" with ID 17.17.1.1
SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
Number of external LSA 0. Checksum Sum 0x000000
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 2
        SPF algorithm executed 2 times
        Number of LSA 6. Checksum Sum 0x02B316
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0

R2との接続状態を確認します。FULLとなっていることが分かります。

R1#show ipv6 ospf neighbor

Neighbor ID     Pri   State           Dead Time   Interface ID    Interface
17.17.2.2         1   FULL/DR         00:00:32    4               FastEthernet0/0

IPv6のルーティングテーブルを見ると、R2のLo0が載っていることが分かります。

R1#show ipv6 route ospf
IPv6 Routing Table - 4 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
O   2001:2::2/128 [110/1]
     via FE80::2, FastEthernet0/0

pingコマンドで疎通を確認しています。

R1#ping 2001:2::2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:2::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/12 ms

カテゴリ:

今回はIPv6でのRIPを設定します。まず最低限の設定で、動きとIPv4との違いを理解できるようにします。

R1とR2はF0/0で直接接続されています。F0/0とLo0にそれぞれリンクローカルアドレスを設定し、Lo0にはそれぞれIPv6アドレス(2001:1::1, 2001:2::2)を割り当てました。これら4つのインターフェースでRIPを有効にします。

R1(config)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::1
Loopback0                  [up/up]
    FE80::1
    2001:1::1

R2(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::2
Loopback0                  [up/up]
    FE80::2
    2001:2::2

まず両ルータでIPv6でのルーティングを有効とするためにipv6 unicast-routingコマンドを実行します。

R1(config)#ipv6 ?
〜略〜
  unicast-routing    Enable unicast routing
R1(config)#ipv6 unicast-routing

次にRIPを利用するインターフェースでipv6 ripを実行します。IPv4ではrouter ripの中でnetworkコマンドを利用することでインターフェースを指定しましたが、IPv6では直接インターフェースを利用するのが特徴です。

ipv6 ripコマンドでRIPのプロセスを有効にしますが、任意の文字列をプロセス名として指定します。ここではRIP6としました。4つのインターフェースで同じ設定を行います。

R1(config)#int f0/0
R1(config-if)#ipv6 rip RIP6 enable

上記設定により、自動的にグローバル コンフィギュレーション コマンドであるipv6 router ripが設定されます。

R1(config-if)#do sh run | i RIP6
ipv6 rip RIP6 enable
ipv6 router rip RIP6

インターフェースが有効になっているかをshow ipv6 protocolsコマンドで確認しています。

R1#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "static"
IPv6 Routing Protocol is "rip RIP6"
  Interfaces:
    Loopback0
    FastEthernet0/0
  Redistribution:
    None

debugで稼働状況を確認します。

R1#debug ipv6 rip f0/0
Jul 11 06:11:38.583: RIPng: Sending multicast update on FastEthernet0/0 for RIP6
Jul 11 06:11:38.583:        src=FE80::1
Jul 11 06:11:38.587:        dst=FF02::9 (FastEthernet0/0)
Jul 11 06:11:38.587:        sport=521, dport=521, length=32

R2でルートを確認すると確かにRIPによりR1の情報が表示されています。

R2#show ipv6 route rip
IPv6 Routing Table - 4 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
R   2001:1::/64 [120/2]
     via FE80::1, FastEthernet0/0

pingコマンドで疎通を確認します。

R2#ping 2001:1::1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:1::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/8/8 ms

カテゴリ:

今回よりIPv6の設定を紹介します。以前のCCIE LabではインターフェースにIPアドレスを設定する程度の非常に簡単な問題でしたが、現在はそこそこ複雑な設定も出ますのでしっかりと学習しておく必要があります。

まずIPアドレスを設定しますが、最も簡単な方法にipv6 enableコマンドがあります。

R1(config)#int f0/0
R1(config-if)#ipv6 enable
R1(config-if)#no sh
R1(config-if)#do sh ipv6 int b
FastEthernet0/0            [up/up]
    FE80::C000:34FF:FE43:0
〜略〜
R1(config-if)#do sh ipv6 int f0/0
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C000:34FF:FE43:0 [TEN]
  No Virtual link-local address(es):
  No global unicast address is configured
  Joined group address(es):
〜略〜

上記の様にfe80で始まるリンクローカルアドレスが設定されました。このアドレスはインターフェースのMACアドレスより自動的に生成されます。このアドレスは隣接するデバイス間のみで有効です。

f0/0の接続先であるR2のf0/0にも同じ設定を行います。

R2(config)#int f0/0
R2(config-if)#ipv6 enable
R2(config-if)#no sh

そしてこのままpingが実行可能です。ただしリンクローカルアドレスを利用する際は利用するインターフェースを指定する必要があります。

R2(config-if)#do pin FE80::C000:34FF:FE43:0
Output Interface: FastEthernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::C000:34FF:FE43:0, timeout is 2 seconds:
Packet sent with a source address of FE80::C001:34FF:FE43:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/16/52 ms

MACアドレスを利用したリンクローカルアドレスは設定は便利なものの、IPアドレスが複雑となりあまり使いやすいとは言えません。固定で指定するには下記のようにします。

R1(config-if)#int f0/0
R1(config-if)#ipv6 address fe80::1 link-local
R1(config-if)#do sh ipv int b
FastEthernet0/0            [up/up]
    FE80::1

R2(config-if)#int f0/0
R2(config-if)#ipv6 address fe80::2 link-local
R2(config-if)#do ping fe80::1

R1はfe80::1、R2はfe80::2と覚えやすいアドレスになりました。そしてこのリンクローカルアドレスは全てのインターフェースで同じものを指定できます。つまりR1のインターフェースf0/0, f0/1, s1/0, s1/1の全てにfe80::1と設定可能です。

次にフレームリレーでの設定を確認します。IPv4の場合と同じようにDLCIを指定するフレームリレーマップが必要です。

R1(config-if)#int s1/0
R1(config-if)#encapsulation frame-relay
R1(config-if)#ipv6 address fe80::1 link-local
R1(config-if)#frame-relay map ipv6 fe80::2 102 broadcast
R1(config-if)#no sh
R1(config-if)#do sh fram map
Serial1/0 (up): ipv6 FE80::2 dlci 102(0x66,0x1860), static,
              broadcast,
              CISCO, status defined, active

R2でも設定を行い、pingが実行出来ることを確認しています。

R2(config-if)#int s1/0
R2(config-if)#en fram
R2(config-if)#ipv6 address fe80::2 link-local
R2(config-if)#frame-relay map ipv6 fe80::1 201 broadcast
R2(config-if)#no sh
R2(config-if)#do sh fram map
Serial1/0 (up): ipv6 FE80::1 dlci 201(0xC9,0x3090), static,
              broadcast,
              CISCO, status defined, active
R2(config-if)#do ping fe80::1
Output Interface: Serial1/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::1, timeout is 2 seconds:
Packet sent with a source address of FE80::2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/8/12 ms

カテゴリ:

今回はPPPの認証をRADIUSサーバを使う例を紹介します。

R2はR1(12.12.12.1)とR3(23.23.23.3)に接続されています。R3をPPPクライアント、R1をRADIUSサーバとして利用します。

R2(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.2      YES manual up                    up
Serial1/2                  23.23.23.2      YES manual up                    up
Loopback0                  17.17.2.2       YES NVRAM  up                    up

まずR1にRADIUSサーバの設定を行います。

R1(config)#aaa new-model
R1(config)#radius-server local
R1(config-radsrv)#nas 17.17.2.2 key CISCO
R1(config-radsrv)#user cisco password cisco
R1#debug radius local-server packets

次にR2でPPPの認証を設定します。

R2(config)#aaa new-model
R2(config)#aaa authentication ppp MYPPP group radius

R2(config)#int s1/2
R2(config-if)#en ppp
R2(config-if)#ppp authentication pap MYPPP

R2でRADIUSサーバ(R1)を指定します。

R2(config)#radius-server host 17.17.1.1 auth-port 1812 acct-port 1813 key CISCO
R2(config)#ip radius source-interface loopback 0
R2#debug radius authentication
R2#debug ppp authentication

R3にPAPの設定を行います。設定前はインターフェースがdownしていますが、設定後にインターフェースを有効にすると認証が成功しupとなります。

R3(config)#int s1/3
R3(config-if)#do sh ip int b | i Serial1/3
Serial1/3                  23.23.23.3      YES manual up                    down
R3(config-if)#sh
R3(config-if)#ppp pap sent-username cisco password cisco
R3(config-if)#do deb ppp authen
R3(config-if)#no sh

Jun 29 06:31:04.711: Se1/3 PAP: Using hostname from interface PAP
Jun 29 06:31:04.711: Se1/3 PAP: Using password from interface PAP
Jun 29 06:31:04.715: Se1/3 PAP: O AUTH-REQ id 10 len 16 from "cisco"
Jun 29 06:31:04.871: Se1/3 PAP: I AUTH-ACK id 10 len 5
Jun 29 06:31:05.875: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/3, changed state to up
Jun 29 06:31:05.891: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 23.23.23.2 (Serial1/3) is up: new adjacency

R2ではこのような表示されます。

Jun 29 06:31:01.799: RADIUS:  Framed-Protocol     [7]   6   PPP                       [1]
Jun 29 06:31:01.799: RADIUS:  User-Name           [1]   7   "cisco"
Jun 29 06:31:01.799: RADIUS:  User-Password       [2]   18  *
Jun 29 06:31:01.799: RADIUS:  NAS-Port            [5]   6   10002
Jun 29 06:31:01.803: RADIUS:  NAS-Port-Id         [87]  11  "Serial1/2"
Jun 29 06:31:01.803: RADIUS:  NAS-Port-Type       [61]  6   Sync                      [1]
Jun 29 06:31:01.803: RADIUS:  Service-Type        [6]   6   Framed                    [2]
Jun 29 06:31:01.803: RADIUS:  NAS-IP-Address      [4]   6   17.17.2.2
Jun 29 06:31:01.923: RADIUS: Received from id 1645/1 17.17.1.1:1812, Access-Accept, len 88
〜略〜
Jun 29 06:31:01.927: Se1/2 PPP: Received LOGIN Response PASS
Jun 29 06:31:01.931: Se1/2 PAP: O AUTH-ACK id 10 len 5
Jun 29 06:31:02.919: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 23.23.23.3 (Serial1/2) is up: new adjacency
Jun 29 06:31:02.939: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/2, changed state to up

R1でRADIUSの認証結果を表示しています。

R1#show radius local-server statistics | b Username
Username                  Successes  Failures  Blocks
cisco                             1         0       0

このようにRADIUSを使うことで、PPPの認証を一元化することが出来ます。

カテゴリ:

IOSでインターフェースの設定をする場合の小技です。まずインターフェースの設定のみを表示するにはshow runに続いてインターフェース名を指定します。

R1#show running-config interface f0/1
Building configuration...

Current configuration : 115 bytes
!
interface FastEthernet0/1
ip address 192.168.0.1 255.255.255.0
ip ospf priority 0
speed 100
full-duplex
end

この時にlinenumを追加すると行番号が表示されます。

R1#show running-config interface f0/1 linenum
Building configuration...

Current configuration : 115 bytes
     1 : !
     2 : interface FastEthernet0/1
     3 :  ip address 192.168.0.1 255.255.255.0
     4 :  ip ospf priority 0
     5 :  speed 100
     6 :  full-duplex
     7 : end

特定のインターフェースの設定を消去するにはdefault interfaceコマンドを利用します。

R1(config)#default interface fastEthernet 0/1
Building configuration...

Interface FastEthernet0/1 set to default configuration

R1(config)#do sh run int f0/1
Building configuration...

Current configuration : 73 bytes
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
end

シリアルケーブルを利用する時にどちらがDCEかDTEかを確認するには、show controllersコマンドを利用します。

R3#show controllers serial 1/3
〜略〜
line state: up
cable type : V.11 (X.21) DCE cable, received clockrate 2015232

base0 registers=0x3D000000, base1 registers=0x3D002000
mxt_ds=0x6737EC68, rx ring entries=78, tx ring entries=128
〜略〜

下記のようにincludeを併用すると見やすくなるでしょう。

R3#show controllers serial 1/3 | include DCE|DTE
cable type : V.11 (X.21) DCE cable, received clockrate 2015232

インターフェースが多くあるときに役立つのがdescriptionコマンドです。任意の文字列を登録できるので、利用すると分かりやすくなります。

R3(config-if)#description PPP to R2
R3(config-if)#do sh int s1/3
Serial1/3 is up, line protocol is up
  Hardware is M4T
  Description: PPP to R2
  Internet address is 23.23.23.3/24
〜略〜

カテゴリ:

IOSでの効率的設定に重要なものに履歴機能(history)があります。普段Linuxなどで使っているbashと比較すると見劣りしますが、利用しない手はありません。

初期値では過去20件の履歴が保存されます。

R3#show terminal | include History
History is enabled, history size is 20.

履歴を表示するにはshow historyコマンドを利用します。

R3#show history
  show terminal
  show history

bashであれば履歴番号からコマンドの再実行の指定が可能ですが、IOSではCtro-p, Ctrl-n(↑↓キーでも可)を使って再表示してから、実行する形式のみとなります。

初期値の20件ではあまり実用的ではありませんので、100件に変えます。

R3#terminal history size 100
R3#show terminal | include History
History is enabled, history size is 100.

多くのルータやスイッチを設定する場合(CCIE Labの時とか)、意図しないルータに設定をしてしまうのはありがちなミスです。このような時に履歴機能を利用することで、どのルータに設定を入れたのかが簡単に確認できるようになります。

カテゴリ:

前回RADIUSサーバを使いユーザ認証を行いましたが、radius-server hostコマンドを使わない設定方法もあります。

R2はR1(12.12.12.1)とR3(23.23.23.3)に接続されています。R1をTELNETクライアント、R3は前回と同じ方法でRADIUSサーバとして利用します。

R2(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.2      YES manual up                    up
Serial1/2                  23.23.23.2      YES manual up                    up
Loopback0                  17.17.2.2       YES NVRAM  up                    up

まずR3にRADIUSサーバの設定を行います。

R3(config)#aaa new-model
R3(config)#radius-server local
R3(config-radsrv)#nas 17.17.2.2 key CISCO
R3(config-radsrv)#user cisco password cisco

次にR2でTELNETでの認証設定を行います。radius-server hostコマンドではなく、aaa group serverコマンドを利用しR3のLo0(17.17.3.3)をします。server-privateコマンドを利用する際、ポート番号を指定しないと自動的にauth-port 1645とacct-port 1646となるので注意が必要です。

R2(config)#aaa new-model
R2(config)#aaa authentication login RADIUS_TELNET group TELNET
R2(config)#aaa group server radius TELNET
R2(config-sg-radius)#?
RADIUS Server-group commands:
  accounting      Specify a RADIUS attribute filter for accounting
  attribute       Customize selected radius attributes
  authorization   Specify a RADIUS attribute filter for authorization
  backoff         Retry backoff pattern (Default is retransmits with constant
                  delay)
  deadtime        Specify time in minutes to ignore an unresponsive server
  default         Set a command to its defaults
  exit            Exit from RADIUS server-group configuration mode
  ip              Internet Protocol config commands
  load-balance    Server group load-balancing options.
  no              Negate a command or set its defaults
  server          Specify a RADIUS server
  server-private  Define a private RADIUS server (per group)

R2(config-sg-radius)#server-private 17.17.3.3 auth-port 1812 acct-port 1813 key CISCO
R2(config-sg-radius)#ip radius source-interface loopback 0

R2(config-sg-radius)#line vty 0 15
R2(config-line)#login authentication RADIUS_TELNET
R2(config-line)#do deb radius auth

設定後、R1からR2へ問題なく接続できることが分かります。

R1(config)#do telnet 17.17.2.2
Trying 17.17.2.2 ... Open

User Access Verification

Username: cisco
Password:

R2>sh user
    Line       User       Host(s)              Idle       Location
   0 con 0                idle                 00:02:48   
* 98 vty 0     cisco      idle                 00:00:00 12.12.12.1

カテゴリ:

IOSでRADIUSサーバを使った認証の設定を行います。TELNETでのユーザ認証をローカル認証でなく、RADIUSで行ってみます。

R2はR1(12.12.12.1)とR3(23.23.23.3)に接続されています。R1をTELNETクライアント、R3をRADIUSサーバとして設定を行います。

R2(config)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.2      YES manual up                    up
Serial1/2                  23.23.23.2      YES manual up                    up
Loopback0                  17.17.2.2       YES NVRAM  up                    up

AAA(Authentication Authorization Accounting)を有効にし、TELNETという名前でradiusを登録します。

R2(config)#aaa new-model
R2(config)#aaa authentication login TELNET group radius

次にRADIUSサーバを指定しますが、ポートの設定に注意します。特に指定をしないと1645と1646の利用となります。ここではR3のLo0である17.17.3.3でサーバを指定しています。

R2(config)#radius-server host 17.17.3.3 key CISCO
R2(config)#do sh run | i radius-server
radius-server host 17.17.3.3 auth-port 1645 acct-port 1646 key CISCO

現在、通常のRADISサーバでは一般的に1812と1813を使うため、よく確認して設定します。

$ grep radius /etc/services
datametrics     1645/tcp        old-radius      # datametrics / old radius entry
datametrics     1645/udp        old-radius      # datametrics / old radius entry
radius          1812/tcp                        # Radius
radius          1812/udp                        # Radius
radius-acct     1813/tcp        radacct         # Radius Accounting
radius-acct     1813/udp        radacct         # Radius Accounting
〜略〜

R2(config)#no radius-server host 17.17.3.3 key CISCO

R2(config)#radius-server host 17.17.3.3 auth-port 1812 acct-port 1813 key CISCO
R2#show aaa servers | i host
RADIUS: id 8, priority 1, host 17.17.3.3, auth-port 1812, acct-port 1813

line vtyでaaaで定義したTELNETを指定し、debugを有効にします。

R2(config)#line vty 0 15
R2(config-line)#login authentication TELNET
R2#debug radius authentication

ここでR1から接続を試してみますが、ログイン出来ません。RADIUSサーバがないので当然です。

R1#telnet 12.12.12.2
Trying 12.12.12.2 ... Open

User Access Verification

Username: cisco
Password:

% Authentication failed

R2
Jun  1 06:11:48.899: RADIUS: No response from (17.17.3.3:1812,1813) for id 1645/1
Jun  1 06:11:48.899: RADIUS/DECODE: No response from radius-server; parse response; FAIL
Jun  1 06:11:48.899: RADIUS/DECODE: Case error(no response/ bad packet/ op decode);parse response; FAIL

RADIUSサーバはLinuxなどでもちろん構築できますが、IOSもRADIUSサーバとして利用できます。初期値ではR3に直接接続されているインターフェース(23.23.23.2)を利用してNAS(network access server)であるR2が認証を要求します。

R3(config)#aaa new-model
R3(config)#radius-server local
R3(config-radsrv)#nas 23.23.23.2 key CISCO
R3(config-radsrv)#user cisco password cisco

設定後、R1から接続すると問題なくログイン出来ます。

R2
Jun  1 06:19:32.759: RADIUS:  Calling-Station-Id  [31]  12  "12.12.12.1"
Jun  1 06:19:32.759: RADIUS:  NAS-IP-Address      [4]   6   23.23.23.2
Jun  1 06:19:32.771: RADIUS: Received from id 1645/2 17.17.3.3:1812, Access-Accept, len 88

R3#sh radius local-server statistics
Successes              : 1           Unknown usernames      : 0
Client blocks          : 0           Invalid passwords      : 0
Unknown NAS            : 0           Invalid packet from NAS: 0

NAS : 23.23.23.2
Successes              : 1           Unknown usernames      : 0
Client blocks          : 0           Invalid passwords      : 0
Corrupted packet       : 0           Unknown RADIUS message : 0
No username attribute  : 0           Missing auth attribute : 0
Shared key mismatch    : 0           Invalid state attribute: 0
Unknown EAP message    : 0           Unknown EAP auth type  : 0
Auto provision success : 0           Auto provision failure : 0
PAC refresh            : 0           Invalid PAC received   : 0

Username                  Successes  Failures  Blocks
cisco                             1         0       0

R2が利用するNASの値をLo0(17.17.2.2)に変更する例です。

R3(config-radsrv)#no nas 23.23.23.2 key CISCO
R3(config-radsrv)#nas 17.17.2.2 key CISCO
R3#show radius local-server statistics | i NAS :
NAS : 17.17.2.2

R2(config)#ip radius source-interface lo0

Jun  1 06:43:30.135: RADIUS:  NAS-IP-Address      [4]   6   17.17.2.2
Jun  1 06:43:30.143: RADIUS: Received from id 1645/10 17.17.3.3:1812, Access-Accept, len 88

RADIUS NAS-IP-Address Attribute Configurability

カテゴリ:

IOSでは特定のインターフェースを利用してNTPを送る、受け取るという設定が可能です。

R1ではF0/0からR2(12.12.12.2)に接続されています。

R1(config-if)#do sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            12.12.12.1      YES manual up                    up
FastEthernet0/1            192.168.0.100   YES manual up                    up

R1ではntp serverコマンドによりNTPクライアントとして稼働中です。

R1#show ntp associations

      address         ref clock     st  when  poll reach  delay  offset    disp
*~2.2.2.2                2.2.2.2     2    20    64  377    16.1    6.34    14.5
* master (synced), # master (unsynced), + selected, - candidate, ~ configured

ntp broadcastコマンドを利用し、F0/0でNTPを有効にします。

R1(config)#int f0/0
R1(config-if)#ntp ?
  broadcast  Configure NTP broadcast service
  disable    Disable NTP
  multicast  Configure NTP multicast service

R1(config-if)#ntp broadcast ?
  client       Listen to NTP broadcasts
  destination  Configure broadcast destination address
  key          Configure broadcast authentication key
  version      Configure NTP version
  <cr>

R1(config-if)#ntp broadcast

次にR2のF0/0でntp broadcastコマンドを利用します。

R2(config-if)#int f0/0
R2(config-if)#ntp broadcast client

設定後、しばらくしてから確認すると同期が完了していることが確認できます。

R2#show ntp associations

      address         ref clock     st  when  poll reach  delay  offset    disp
* 12.12.12.1            2.2.2.2      3    35    64  376    10.7   19.48    13.3
* master (synced), # master (unsynced), + selected, - candidate, ~ configured

R2#show ntp associations detail
12.12.12.1 dynamic, our_master, sane, valid, stratum 3
ref ID 2.2.2.2, time D1857C68.39BD36B2 (09:38:00.225 JST Tue May 24 2011)
our mode bdcast client, peer mode bdcast, our poll intvl 64, peer poll intvl 64
root delay 8.56 msec, root disp 58.88, reach 376, sync dist 81.833
delay 10.68 msec, offset 19.4788 msec, dispersion 13.34
precision 2**18, version 3
org time D1857C80.30D43D1E (09:38:24.190 JST Tue May 24 2011)
rcv time D1857C80.2BD7AC79 (09:38:24.171 JST Tue May 24 2011)
xmt time D18578C2.B9D9ABD2 (09:22:26.725 JST Tue May 24 2011)
filtdelay =    10.68   10.68   10.68   10.68   10.68   10.68   10.68   10.68
filtoffset =   19.48   14.56  -10.12   31.54   19.16    3.90  -10.70   18.66
filterror =     0.99    1.97    2.94    3.92    4.90    5.87    6.85    7.83

R2#show clock
09:40:00.176 JST Tue May 24 2011

このページのトップヘ

見出し画像
×