コンテンツへスキップ

客として参加するのは今回で3回目です。

今回はご縁もあり、ポスターのイラストを担当させていただきました。
自分の描いたイラストがポスターやパンフレットとなり、会場にたくさん登場するのは
非常に喜ばしいことでした。

青い本の2冊は文学フリマの参加者に依頼された表紙です。

また何かご縁があればイラストを担当させていただけたらと思います。
次はもっといいポスターに仕上げたいものです。

Docker Desktop for Windowsを使ってローカル環境内でWordPressの立ち上げまで進めることができたのでまとめます。

Dockerをインストール

以下サイトに沿ってDockerをインストールします

https://docs.docker.jp/docker-for-windows/install.html

dockerがインストールされた場合、以下コマンドでDockerのバージョンが確認できるようになります。

docker --version
Docker version 20.10.17

docker-compose.yamlを作成

次に、docker-compose.yaml ファイルを作成します。
内容は以下の通りです。

docker-compose.yaml

version: '3.8'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: db
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

Dockerの立ち上げ

上記のファイルを作成したら、
ファイルを作成したディレクトリ上で以下のコマンドを押下します。

docker-compose up -d

Dockerが立ち上がると以下URLにてWordPressのインストール画面へ接続できるようになります。

http://localhost:8080

Dockerを終了したい場合は以下のコマンドで終了します。

docker-compose down

WordPressの画面が表示できないことを確認したら一連の流れは終了です。

WSL上でdockerのインストールをしたと思っていたがサービスが見つからないとのエラーが発生。
解決したのでメモ

前提

VERSION="20.04.4 LTS (Focal Fossa)"

Docker version 20.10.18, build b40c2f6

wsl上でdocker.io をインストール
docker ps を叩くとデーモンがないと知らされる

解決方法

以下サイトを参考にした
http://var.blog.jp/archives/85880603.html

---以下引用---

とりあえず 標準リポジトリの docker.io ではなく docker-ce のサイトのインストールスクリプトを使ってインストールしてみます

curl https://get.docker.com | sh

---以下引用ここまで---

現在は問題なく利用可能となっている

 docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES


概要

スイッチにACLを設定する前に、
パケットトレーサーで実施したACLの検証内容を記載する。

検証方法

環境

パケットトレーサーにて以下の検証環境を用意した。

・PC0 : 192.168.1.1
・PC1 : 192.168.1.3
・Switch0[vlan1]:192.168.1.5
・Router0[Giga 0/1]:192.168.1.254

以下はいずれもpingの反応が正常に返ってくる。
PC0→Router
PC1→Router

目的

Router0で、ACLを作成して、
[PC1 : 192.168.1.3]からのパケットを拒否したい

検証内容

・ Router0にログインし、コンフィギュレーションモードにて
 192.168.1.3を拒否するアクセスリスト1を作成する

Router(config)#access-list 1 deny host 192.168.1.3

・アクセスリストはデフォルトで全て拒否する性質があるため、
 すべてのパケットを許可する内容を追加する

Router(config)#access-list 1 permit any
Router(config)#exit

・アクセスリスト1の内容をコンフィグに反映されているか確認する

Router#show access-lists
Standard IP access list 1
        10 deny host 192.168.1.3
        20 permit any

・PC1のターミナルからRouterにpingが通ることを確認したあとに、コンフィグモードからインターフェイスモードに変更し、アクセスリスト1を設置する

Router(config)#int GIgabitEthernet 0/1
Router(config-if)#ip access-group 1 in


・特権モードで現在の設定からアクセスリストが反映されているか確認する

Router#show run
interface GigabitEthernet0/1
ip address 192.168.1.254 255.255.255.0
ip access-group 1 in

・再度PC1のターミナルからRouterにpingを飛ばし、通らないことを確認する

・PC0からRouterにpingが通ることを確認する

## 検証結果
PC0からRouterへのpingは通るが、PC1は、
アクセスリストによってpingが通らないようになった。

# 疑問

## アクセスリストの順番を変更するにはどうしたらいいか

・アクセスリストを確認

Router#sh access-lists
Standard IP access list 1
10 deny host 192.168.1.3
20 permit any
30 deny host 192.168.1.4

以下コマンドを入力しても何も変更されないことを確認

Router(config)#access-list 1 permit any

### シーケンスを指定して削除する

permit anyのシーケンスを30以下にしたいので、 20のシーケンスであるpermit anyを削除する

Router(config)#ip access-list standard 1
Router(config-std-nacl)#no 20
Router(config-std-nacl)#exit

再度アクセスリスト1を確認

Router#sh access-lists
Standard IP access list 1
10 deny host 192.168.1.3
30 deny host 192.168.1.4

上記にてシーケンス20が削除されていることを確認 ### コンフィグモードに入り、アクセスリスト1に再度 permit any を入力

Router(config)#access-list 1 permit any

再度、アクセスリスト1を確認する

Router#sh access-lists
Standard IP access list 1
10 deny host 192.168.1.3
30 deny host 192.168.1.4
40 permit any

permit any のシーケンスが20から40に変わった

DISTINCT
重複行を1行にまとめる

参考
https://www.sejuku.net/blog/54990

CONCAT
文字列を結合する

concat(列1, ' : ', 列2, ' ', 列3) |

結果
列1:列2 列3

参考
https://xtrend.nikkei.com/atcl/contents/18/00069/00039/

TRUNCATE
テーブルを再作成する
データを一つずつDELETEと違い、削除が高速。
ただしロールバックはできない。

参考
https://medium-company.com/sql-truncate/

order by
ソート機能

デフォルトは昇順(ASK)だから
降順の「DESC」を覚えておくとよい


order by 列 desc

参考
https://medium-company.com/sql-truncate/

UNION/UNION ALL
複数の検索結果をまとめる。

・UNION→重複したデータを統合する
・UNION ALL→重複したデータ全て表示

SELECT 列名 FROM 表名1
UNION ALL
SELECT 列名 FROM 表名2

NOT IN
対象の行を含めない

SELECT 列名 FROM 表名2

WHEREの後に NOT IN("A","B");
みたいな。

参考
https://www.sejuku.net/blog/73631

解決方法

管理者モードでコマンドプロンプトを開き、winsock をリセットすると解決します

1.コマンドプロンプトを右クリックで「管理者として実行」を選択

2.コマンドプロンプトで以下コマンドを入力する

PS C:\WINDOWS\system32> wsl.exe --shutdown
PS C:\WINDOWS\system32> wsl.exe
The attempted operation is not supported for the type of object referenced.
PS C:\WINDOWS\system32> netsh winsock reset

Sucessfully reset the Winsock Catalog.
You must restart the computer in order to complete the reset.

PS C:\WINDOWS\system32> wsl.exe

上記を入力後に、再度、usernameを記入すると解決します。

参考
https://oji-cloud.net/2021/04/20/post-6157/

【IPv4からIPv6の変更点】

・フィールドの簡素化
・40バイト固定長(基本ヘッダ)
・チェックサムの削除
・フローラベルの追加
・オプション機能は拡張ヘッダで対応
・ルータ(中継機器)でのフラグメント処理を禁止

フローラベル…効率的にアプリケーションフローを識別するためのフィールド
ネクストヘッダ…次のタイプのヘッダを定義する

Ipv6は一つのインターフェースに複数の種類(グローバルユニキャストアドレスやリンクローカルユニキャストアドレスなど)のIPv6アドレスを割り当てて使用できる
Ipv6アドレスが割り当てられるインターフェイス上には必ずリンクローカルアドレスが
割り当てられる

Ipv6のヘッダフォーマット

バージョントラフィッククラスフローラベル
ペイロード長ネクストヘッダホップリミット
送信元アドレス
送信先アドレス

【アドレス長】

IPv6アドレスは128ビットであり、16ビットずつ[:]で区切って
8個のフィールドに分けて16進数で表記する

【IPv6アドレスの省略表記】

・各フィールドの先頭は0の省略が可能
・0000は0に省略可能
・0のフィールドが連続する場合は[::]で表現可能
 一つのアドレスにつき一回だけ

【アドレス関連】

グローバルユニキャストアドレス

先頭3ビットが[001]の[2000::/3]で始まるアドレスで
IPv4ののグローバルアドレスに相当する。

リンクローカルユニキャストアドレス

先頭10ビットが1111111010[FE80::/10]で始まるアドレス。
物理的に接続されているローカルネットワーク内のみで有効なアドレス
ルータを超えて通信することができません。

ユニークローカルアドレス

IPv4のプライベートアドレスに相当するもの(FC00::/7)

EUI-64

IEEEによって標準化された64ビット超の識別子
MACアドレスを元にして一意なインターフェイスを生成
EUI‐64のインターフェイスはMACアドレスの上位3バイトと
下位3バイトの間に0xFFFEを挿入し、U/Lビットと呼ばれる
先頭から7番目のビットを反転する

マルチキャストアドレス

先頭ビットが[1111 1111 (FF00::/8)

その後、フラグ(4ビット)スコープ(4ビット)残り112ビットはグループIDとして使用される
フラグはマルチキャストのタイプを表す。
 4ビットのうち3ビットが将来のための予約されている領域であり、常に000であり
 末尾1ビットがタイプをしめす。
 永続的に割り当てられるアドレス:0
 一時的なアドレス:1

スコープはマルチキャストパケットの有効範囲を表す
 スコープが2
 →特定リンクでのみ有効なリンクローカルアドレス

Ipv6マルチキャストアドレスのグループはIpv4マルチキャストアドレスを元に以下のテーブルのようになっている

説明IPv4IPv6
同一リンク上の全ノード224.0.0.1FF02::1
同一リンク上の全ルータ224.0.0.2FF02::2
同一リンク上のOSPFルータ224.0.0.5FF02::5
同一リンク上のOSPF指定ルータ(DR/DBR)224.0.0.6FF02::6
同一リンク上のRIP(RIPng)ルータ224.0.0.9FF02::9
同一リンク上のEIGRPルータ224.0.0.10FF02::A

【ステートレスアドレス自動設定】

(SLAAC:Stateless Addless Autoconfiguration)
IPv6ホストが自動的にグローバルユニキャストアドレスを生成する方法
DHCPサーバーの必要がない

【DHCPv6】

DHCPサーバーによってIPv6ホストにIPアドレスやDNSなどのネットワーク設定情報を動的に割り当てる
管理者がホストアドレスの管理をしたいときに使われる
ステートフルアドレス設定とも呼ばれる

【ルーターからのアドレス配布】

ステートレスアドレス自動設定ともいう
ルーターはRA(タイプ134)でプレフィックスを通知する
ホストはRS(タイプ133)でプレフィックスを要求する
RAに含まれるプレフィックス長は64ビット
RAの宛先はマルチキャストアドレス(FF02::1)

【RIPng】

RIPng(RIP next generation)はディスタンスベクタールーティングであり
RIPv2を受け継いでいるらしい

コマンド周り

インターフェイスの確認
#show ipv6 interface

【IPv6のスタティックルートの設定】

(config)#ipv6 route <ipv6-address>/<prefix-length> {<nexthop> | <interface> } [distance]

例

(config)#ipv6 route 2000::1/128 2013::1/126 10

【ipv6へ移行する理由】

パケット転送処理の高速化(ヘッダ変更、チェックサム廃止)
ブロードキャストの廃止
アドレス自動設定機能(フラグアンドプレイ)
セキュリティ強化(Ipsecの標準実装)

【デュアルスタック】

1台の機器にIPv4とIPv6の両方のアドレスを設定し、IPv4ネットワークと
IPv6ネットワーク間で相互に通信する移行技術

【トンネリング】

IPv6ネットワーク同士をIPv4ネットワーク経由で、もしくはIPv4ネットワークを
IPv6経由で通信させる技術

【NAT-PT】

IPv4ホストとIPv6ホスト間で通信するために、トランスレータでIPv4パケットと
IPv6パケットを相互に変換する移行技術

標準アクセスリスト

アクセスリストはトラフィックを条件によって分類することができる
特定のパケットフローを特定し制御することができる条件リスト

パケットを識別する際に送信元アクセスからのパケットをチェックする
設定は送信元アドレスとワイルドカードでできる。省略も可能

そもそもパケットにはIP、TCP,UDPヘッダがある。

レイヤ3送信元IPアドレス、宛先IPアドレス、プロトコル
レイヤ4送信元ポート、宛先ポート

標準アクセスリストでは、レイヤ3の送信元IPアドレスのみチェック
拡張アクセスリストでは、レイヤ3,4全ての項目がチェックできる。

番号付きACL

ACLには番号をつけて識別することが可能で標準/拡張ACLによって利用できる番号がわかれている

Ipv41~99 1300~1999
Ipv6100~199 2000~2699

ワイルドカードマスク

ワイルドカードマスクは直前に設定したIPアドレスに対して
「どの部分をチェックするか」を決めるもの。

ACLの条件文でIPアドレスを指定する場合はワイルドカードを使用する
ワイルドカードは32ビットの値で8ビットずつドットで区切って10進数で表す。
0はチェックして、1は無視する

例

全ビットをチェック0.0.0.0
全ビットを無視255.255.255.255

なお、特定のホストアドレスを指定したい場合、host
全てのアドレスを指定する場合、any でも代用可能

例
アクセスリスト[1]で192.168.0.1/24からのパケットを許可した場合

(config)access-list 1 permit 192.168.0.1 0.0.0.255

ACLをインターフェイスへ適用する

ACLをインターフェイスへ適用する

ACLを適用したいコンフィグインターフェイスモードに移動して

(config-if)#ip access-group <acl-number> {in | out}

特定の送信元IPアドレスのみ対象のインターフェースの
から転送できないようにする

例 192.168.0.0/24からきたパケットをserial 0/0から転送させない

(config)#access-list <acl-number> deny 192.168.0.0 0.0.0.255
(config)#access-list <acl-number> permit 0.0.0.0 255.255.255.255
(config)#interface serial 0/0
(config-if)#ip access-group <acl-number> out 

permitとdenyの順番

denyをどの順番を置いたとしても
permitがdenyより先にマッチしてしまうとそこで条件が終了して
denyを無視してパケットが通過してしまう。

なので、条件が細かいものほど先に記述する。

例
deny
deny
permit ここで 通過する。

permit 1ホストのみ
permit 1ホストのみ
deny 上記の合計2ホストにマッチしなかったら拒否
permit any aclには暗黙のdenyがあるため残り全て許可を置く

番号付き拡張アクセスリストの条件順番

プロトコル 送信元IPアドレス 送信元ポート 宛先IPアドレス
宛先ポート

プロトコルを決めた後に 送信元のIP、ポート 宛先IP、ポートと
覚えたらよい

(config)#access-list <acl-number> {permit | deny} <protocol> <sr> <wrc> <port>
 <sr> <wrc><port> 

例 192.168.100.64/24からのサーバ172.16.24.100のSSH接続のみ拒否する場合
(config)#access-list 100 deny tcp 192.168.100.64 0.0.0.255 host 172.16.24.100 eq 22
(config)#access-list 100 permit ip any any
(config)line vty 0 4 (ルータのリモートアクセス用の仮想ポートに移動)
(config-line)#access-class 100 in (access-classに変わるから要注意)

拡張ACLのコンフィグレーションモードに移動して設定する

シーケンス番号は低い数値から優先される

(config)#ip access-list extended TEST
(config-ext-nacl)#5 permit ip ~~~

(config)#show access-lists
5 permit ip ~~~
10 deny ~~~
20 deny ~~~

ACLの確認コマンド

#show access-lists  全てのIPリストを表示
#show ip access-lists <acl-numbers> 特定のACLのみ
#show ip access-lists すべてのIPv4のACLを表示

ACL

  • ホスト10.1.1.1からパケットのみ拒否するACL1を作成
    (config)#access-list 1deny 10.1.1.1(または host 10.1.1.1)
    (config)#access-list 1 permit any
    (または、0.0.0.0 255.255.255.255)
  • 10.1.1.0/24からのパケットのみ許可するACL2を作成
    (config)#access-list 2 permit 10.1.1.0 0.0.0.255
  • ホスト10.1.1.1からのパケットのみを拒否し、マッチするパケットがあればログを作成しコンソールメッセージに送信するACL3を作成
    (config)#access-list 3 deny host 10.1.1.1 log
    (config)#access-list 3 permit 0.0.0.0 255.255.255.255
  • 10.1.1.10/24に対してHTTPセッションを許可するACL100を作成
    (config)#access-list 100 permit tcp any 10.1.1.0 0.0.0.255 eq 80(or eq www)
  • ネットワーク10.1.1.0/24のホストからサーバ172.16.1.1へTelnetアクセスを拒否するACL102を作成
    (config)#access-list 102 deny tcp 10.1.1.0 0.0.0.255 host 172.16.1.1 eq 23(or eq telnet)
    (config)#access-list 102 permit ip any any
  • ネットワーク10.1.1.0/24からのホストからのpingトラフィックを許可するACL103を作成
    (config)#access-list 103 permit icmp 10.1.1.0 0.0.0.255 any echo
  • TCPセッションを開始できるのは内部ネットワークからのみに制限するためのACL104を作成
    (config)#access-list 104 permit tcp any any established
  • パケット着信時にACLのフィルタリングテストを実行
    (config-if)#ip access-group 1 in
  • パケット送信時にACLのフィルタリングテストを実行
    (config-if)#ip access-group 1 out
  • 10.1.1.0/24からのパケットのみを拒否するACL[Filter]を作成し、Serial0/0インターフェイスから送出時にフィルタリングテストを実行
    (config)#ip access-list standard Filter
    (config-std-nacl)#deny 10.1.1.0 0.0.0.255
    (config-std-nacl)#permit any
    (config-std-nacl)#interface serial0/0
    (config-if)#ip access-group Filter out
  • 営業部(10.1.1.0/24)から技術部(10.2.2.0/24)へのSMTPのみを拒否するACL[SMTP-Filter]を作成し、fa0/0インターフェイスの着信時にフィルタリングテストを実行
    (config)#ip access-list extended SMTP-Filter
    (config-ext-nacl)#deny tcp 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255 eq 25
    (config-ext-nacl)#interface fa0/0
    (config-ext-nacl)#ip access-group SMTP-Filter in
  • ACL1に10.2.2.0/24からのパケットを許可するステートメント(シーケンス番号15)の追加
    (config)#ip access-list standard 1
    (config-std-nacl)#15 permit 10.2.2.0 0.0.0.255
  • すべてのACLを表示
    #show access-lists
  • ACL100のみを表示
    #show access-lists 100
  • ACLの適用と方向を確認
    #show ip interface
  • ACLのカウンタをクリア
    #clear access-list counters
  • ACL1を消去
    (config)#no access-list 1
  • インターフェイスに適用したアウトバウンドのACL100を解除
    (config-if)#no access-group 100 out

VTYアクセス制御

  • ルータに対するTelnetアクセスを10.1.1.1からのみ許可するVTYアクセス制御(ACL1)の設定
    (config)#access-list 1 permit 10.1.1.1(または、host 10.1.1.1)
    (config)#line vty 0 4
    (config-line)#access-class 1 in
  • ルータに対するTelnetユーザーが、192.168.1.0/24へTelnet接続するのを拒否するVTYアクセス(ACL2)の設定
    (config)#access-list 2 deny 192.168.1.0/2 0.0.0.255
    (config)#access-list 2 permit any
    (config)#line vty 0 4
    (config-line)#access-class 2 out

スタティックNAT

  • スタティックNAT変換の設定(内部ローカルアドレス:10.1.1.1,内部グローバルアドレス:1.1.1.1,内部NW:fa0/0,外部NW:s0/0)
    (config)#ip nat inside source static 10.1.1.1 1.1.1.1
    (config)#interface fa0/0
    (config-if)#ip nat inside
    (config-if)#interface s0/0
    (config-if)#ip nat outside

ダイナミックNAT

  • NATアドレスプールを作成(プール名:NAT,プール範囲1.1.1.1~1.1.1.10,マスク:255.255.255.0)
    (config)#ip nat pool NAT 1.1.1.1 1.1.1.10 netmask 255.255.255.0 (またはprefix-length 24)
  • プール「NAT」とACL1をマッピングし、ダイナミックNATを有効化
    (config)#ip nat inside source list 1 pool NAT
  • ダイナミックNAT変換の設定(プール名:NAT,プール範囲:1.1.1.1~1.1.1.7,マスク:255.255.255.248,返還対象となる送信元アドレス:10.1.1.0/24,ACL:1,内部NW:fa0/0,外部NW:S0/0)
    (config)#ip nat pool NAT 1.1.1.1 1.1.1.7 netmask 255.255.255.248
    (config)#access-list 1 permit 10.1.1.0 0.0.0.255
    (config)#ip nat inside source list 1 pool NAT
    (config)#interface fa0/0
    (config-if)#ip nat inside
    (config-if)#interface s0/0
    (config-if)#ip nat outside
  • 外部インターフェースを使用したPATの設定(変換対象: 10.1.1.0/24,ACL1,内部:fa0/0,外部:s0/0)
    (config)#access-list 1 permit 10.1.1.0 0.0.0.0.255
    (config)#ip nat inside source list 1 interface s0/0 overload
    (config)#interface fa0/0
    (config-if)#ip nat inside
    (config-if)#interface s0/0
    (config-if)#ip nat outside

NAT

  • TCPプロトコルをNATテーブルからタイムアウトしないように設定
    (config)#ip nat translation tcp-timeout never

NATの検証

  • NATテーブルの情報の表示
    #show ip nat translations
  • 内部、外部インターフェースを確認
    #show ip interface
  • アドレス変換の統計情報の表示
    #show ip nat statistics
  • NATに関するコマンド(NAT,ACL,プール,インターフェイス)の設定の確認
    #show running-config
  • すべてのダイナミック変換エントリをクリア
    #clear ip nat translation *
  • 内部トランスレーションを含むダイナミック変換エントリをクリア
    #clear ip nat translation inside
  • NATのデバッグを有効化
    #debug ip nat

HDLC

  • シリアルリンクのカプセル化タイプをHDLCに設定
    (config-if)#encapsulation hdlc

PPP

  • シリアルリンクのカプセル化タイプをPPPに設定
    (config-if)#encapsulation ppp
  • シリアルリンクのカプセル化PPPで、CHAP認証を有効化
    (config-if)#encapsulation ppp
    (config-if)#ppp authentication chap
  • CentralルータのSerial0/0インターフェイス(10.1.1.1/24)に対して、BranchルータとCHAP認証(パスワード:cisco)を実行してシリアル接続
    (config)#hostname Central
    (config)#username Branch password cisco
    (config)#interface s0/0
    (config-if)#ip address 10.1.1.1 255.255.255.0
    (config-if)#encapsulation ppp
    (config-if)#ppp authentication chap
    (config-if)#no shutdown
  • Serial0/0インターフェイスの情報(リンク状態,カプセル化タイプ、帯域幅など)の表示
    #show interface serial0/0
  • PPP CHAP認証の実行の様子の表示
    #debug ppp authentication

IPv6

  • IPv6トラフィックの転送を有効化
    (config)#ipv6 unicast-routing
  • ipv6アドレスの設定(プレフィクス:2001:410:0:1::/64,インターフェイスID:1)
    (config-if)#ipv6 address 2001:410:0:1::1/64
  • ipv6アドレスの設定(プレフィクス:2001:410:0:2::/64,インターフェイスID:1 EUI64を使用)
    (config-if)#ipv6 address 2001:410:0:2::/64 eui-64
  • インターフェイスのIPv6に関する情報の表示
    #show ipv6 interface
  • IPv6ルーティングテーブルの表示
    #show ipv6 route
  • RIPngの設定(タグ:1,動作させるインターフェイス:fa0/0とSerial0/0)
    (config)#interface fa0/0
    (config-if)#ipv6 rip 1 enable
    (config-if)#interface s0/0
    (config-if)#ipv6 rip 1 enable
  • RIPngプロセスに関する情報の表示
    #show ipv6 rip
  • Ipv6ルーティングプロトコルのステータス表示
    #show ipv6 protocols
  • 手動トンネルの設定(トンネルIF:0,IPv6アドレス:2001:410:a::1/64,送信元IP:192.168.1.1 宛先IP:192.168.1.2)
    (config)#interface tunnel 0
    (config-if)#ipv6 address 2001:410:1::1/64
    (config-if)#tunnel source 192.168.1.1
    (config-if)#tunnel destination 192.168.1.2
    (config-if)#tunnel mode ipv6ip