ntorelabo

ワイヤレスLAN

  • 半二重通信
  • CSMA/CA「Carrier Sense Multiple Access with Collision Avoidance」でコリジョンを防ぐ
  • 2.4GHz帯→障害物に強く、電波が遠くまで届きやすい
    電波干渉が起こりやすいので不安定で速度低下が起きやすい。
  • 5HzG帯→障害物が多いと電波が届きにくい
    電波干渉が起こりにくく安定で高速通信が可能です。

<規格>

  • 無線LANについてはIEEE 802.11で標準化が行われています。
    (有線LAN(主にEthernet)の関連技術はIEEE 802.3で標準化が行われています)
  • アクセスポイントと通信機器は同じ規格で通信する必要がある。
規格周波数帯最大通信速度
IEEE 802.11a5GHz
利用可能なチャネル数は20
チャネル間の重複がないため、
間隔を空ける必要がない
54Mbps
IEEE 802.11b2.4GHz11Mbps/22Mbps
IEEE 802.11g2.4GHz54Mbps
IEEE 802.11n2.4GHz/5GHz65〜800Mbps
IEEE 802.11ac5GHz292.5M〜6.9Gbps
IEEE802.11 ( 無線LAN規格 ) の詳細
IEEE802.11a伝送規格 5GHz帯での最大54Mbpsの無線LANの物理層仕様
IEEE802.11b伝送規格2.4GHz帯での最大11Mbpsの無線LANの物理層仕様
IEEE802.11g伝送規格 2.4GHz帯での最大54Mbpsの無線LANの物理層仕様
IEEE802.11iセキュリティ 802.11のMAC層を拡張し、セキュリティ機能と認証機構を強化するための仕様
IEEE802.11eQoS関連規格 802.11のMAC層を拡張し、QoS機能を追加するための仕様
IEEE802.11n伝送規格 実効速度100Mbps以上の伝送速度を実現するための仕様(2009年9月標準化)
IEEE802.11ac伝送規格 802.11n後継の理論上6.93Gbpsの伝送速度を実現する仕様(2014年2月標準化)
IEEE802.11r認証の際にFT(Fast Transition)と呼ばれる高速認証プロトコルを利用することで、高速ローミングが可能となっています。

2.4GHz・障害物に強い
・遠くまで届く
・電波干渉が起きやすい⇒不安定、速度が低下しやすい
5GHz・障害物に弱い
・通信距離が長くなると電波が弱くなりやすい
・電波干渉が起きにくい⇒安定、高速通信

アドホックモード

  • 無線LANクライアントが相互に接続して通信する方式です。
  • APを使用しない
  • IBSSとも呼ばれる

インフラストラクチャモード

  • 無線LANアクセスポイント(AP)を設置しAPを経由して接続する方式です。

BSS

1台のAPとAPに接続するクライアントで構成されたネットワークを、BSS(Basic Service Set)といいます。

ESS

複数台のAPを設置し、複数のBSSで構成された無線LANのネットワークをESS(Extended Service Set)といいます。

周波数帯

【アクセスポイント設定の注意点】

  • カバレッジホール(通信できないエリア)ができないようにする
  • オーバーラップ(周波数の重なり)ができないようにチャンネルを割り当てる

<覚え方:b5のノートは4g>

規格オーバーラップをさせないチャンネル
IEEE802.11b5ch以上あける
IEEE802.11g4ch以上あける
高速通信技術
mimo送信側と受信側がそれぞれ複数のアンテナを用意し、同時刻に同じ周波数で複数の異なる信号を送受信できるようにするもの。
チャンネルボンディング複数の通信チャネルをまとめて一つの通信に使用することで通信の高速化を図る技術

RF

RF(Radio Frequency)とは、電波や電気信号のうち、無線通信で使用する周波数。

DCA

  • WLCの機能の一つ
  • オーバーラップ(周波数の重なり)が起きないよう動的にチャンネルをAPに割り当てる
  • 電波強度・干渉・ノイズ・負荷・利用率を解析する

AP

AP(アクセスポイント)は電波を使って無線LANクライアントと通信を行うデバイスです。無線LANクライアントは有線LANに繋がったAPを経由して、有線LANに接続します。

ローミング

無線LANクライアントが接続中のAPから別のAPに接続し直すこと

ダイナミックアンカー

異なるサブネットに属しているAPへローミングするとき、ローミング前と同じIPアドレスを使用した通信を可能にする機能

WDS

WDS(Wireless Distribution System)はAP同士を無線接続する機能を指します。

  • 複数の有線LANを無線接続する
  • リピーター(中継機)として使用する。無線接続エリアを広げたり、電波の死角となっている場所へ電波を届けることができます。

802.11w

管理フレームの保護を目的としたIEEE規格は、802.11wです。

<IEEE802.11MACフレーム

  • 制御フレーム(送信要求、応答要求)
  • 管理フレーム
  • データフレーム

管理フレーム

管理フレームのサブタイプ内容
ビーコンフレームAPが無線LANクライアントにSSIDなどを知らせるフレーム
プローブ要求フレームネットワークを見つけるため無線LANクライアントが送信するフレーム
プローブ応答フレームプローブ要求フレームにAPが応答するフレーム
認証フレーム
関連付け要求フレーム
アソシエーション要求
APに接続を要求するフレーム
関連付け応答フレーム
アソシエーション応答
関連付け要求フレームに応答するフレーム
再関連付け要求フレームローミングにより別のAPに接続を要求するフレーム
  1. クライアント ← ビーコン ← AP
  2. クライアント → プローブ要求 → AP
    (ビーコンを受信できなかった場合)
  3. クライアント ← プローブ応答 ← AP
  4. クライアント → 認証要求 → AP
  5. クライアント ← 認証応答 ← AP
  6. クライアント → アソシエーション要求 → AP
  7. クライアント ← アソシエーション応答 ← AP

ワイヤレスLANのセキュリティ

ワイヤレスLANのセキュリティには4つの規格があります。

  • WEP
  • WPA
  • WPA2…現在最も普及。
  • WPA3SAEという新しい認証方式

WPA3

  • 認証方式にSAEを使用
  • 前方秘匿性(前方秘匿性とは、鍵交換プロトコルに要求される性質の一つで、鍵交換に使った秘密鍵が漏えいしたとしても、過去の暗号文は解読されないという性質のこと)
  • PMFの必須化
  • 地所攻撃への耐性


【無線LANで使われる主なセキュリティ規格】

規格WEPWPAWPA2WPA3
暗号化方式TKIP(必須)または、
CCMP(任意)
CCMP(必須)または、
TKIP(任意)
GCMP
暗号化アルゴリズムRC4RC4AESAES
整合性の検証CRC32MICCCM
認証方式IEEE802.1X(EAP)IEEE802.1X(EAP)
PSK認証
IEEE802.1X(EAP)
PSK認証
IEEE802.1X(EAP)
SAE認証
改ざん検出
MIC
MichaelCBC-MACGMAC
セキュリティレベル

【認証方式の別名】
PSK認証、SAE認証 ⇒ WPAパーソナル
IEEE802.1X(EAP)⇒ WPAエンタープライズ

Enhanced Open

  • 主に飲食店やホテルなどの公衆Wi-Fiで使用されるセキュリティ規格です。WPA3の拡張機能として分類されます。
  • パスワード認証は不要でネットワーク接続の容易さを維持しながら、尚且つ安全な通信を実現することができる。
  • OWE(Opportunistic Wireless Encryption)という技術を用いて通信の暗号化を行います。

PSK

PSK(Pre-Shared Key)はユーザー認証方式です。PSKで採用されている暗号化アルゴリズムはAESで、暗号化キーの長さは128ビット/192ビット/256ビットをサポートしています。ビット数が大きほど暗号化強度は高くなります。

<PSKのパスワード文字列のフォーマット>

  • HEX‥‥16進数(Hexadecimal)を意味し、0〜9、A〜Fで64桁
  • ASCLL‥‥半角英数字で8〜63文字

AES

  • AESは第三者による解読は不可能と言われている暗号化アルゴリズム
  • RC4よりも暗号化強度は強いAES > RC4
  • 暗号化キーの長さが大きいほど強度は強くなります。128ビット/192ビット/256ビット

IEEE802.1X

IEEE802.1Xとは、有線LANや無線LANにおけるユーザ認証の規格です。

IEEE802.1X認証を行うためにはサプリカント、認証装置、認証サーバの3つの構成要素が必要となります。

構成要素説明
サプリカント
(Supplicant)
 IEEE802.1Xにおけるクライアントのこと。またはクライアントにインストールするソフトウェア。
 認証を受けるクライアントはPCにインストールする必要があるが、最近のPCには標準搭載されている。
認証装置
(Authenticator)
 サプリカントと認証サーバの仲介役となるネットワーク機器。IEEE802.1X対応のLANスイッチまたは
 無線LANアクセスポイントのこと。これらの機器はサプリカントと認証サーバとの認証結果を受けて、
 ネットワークへのアクセス制御を行う。Ciscoは有線/無線LANスイッチともにIEEE802.1Xに標準対応。
認証サーバ
(Authentication Server)
 ユーザ認証を行うサーバのこと。IEEE802.1X/EAPに対応したRadiusサーバを使用する。

EAP

EAPは、IEEE802.1xで採用されている認証用のプロトコルです。

<EAPの認証方式>

認証方式クライアント
証明書
サーバ
証明書
セキュリティ
レベル
認証方法
LEAP不要不要クライアントとサーバがIDとパスワードを使用して相互に認証する
EAP-FAST不要不要クライアントとサーバがPAC(Protected Access Credential)を使用して相互に認証する
EAP-TLS必要必要クライアントとサーバが電子証明書によって相互に認証する
PEAP不要必要クライアントはユーザIDとパスワードで認証サーバは電子証明書によって認証する

Cisco無線LANソリューション

<Ciscoが提供する、WLANで使用するAPには以下の2種類があります。>

分散管理型

分散管理型で使用されるAPのことを、Autonomous AP(自律型AP)といいます。

  • 家庭用やSOHO(Small Office/Home Office)環境
    • <SOHO>
      • 小規模ネットワークになる
      • 様々な機能をあわせ持ったルータが適している
      • 外部へのアクセスにはブロードバンド回線が適している
  • 個々のAPが独立して動作し、管理者はそれぞれのAPに対してSSIDやセキュリティの設定などを行います。
    • GUIを使用して自律型APにアクセスする際、事前に管理IPアドレスの設定が必要
    • <SSHでのログイン>
      最新のIOSではSSHバージョン1、2のどちらもサポートしており、バージョン指定しない場合はバージョン2が使用されます。

<ログイン方法>

  • Console Portへの直接接続(CLI操作)
  • Telnet/SSHを使ったリモート接続(CLI操作)
  • HTTP/HTTPSを使ったリモート接続(ブラウザを使ったGUI操作)

集中管理型

  • 大規模環境(エンタープライズ)向けの管理ソリューションです。
  • シスコ無線LANコントローラ(WLC)とLightweight AP(集中管理型AP)の2つのコンポーネントで構成されています。
DHCP option43

DHCP option43を利用することで、APにWLCの管理インターフェースのIPアドレスを教えることができます。

<通信の流れ>

  1. LAPは、無線LANクライアントから電波によってデータを受けとる
  2. LAPは受信したデータをCAPWAPでカプセル化してWLCに転送する
  3. WLCはCAPWAPカプセル化を解除し、SSIDに対応したVLAN番号をデータに付加して有線LANに転送する
  4. スイッチは付加されているVLANにしたがって適切なネットワークに転送する
  • WLCとスイッチ間は複数のVLANを通すためにトランクリンクにする必要があります。
  • LAPとスイッチとWLCはそれぞれLANケーブルで接続します

LAG

<WLCとスイッチ間のLAG(Link Aggregation Group)>

  • LAGはWLCとスイッチの両方で設定します。
  • WLCでは、LACPおよびPAgPをサポートしていないため、対抗スイッチのEtherChennelのモードは「on」にする
  • スイッチとWLC間のリンクはトランクリンクにする
  • LAPとスイッチ間アクセスリンクにする
  • 設定を変更した時は再起動する必要がある
  • リングアグリケーションを構成している物理ポートが一つでもUPしていれば、集約した論理ポートはユーザトラフィックの転送を行う。
  • ディストリビューションシステムポートで使用可能である

スプリットMACアーキテクチャ

スプリットMAC(Media Access Control)アーキテクチャとは、アクセス制御の役割をAPとWLANコントローラで分割(スプリット)する方式です。

シスコ無線LANコントローラ

シスコ無線LANコントローラー(Cisco WLC:Wireless LAN Controller)

<シスコ無線LANコントローラの推奨設定>

  • PSKではなくIEEE 802.1Xを使用
  • トランクポートでは必要なVLANのみ許可
  • コントローラの内部DHCPを無効にする
  • 隣接APには異なるチャネルを割り当てる

WLANの作成では次の2つのパラメータを設定する必要があります。

  • プロファイル名
  • SSID‥Lightweight APに割り当てるSSID

<BSSIDとESSID>
BSSID(BSS IDentifier)は無線ネットワーク識別子の1つで、48ビットの数値で構成されます。BSSIDは通常、APのMACアドレスと同じものになります。

ESSID(ESS IDentifier)は無線ネットワーク識別子の1つで、最大32文字までの任意の英数字を設定できます。
無線LANクライアントを扱うユーザは、ESSIDを選択して無線ネットワークに接続します。
なお、「SSID」と呼ぶ場合は一般的に「ESSID」を指しています。

  1. LAPは自身のIPアドレスの取得を試みます
  2. 自身のIPアドレスが取得できた場合次のいずれかの方法でWLCのIPアドレスを検出し、WLCへのjoinを試みます
    • DHCPオプション43
    • DNSによるcisco-capwap-controllerの名前解決
    • WLCを検出するブロードキャストをサブネットに送信
    • 静的に指定されたIPアドレスを使用

Lightweight APには、FlexConnectと呼ばれる動作モードが用意されています。FlexConnectで動作しているLightweight APはWLCとの接続が切断された状態でも、クライアントの認証や、クライアントデータのスイッチング処理をLightweightで行うことができ、引き続きサービスを提供することが可能です。

モード概要
Local・LAPのデフォルトのモード
・電波を使って無線LANクライアントとデータを送受信する
・無線通信に1つのチャネルを利用し、他のチャネルとの干渉を監視する
FlexConnect
(Hybrid REAP)
・WAN経由でWLCと接続するときに使用するモード
WLCとの接続が切断された場合でも対応可能(ローカルスイッチング)
Monitor不正なAPの検出、および侵入検知(IDS)用の専用センサーやRFIDタグ追跡用のセンサーとして動作するモード
Rogue Detector有線ネットワーク上に不正なAPやクライアントがいない監視するモード
Sniffer特定のチャネル上のすべてのパケットを収集して、指定したデバイスに送信するモード
Bridge・APがブリッジとして動作するモード
・メッシュネットワークでの距離が離れたAPの中継などに利用する
SE-Connectスペクトラムアナライザ専用モード
(無線電波の干渉などの状況を調べるモード)

CAPWAP

無線アクセスポイントとWLC間(WLCとLAPとの間)で、無線LANクライアントのデータ制御情報の送受信で使用されるプロトコル。

WLCとLightweight APの間のCAPWAPによる接続は、CAPWAPトンネルと呼ばれます。

SSIDブロードキャスト

SSIDブロードキャストとは、APが自身のSSIDを無線LANクライアント側に表示させるためにビーコン信号を発信する機能のことです。

【WLCのセキュリティ設定】

レイヤパラメータ
Layer2なし(None)
WPA+WPA2
802.1X
静的WEP
Layer3なし(None)
Web Policy

CPU ACL

CPU ACLでは次のようなトラフィック、アクセスの制御が可能です。

  • SNMP、HTTPS、SSH、Telnetなどの管理プロトコル
  • RADIUSやDHCPなどのネットワークサービスプロトコル

【Cisco無線LANコントローラ(WLC)には管理用の特別なポートやインターフェイスが用意されています。】

物理ポート

コンソールポート・コンソールケーブルによりPCと接続
WLCの設定や障害対応を行うために使われる
ディストリビューション
システムポート
・LANケーブルによりスイッチと接続(スイッチ側はトランクポート
・通常のトラフィックや管理トラフィックを送受信するために使われる
LAGに対応
サービスポート・LANケーブルによりスイッチと接続(スイッチ側はアクセスポート
・ネットワークの緊急時のシステムの復旧とメンテナンスで使用する
アウトオブバンド管理(通常トラフィックは流さない)なのでディストリビューションポートで服装などがあっても影響を受けない
離れた場所からWLCを操作
冗長ポート・LANケーブルによりWLCと接続
・大規模なネットワークでWLCを冗長化するために使われる
  • ディストリビューションシステムポート…スイッチとWLCを接続するための物理ポート
  • サービスポート…WLCを制御するための管理専用ポート、管理用と通常のトラフィックを完全に分離することができる。(out-of-band)

論理インターフェイス

インターフェイス特徴
Service Port
インターフェイス
サービスポートとの関連付されるインターフェイス
Management
インターフェイス
(管理インターフェイス)
・WLCやLightweight APの管理に使用
・Pingの宛先や、WLC間の通信の制御などで使用
APマネージャインターフェイスこのインターフェイスに割り当てられたIPアドレスは、Lightweight APがクライアントのフレームをCAPWAPでカプセル化して転送する際の宛先IPアドレスとして使用される。

Virtual
インターフェイス
(仮想インターフェイス)
・WLCのモビリティー機能で使用される。(モビリティー機能とは、複数のWLCでグループ構成し、クライアント情報などを共有する機能。)
・代理DHCPサーバや、Web認証などの宛先になる仮想的のインターフェイス
Dynamic
インターフェイス
(動的インターフェイス)
SSIDとVLANのマッピングを行うインターフェイス

GUIメニュー

  • WLCはコンソールポートを使った CLI(コマンドラインインターフェイス)による操作や、ブラウザを使った GUIによる操作が可能です。
  • CLIログインのタイムアウト値はデフォルトで「5分

GUIを使用して自立型APにアクセスする際、管理IPアドレスの設定必要

  • MONITOR …WLC・LAP・無線LANクライアントの情報を確認できます。
  • CONTOROLLER …WLCのインターフェースの設定などを行えます。
  • WLANs …WLANに割り当てるプロファイル名や SSIDなどの設定を行えます。「Band Select」機能を使用することで、アクセスポイントと無線LANクライアントがデュアルバンドに対応している場合に、5GHz帯の周波数を優先的に使用する
    • Layer 2タブ …WPA2-PSK
    • Layer 3タブ …Web認証の有効化/無効化
    • Advancedタブ …AAAオーバライドの設定を有効 ⇒RADIUSサーバが持つユーザ情報に基づいてユーザを特定のVLANに動的に割り当てることができます。
  • WIRELESS …LAPの設定を行えます。
  • SECURITY …RADIUSサーバの宛先指定などのセキュリティに関する設定を行えます。
  • MANAGEMENT …HTTP/HTTPSによるWLCへのアクセスを許可/拒否などの WLC自体の管理に関する設定を行えます。
  • COMMANDS …WLCへのコンフィグのダウンロードや、WLCからのコンフィグのアップロードなどの操作が行えます。

PMF

PMF(Protected Management Frame)はWLCで管理フレームのセキュリティを強化するためのサービスです。PMFの設定では以下の2つのパラメータを指定します。

  • Combackタイマー…関連付け要求を拒否されたクライアントが再度要求を施行するまでに待機する時間
  • SAクエリタイムアウト…WLCがSAクエリプロセス(なりすましのアソシエーション要求を拒否するために正当なクライアントとWLCの間で行われるやりとり)の待機する時間

シスコ3階層

https://ntorelabo.com/2022/10/07/%e4%bb%ae%e6%83%b3%e5%8c%96%e3%81%a8%e3%82%a4%e3%83%b3%e3%83%86%e3%83%aa%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af/#co-index-16

Cisco Meraki

Cisco Merakiとは、自律型アクセスポイント(AP)を始めとしたネットワーク機器の設定やネットワークの管理をクラウド上で行うシステムです。

  • クラウド上でネットワークを管理するシステムである
  • GUIで操作できる
  • 通常のAPを導入するには、APにコンソールケーブルを接続してCLIで設定を行う必要があります。
  • クラウド管理型の場合、LANケーブルを差し込みインターネットに接続するだけで、クラウド管理システムに事前に設定された情報を取得、自動で設定を適用しAPが利用可能になります(ゼロタッチ)。

WAN

WAN(Wide Area Network)は地理的に離れたLANとLANを相互に接続する広域ネットワークです。

【主なWANサービス】

WANサービス特徴、主なサービス名称プロトコル
専用線・シリアルインターフェイスを使用
・1対1で常時接続、ポイントツーポイント
コストが高い
・1つの回線を自社専用で借りるため、帯域とセキュリティと信頼性を確保できる
PPP
HDLC
広域イーサネット
(イーサネットWAN)
・イーサネットインターフェイスを使用
LANと同じインターフェースを使用する
LANと同じプロトコルを使用する
・専用線よりも高速通信が可能
・プロバイダが用意している独自の通信網を使うため、インターネットよりは危険が低い
EoMPLS
Ethernet
インターネットVPN・イーサネットインターフェイスを使用
・公衆回線を仮想的に専用線のように利用できる
IP

<専用線>

回線帯域幅
T4274.176Mbps
T344.736Mbps
T26.312Mbps
T11.544Mbps

CPE

CPE(Customer Premises Equipment)。
ユーザ宅内に設置される機器です。CPEとしてDTEDCEがあります。

  • DTEユーザー側の機器、ルータ、電話機、コンピュータ
  • DCEデータ回線終端装置、モデム
  • ローカルループ…分界点からサービスプロバイダの機器までの回線(アクセス回線
  • CSU/DSU…ISDN(デジタル通信網)やフレームリレーなどの通信回線とDTEのシリアルインターフェイスを相互接続する装置

DCE

DCE(Data Circuit terminating Equipment)。DCEはDTEの信号をアクセス回線に適した信号に変換します。

アナログ回線モデム
デジタル回線
ISDN(デジタル通信網)
CSU/DSU
(Channel Service Unit)/DSU(Digital Service Unit)
光ファイバ回線ONU(Optical Network Unit)

データリンク層のカプセル化

シリアルポイントツーポイントデータリンク層のプロトコルはHDLCPPPがあります。

HDLC

HDLC( High-level Data Link Control )は、シリアルインターフェースで専用線などのポイントツーポイント接続で使用するデータリンク層プロトコル。HDLCは、ISO( 国際標準化機構 )で標準化されていますが、ネットワーク層を識別するフィールドがないため複数のプロトコルを扱えないことからメーカの多くが独自方式をHDLCに実装し、ネットワーク層で複数のプロトコルを使用できるようにしています。

  • オプションとして認証機能を使用することができない。
  • CiscoルータはデフォルトでHDLCが設定されている。
  • HDLCはレイヤ2の技術である
  • Ciscoでは、ISO標準のHDLCにタイプフィールドを追加した、独自のHDLCを使用している

PPP

PPP( Point-to-Point Protocol )は、専用線、PSTN、ISDNなどのポイントツーポイント接続で最もよく使用されるデータリンク層のプロトコル。同期及び非同期のシリアル回線をサポートします。PPPはHDLCをベースに開発されていますが、PPPの場合プロトコルフィールドが設けられているのでIP、IPXなど複数のプロトコルを使用した環境をサポートします。また、PPPはオプションとして認証、圧縮、マルチリンク、エラー制御をサポートしています。

PPPを設定
(config-if)#encapsulation ppp
PPPの認証プロトコル

PAP 2ハンドシェイク

CHAP 3ハンドシェイク

PPP認証のデバッグ(PPP イベントを表示する)
#debug ppp authenthication

PPPoE

PPPoEとはPPPの機能をイーサネットLAN上で利用するためのプロトコルです。

  1. ディスカバリステージ
  2. PPPセッションステージ(PPPの認証
  • RFC2516で定義

物理インターフェイスと論理インターフェイスが対応しているか確認
show pppoe session

VPN

Virtual Private Network (仮想プライベートネットワーク)はインターネット接続とオンラインのプライバシーを保護する仕組みです。VPN接続は、仮想的な専用線(トンネル)を構築することで確立されます。

  • コスト削減
  • 通信を暗号化する
  • 通信相手の認証を行う
  • 拡張性(スケーラビリティ)

インターネットVPN

インタネットVPNには2つの接続形態があります。

  • サイト間VPN
  • クライアントVPN(リモートアクセスVPN

サイト間(Site-to-Site)VPN

  • 拠点間がVPNの端点
  • IPsecを使ったトンネル接続
  • 拠点内のクライアントはトンネルを通っている認識はない
  • ルータ同士でトンネル接続を行う

リモートアクセスVPN(クライアントVPN)

  • IPsecや、SSLまたはTLSを使ったVPN接続
    (SSL/TLSとはSecure Sockets Layer/Transport Layer Securityの略称であり、TLSは情報を暗号化するSSLの次世代規格です。)
  • Cisco AnyConnect

DMVPN

DMVPN(Dynamic Multipoint VPN)とは、複数の拠点を接続するVPNの設定作業を簡略化する、Cisco独自のVPN設計です。

  • トポロジのタイプはハブ&スポーク
  • シスコ独自
  • ハブルータの負荷を軽減
  • NHRP(next hop resolution protocol)プロトコルを使用して、IPsec-VPNゲートウェイのグローバルIPアドレスを解決します。
  • トンネルモードをマルチポイントGRE(mGRE)に設定する必要がある。

MPLS 

MPLS(Multi-Protocol Label Switching)マルチプロトコルラベルスイッチングではレイヤ2ヘッダとレイヤ3ヘッダの間に「ラベル」と呼ばれるタグを付加する技術です。IPv4、IPv6、IPXなど様々なプロトコルに対応

  • CE(Cusotmer Edge)…顧客側のルータ
  • PE(Provider Edge)…サービスプロバイダ側のルータ

レイヤ2ヘッダMPLSヘッダレイヤ3ヘッダ

<MPLSヘッダフォーマット>

  • ラベル(VPNなどで利用)
  • EXP(QoSで利用)
  • S(ラベルが続くかの情報)
  • TTL(生存時間)

<MPLSは以下の機能を実現>

  • ルータ間を高速転送
  • VPN(仮想的にネットワークを分離)
  • QoSに従ってパケットの転送に優先度を設定できる
  • IP-VPN

IP-VPNとは、地理的に離れた構内ネットワーク(LAN)同士を接続して一体的に運用するVPN(Virtual Private Network:仮想専用ネットワーク)の方式の一つで、通信事業者の運用するIP(Internet Protocol)ベースの閉域網を経由して拠点間を接続するもの。

  • 高速転送
  • VPN(各顧客のネットワークを仮想的に分離)
  • QoS(EXPフィールドに設定した値を使ったサービスクラス定義(Class of Service:CoS)に従って、パケットの転送に優先度が設定できる)
  • マルチプロトコル(IPv4、IPv6、Ethernet、ATM、フレームリレーなどをサポート)

IPsec

IPsec「Internet Protocol Security」はIPパケットを暗号化し、安全に接続する規格です。

  • ネットワーク層のセキュリティ技術
  • 機密性
  • 整合性
  • 送信元認証
  • リプレイ攻撃防止
  • ユニキャストしかできないというデメリット(GREとIPsecを組み合わせた GRE over IPsec VPNを使用することで、ブロードキャストやマルチキャストにも対応できるようになります。)
  • トランスポートモード:IPヘッダの暗号化は行わない
  • トンネルモード:IPヘッダを含めたパケットの全体

ISDN

ISDNとは、Integrated Services Digital Networkの略で、電話、映像、データを総合的に扱うデジタル回線である。

GRE

シスコが開発したトンネルリングプロトコル。トンネルインターフェイスを使用して仮想のポイントツーポイントの接続を構成。

GRE over IPsec

  • マルチキャストが使用可能である
    ⇒OSPFやRIPなどのルーティングプロトコルが使用できる
  • 暗号化を行う

【GREトンネルインターフェイスの状態がup/downの理由】

  • tunnel sourceで使用したインターフェイスがダウンしている
  • tunnel destinationのアドレスへのルートが存在しない
  • トンネルの宛先アドレスへのルートをトンネル経由で学習している

トンネルインターフェイスの作成
(config)#interface tunnel <number>

トンネルインターフェイスにIPアドレスを設定
(config-if)#ip address <ip-address> <subnet-mask>

GREトンネルの送信元IPアドレスの指定
(config-if)#tunnel source { <ip-address> | <interface> }

GREトンネルの宛先IPアドレスの指定
(config-if)#tunnel destination <ip-address>

トンネルモードをGREに設定(デフォルト)
(config-if)#tunnel mode gre ip

BGP

BGP(Border Gateway Protocol)は、AS間でルート情報の交換を行うEGPに分類されるルーティングプロトコルです。

【BGPの有効化】
(config)#router bgp <as-number>
(config-router)#neighbor <ip-address> remote-as <as-number>(ネイバーのIPアドレス、AS番号)
(config-router)#network 172.16.0.0 mask 255.255.255.0(サブネットアドレス)

BGPテーブルの表示
show ip bgp

EBGP

EBGP(External BGP)は異なるASに属するネイバーとルート情報を交換します。

  • ルータが調節接続されている必要がある。
  • デフォルトのアドミニストレーティブディスタンスの値はEBGPは20IBGPは200

Cisco AnyConnect

Cisco AnyConnect Secure Mobility Client

  • SSL/TLS VPNを使用する
  • リモートアクセスVPN構成である

ISP

企業がISP(Internet Service Provider:インターネット接続事業者)と契約しインターネットを接続する場合いくつかパターンがあります。

ISPとの接続リンク数接続するISPの数
シングルホーム11
デュアルホーム2本以上
マルチホーム複数

NAT(Network Address Translation)

プライベートIPアドレスをグローバルIPアドレスに変換する技術とされています。

  • IPアドレスを節約することができます。
  • 内部ネットワークのIPアドレスを隠蔽することができます。
  • 外部ローカルアドレスと外部グローバルアドレスは一般的に同じになり、グローバルIPアドレスになります。

<アドレスの定義>

考え方:変換前→ローカル、変換後→グローバル

  • 内部ローカルアドレス…内部ホストに割り当てられたIPアドレス(プライベートアドレスを使用)
  • 内部グローバルアドレス…外部ホストから見た内部ホストのIPアドレス、ISPから割り当てられる
  • 外部ローカルアドレス…内部ホストが宛先として指定する、外部ホストのIPアドレス
  • 外部グローバルアドレス…外部ホストに実際に割り当てられたIPアドレス

スタティックNAT

  • スタティックNATは1対1のアドレス変換を行います。
  • スタティックNATは双方向NATに分類されます。

<設定>

  1. ルータのインターフェイスにインサイド、アウトサイドを指定
  2. 内部ローカルアドレスと内部グローバルアドレスの組み合わせをNATテーブルに登録
内部/外部ネットワークの定義
(config-if)#ip nat inside
(config-if)#ip nat outside
スタティックNAT変換アドレスの定義
(config)#ip nat inside source static <local-ip> <global-ip>

ダイナミックNAT

  • ダイナミックNATはアドレスプールから内部グローバルアドレスを任意に選んで対応付けます。
  • 1対1のアドレス変換になります。
  • ダイナミックNATは1方向NATに分類されます。

<設定>

  1. ルータのインターフェイスにインサイド、アウトサイドを指定
  2. 返還の対象となる内部ローカルアドレスのリストを作成
  3. アドレスプールを作成
  4. 内部ローカルアドレスリストとアドレスプールを紐付ける
①内部/外部ネットワークの定義
(config-if)#ip nat inside
(config-if)#ip nat outside
②変換対象となる内部ローカルアドレスをACLで指定
(config)#access-list <acl> permit <source> [ <wildcard> ]
③NATテーブルの作成
(config)#ip nat pool <pool-name> <start-ip> <end-ip> { netmask <mask> | prefix-length <length> }
④ダイナミックNATの定義
(config)#ip nat inside source list <acl> pool <pool-name>

NAPT

PAT

※NAPTは一般的な呼び方でPATはCISCOの独自の呼び名です 

  • NAPT(Network Address Port Translation)
  • 複数の内部ローカルアドレスを1つ内部グローバルアドレスに変換する技術
  • 1方向NAT
  • overloadオプションを付加することで、ポート番号を含めたアドレス変換が可能になります。
  • RFC2663ではNAPTで規定していますが、シスコではPAT(Port Address Translation)の名称で呼ばれています。
  • 複数のローカルアドレスに対して1つのグローバルアドレスを対応づける方式です。
  • overloadキーワードを付与するとPATが有効になります。
  • IPv4アドレスの枯渇対策
(config)#ip nat inside source list [ ACL番号 ] interface [ インターフェイス ] [ overload ]

【PATの設定手順】

  1. 標準ACLで内部ローカルアドレスを指定(名前付きACLでも指定可能)
  2. アドレスプールの定義(3の内部グローバルアドレスで使用する場合)
  3. 内部ローカルアドレスと内部グローバルアドレスの対応付け
  4. インターフェースへのNAT設定(内部と外部)

順番はいずれからでも設定可能です。

RFC1918

IPv4のグローバルアドレスの枯渇問題を軽減するために作成されたプライベートアドレスのアドレス空間はRFC1918で予約されています。

【プライベートアドレスの範囲】

クラス範囲
A10.0.0.0 〜 10.255.255.255
B172.16.0.0 〜 172.31.255.255
C192.168.0.0 〜 192.168.255.255

NATテーブル

  • スタティックNATの変換アドレスは常にNATテーブルに載っている
NATテーブルの内容を確認する
#show ip nat translations
NATテーブルの内容を削除
#clear ip nat translations
NextAuth Githubアカウントを利用

そもそも認証とは

認証とは、「あなたが本当にあなたであること」を確認するプロセスです。

ユーザー アプリ 認証プロバイダー (GitHub/Google/Email等) 1. ログイン要求 2. 認証リクエスト 3. 認証情報返却 主な認証方式: – ソーシャルログイン: GitHub, Google, Twitter, Facebook等 – メール/パスワード認証: 独自のユーザーデータベースを使用 – Magic Links: メールアドレスのみでワンタイムリンクを使用
https://authjs.dev/

手順

パッケージをインストールします

npm install next-auth

認証の設定ファイルを作成します

app/api/auth/[…nextauth]/route.tsを作成します

import NextAuth from "next-auth"
import GithubProvider from "next-auth/providers/github"

const handler = NextAuth({
  providers: [
    GithubProvider({
      clientId: process.env.GITHUB_ID!,
      clientSecret: process.env.GITHUB_SECRET!,
    }),
  ],
})

export { handler as GET, handler as POST }

環境変数を設定します

プロジェクトのルートに.envファイルを作成します

GITHUB_ID=あなたのGitHub Client ID
GITHUB_SECRET=あなたのGitHub Client Secret
NEXTAUTH_SECRET=任意の安全な文字列
NEXTAUTH_URL=http://localhost:3000

GitHubの認証情報を取得

GitHub.comにログイン Settings > Developer settings > OAuth Apps “New OAuth App”をクリック 以下を入力:

NextAuthのプロバイダーを設定します

app/layout.tsxを編集します

import { SessionProvider } from "next-auth/react"

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html>
      <body>
        <SessionProvider>{children}</SessionProvider>
      </body>
    </html>
  )
}

ログインボタンを作成します

app/page.tsxを編集します

'use client'
import { signIn, signOut, useSession } from "next-auth/react"

export default function Home() {
  const { data: session } = useSession()

  if (session) {
    return (
      <div>
        <p>ようこそ, {session.user?.name}さん</p>
        <button onClick={() => signOut()}>ログアウト</button>
      </div>
    )
  }

  return (
    <div>
      <p>ログインしていません</p>
      <button onClick={() => signIn('github')}>GitHubでログイン</button>
    </div>
  )
}

動作確認:

  1. http://localhost:3000 にアクセス
  2. 「GitHubでログイン」ボタンをクリック
  3. GitHubの認証画面が表示され、承認後にログイン完了

IPv6

ISP(Internet Service Provider)…エンドユーザーにIPv6の割り当てをしている

  • IPv4のアドレス枯渇問題を解決するため32ビットから128ビット(16ビットずつ8個のフィールドでフィールドでフィールドで16進数で表記)に拡張
  • ヘッダの簡素化
  • ブロードキャストの廃止
  • 階層構造による効率的なルート集約
  • 自動設定
  • IPsecのサポート必須

IPv6には、次の3種類のアドレスがあります。

  • ユニキャスト‥1体1の通信で利用される単一インターフェイス用のアドレス
  • マルチキャスト‥特定のグループに対する通信で利用されるアドレス
  • エニーキャスト‥グループ内の最も近いデバイスとの通信で利用されるアドレス
アドレス説明・覚え方
fc00::/7
ユニークローカルユニキャストアドレス
FC Tokyo 7人のユニークな住所はプライベートな話題
FE80::/10リンクローカルアドレス
鉄也を十分リンスしろ
FF0e::1同じインターネット上の全てのノードに送信
FF01::1同じノード上の全てのノードに送信
FF02::1同じリンク上の全てのノードに送信
FF02::5同じリンク上の全てのOSPFルータ
FF02::6同じリンク上の全てのOSPF指定ルータ
FF02::9同じリンク上の全てのRIPルータ
FF02::101同じリンク上の全てのNTPサーバ
FF05::1同じサイト内の全てのノードに送信
FF05::101サイトローカル上の全てのNTPサーバ
FF08::1同じ拠点内の全てのノードに送信

IPv6ヘッダ

  • フィールドの簡素化⇒処理が簡単に
  • IPv6ヘッダの方がサイズが大きくなっている
  • 40バイト固定長
  • チェックサムの削除
  • フローラベル(効率的にアプリケーションフローを識別)の追加
  • オプション機能は拡張ヘッダ
  • ルータでのフラグメント処理は禁止
  • ホップリミットは(IPv4のTTL:Time To Live生存期間)に相当

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

  • 世界中で一意
  • IANAで管理される
  • 最初の3ビットが001で始まる、2000::/3で表記されます。
  • 2001::/16 インターネット用のアドレス
  • 2002::/16 6to4トンネリング用のアドレス
  • 2003::/16〜3FFD::/16 役割が未定

グローバルプレフィックス(ランダム値、48ビット) サブネット(16ビット) インターフェースID(64ビット)

  • グローバルプレフィックス、サブネット、インターフェースIDの3フィールドで構成される
  • 前半64ビットはIPv4のネットワークアドレスに該当する
  • 一般的に64ビットのインターフェースIDを使用する

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

  • ホスト間で一意となる。
  • 同じサブネット上(同一リンク間)での通信が可能なアドレス
  • 最初の10ビットが1111111010で始まる、FE80::/10で表記されます。
  • 最初に続く54ビットは0
  • IPv6を扱う必ずインターフェース全てに設定されます。
  • ルーティングの対象になりません、このアドレスが送信元や宛先となっている場合、ルータはデータを転送しません。
  • リンクローカルアドレスを手動で設定しない場合、自動生成されたリンクローカルアドレスが設定される

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

  • 企業などのローカルで使用されるアドレスで、IPv4のプライベートIPアドレスに相当します。
  • 最初の7ビットが1111110で始まる、FC00::/7で表記されます。

fd ランダム値(40ビット) サブネット(16ビット) インターフェースID(64ビット)

ユニキャストアドレスの特別なアドレス

  • ::/128 未指定アドレス
  • ::1/128 ループバックアドレス
  • ::FFFF:<IPv4> IPv4射影アドレス
    (例 0:0:0:0:0:FFFF:192.168.10.1)

マルチキャストアドレス

エニーキャストアドレス

エニーキャストアドレスでは、複数ノードのインターフェースに対して同じユニキャストアドレスを割り当てます。エニーキャストアドレス宛のパケットはそのアドレスを持つ最も近いノードのインターフェースに転送されます。

エニーキャストを使用しることでサーバの冗長化と負荷分散ができます。

IPv6アドレス割り当て

設定方法設定範囲
手動設定128ビット(config-if)#ipv6 address (アドレス/プレフィックス長)IPv6アドレス全桁設定
手動設定64ビット(config-if)#ipv6 address (サブネットID/64) eui-64サブネットIDを手動設定しインタフェースIDをeui-64で自動設定
ステートレス
自動設定
(SLAAC)
指定なし(config-if)#ipv6 address autoconfig [default]インタフェースIDをeui-64で自動設定
ステートフル
自動設定
(DHCPv6)
指定なし(config-if)#ipv6 address dhcp

EUI-64

EUI-64による自動生成は、48ビットのMACアドレスの中央に16ビットの「FFFE」を追加して64ビットに拡張することでインターフェースIDが生成されます。

  1. 48ビットを24ビットに分割
  2. 16ビットのFFFEを挿入
  3. インターフェイスの元のMACアドレスの7番目のビットを反転

インターフェイスをEUI-64で自動生成する場合はコマンドの末尾にeui-64キーワードを付加します。

(config-if)#ipv6 address <ipv6-address> / <prefix-length> [ eui-64 ] [ anycast ]

IPv6アドレスの手動設定

ルータのインターフェイスに対してIPv6ユニキャストアドレスを手動設定するには、ipv6 addressコマンドを使用してIPアドレスとプレフィックス長を設定します。

IPv6アドレスの自動設定

SLAAC

手動設定、DHCPサーバによる自動設定に加え、IPv6ではSLAAC(Stateless Address Auto Configuration : ステートレスアドレス自動設定)という自動設定機能があります。

  • SLAACのRAメッセージには64bitのプレフィックスが含まれる
  • 各ホストのIPv6アドレス=ルータが送信したプレフィクス(64ビット) +modified EUI-64形式でMACアドレスから生成したインタフェースID(64ビット)

(config-if)#ipv6 address autoconfig

前半64bit後半64bit
(アドバタイズされた)
リンクローカルプレフィックス
インターフェースID

IPv6ネイバーテーブル

IPv4のARPテーブルに似た役割を持ちます。

#show ipv6 neighbors

IPv6の近隣探索(ND)

ネイバー検出は、同じリンク上の異なるノードが近隣に存在をアドバタイズし、近隣の存在について学習できるプロトコルです。

IPv4ではデータリンク層のアドレス(MACアドレス)を解決するために、ARPブロードキャストによりアドレスを解決します。IPv6ではNeighbor Discovery(ND)機能を使用しアドレスを解決しています。

タイプメッセージ
133RS:Router Solicitation(ルータ要請)
134RA:Router Advertisement(ルータ広告)
135NS:Neighbor Solicitation(近隣要請)
136NA:Neighbor Advertisement(近隣通知)
137Redirect(リダイレクト)

IPv6ルーティングの有効化

(config)#ipv6 unicast-routing

IPv6への移行技術

デュアルスタック

デュアルスタックとは、IPv4とIPv6の両方のプロトコルが処理できるように構築することです。

トランスレータ

トランスレータは、パケット変換を行います。(カプセル化しない)
NAT-PT、NAT64などの種類があります。

手動トンネル

デュアルスタックルータを使用してIPv6パケットをIPv4プロトコルでカプセル化する。

管理者が宛先と送信元のルータを手動で設定します。

GREトンネル

IPv6パケット以外にも多くのパケットを転送できます。手動トンネルよりもオーバーヘッドが大きくなります。

自動トンネル(6to4トンネル)

IPv4グローバルアドレスを一つ以上持つサイトに対してIPv6アドレスを割り当て、カプセル化したIPv6パケットを転送します。

IPv6アドレスの名前解決

pingコマンドやtalentコマンドを実行する際に、長いIPv6アドレスを指定するのは面倒です。そこでホスト名とIPv6アドレスのマッピング情報を事前に用意しておくと、ホスト名を指定して通信できるため便利です。

ホスト名とIPv6アドレスのマッピング情報の登録
(config)#ipv6 host <word> <ipv6-address1> [ <ipv6-address> ……<ipv6-address4> ]
*word…任意のホスト名、*IPv6-address…最大4つまで指定

IPv6 ACL

IPv6でサポートするのは、名前付きACLのみです。

IPv6はアドレス解決にARPではなくICMPを使用します。そのため、IPv6 ACLではIPv6近接探索を有効するために、「暗黙のpermit」条件も設定されています。

  • permit icmp any any nd-ns(ICMP NSを許可)
  • permit icmp any any nd-na(ICMP NSを許可)
  • deny ipv6 any any

【ACLを作成】

Exampleという名前でIPv6 ACLを作成
(config)#ipv6 access-list Example

サブネット2001:db8: 0:1::/64からサーバ2001:db8:0:3::200へのUDPトラフィックを無視する
(config-ipv6-acl)#deny udp 2001:db8: 0:1::/64 host 2001:db8:0:3::200

ホスト2001:db8:0:1::11からのTelnetを全て拒否する
(config-ipv6-acl)#deny tcp host 2001:db8:0:1::11 any eq telnet(またはeq 23)

その他IPv6トラフィックを全て許可する
(config-ipv6-acl)#permit ipv6 any any(省略可能)

ルータのFa0/0インターフェイスのアウトバウンド方向にIPv6 ACL「Example」
(config)#interface fa0/0
(config-if)#ipv6 traffic-filter Example out

「2001:db8:0:3::/64からのpingを拒否する」条件のステートメントをシーケンス番号15で追加
(config-ipv6-acl)#sequence 15 deny icmp 2001:db8:0:3::/64 any any echo-request

IPv6 ACLの検証

IPv6 ACLの表示
#show [ ipv6 ] access-list [ <acl-name> ]

インターフェイスへ適用したACLの確認
#show ipv6 interface [ <interface-id> ]

NDP

NDP(Neighbor Discovery Protocol:近隣探索プロトコル)

<NDPの機能>

  • MACアドレスの解決(IPv4のARPに相当)
  • SLAAC(StateLess Address Auto Configuration:アドレスの自動設定)
  • DAD(Duplicate Address Detection:重複アドレスの検出)
  • 同一セグメント上の機器を探索する

<NDPとICMPv6>

  • ICMPv6パケットを使用する
  • NDPは同一セグメント上のデバイスのMACアドレスを調べるために以下ICMPv6パケットを使用します。
    • NS(Neighbor Solicitation:近隣要請):MACアドレスを問い合わせるパケッ
    • NA(Neighbor Advertisement:近隣広告):NSへの応答パケット
  • NDPは同一セグメント上のデバイスのIPv6アドレスを調べるために以下のICMPv6パケットを使用します。
    • RS(Router Solicitation:ルータ要請):RAを要請するパケット
    • RA(Router Advertisement:ルータ広告):セグメントのプレフィックスなどを伝えるパケット

ICMPv6

ICMPv6は、IPv6用のICMPです。

  • エラー通知:パケットが破棄された理由を送信元に通知する機能
  • 近隣探索:同一セグメント上のデバイスのアドレスを調べる機能(NDやNDPとも呼ばれる)

ACL

アクセスリスト(ACLAccess Control List)は、特定のパケットフローを識別し制御するための条件を記述したリストです。

ACLを使用すると、ルータを通過するパケットのフィルタリングを行うことができます。※ルータ自身から発信されるパケットはフィルタリングの対象にはなりません。

<ACLの種類>

  • 標準ACL…条件として送信元IPアドレスだけ指定できる宛先に近い位置に設置推奨(不要なフィルタリングを防ぐため)。
  • 拡張ACL…条件として送信元IPアドレス、宛先IPアドレス、プロトコル、送信元ポート番号、宛先ポート番号を指定できる。送信元に近い位置に設置推奨。

<ACLの照合>

  • シーケンス番号の小さい順(小さい順)に行われる
  • 限定された条件ほど先に設定する必要がある
  • ACLの最終行には自動的に「暗黙のdeny」が存在する

番号付きACL

番号を指定して作成するACL

番号付き標準ACLの作成
(config)#access-list <acl-number> { permit | deny | remark } <source> [<wildcard>] [ log ]
*permit‥許可、*deny‥拒否

番号付き標準ACLをインターフェイスに適用
(config-if)#ip access-group <acl-number> { in | out }

番号付き拡張ACL

条件に送信元IPアドレスだけでなく、宛先IPアドレスやプロトコル、ポート番号を指定できます。

指定可能な項目とその順番

  1. プロトコル
  2. 送信元アドレス
  3. 送信元ポート(オプション)
  4. 宛先IPアドレス
  5. 宛先ポート(オプション)

番号付き拡張ACLの作成
(config)#access-list <acl-number> { permit | deny | remark } <protocol> <source> <wildcard> [<operator-port>] <destination> <wildcard> [<operator-port>] [established] [ log ]
*source‥送信元アドレス、*destination‥宛先アドレス、*log‥パケットが条件に一致した場合にログメッセージを表示(オプション)

<番号付き拡張ACLステートメントの例>

条件ステートメントの例
192.168.1.64/27から全てのping(ICMPエコー/エコー応答)を許可access-list 100 permit icmp 192.168.1.64 0.0.0.31 any echo
access-list 100 permit icmp 192.168.1.64 0.0.0.31 any echo-reply
プロトコル・種類ACL番号
IPv4標準1〜99、1300〜1999
Ipv4拡張100〜199、2000〜2699
Apple Talk600~699
IPX標準800~899
IPX拡張900~999
プロトコルプロトコルナンバー
ICMP1
TCP6
UDP17
EIGRP88
OSPF89

名前付きACL

名前を指定して作成するACLです。、標準拡張IPアクセスリストがあります。

名前付きACLの作成(標準/拡張)
(config)#ip access-list < standard/extended > < acl-name >

インバウンドACL、アウトバウンドACL

  • インバウンドACLACL照合⇒ルーティングテーブル参照
  • アウトバウンドACLルーティングテーブル参照⇒ACL照合
  • パケットフィルタリングのためにインターフェースに適用できるACLの数は、レイヤ3プロトコル(IPやIPX)ごとに in方向とout方向に1つずつ

ワイルドカードマスク

ACLのステートメント(条件文)の中でIPアドレスを指定するときには、ワイルドカードマスクを使用します。

  • 0を指定した場合一致
  • 1を指定した場合無視

プロトコルとポート番号

ポート番号TCP/IPプロトコル用途
20TCPftp-dataファイル転送(データ本体)
21TCPftpファイル転送(コントロール)
22TCPsshリモートログイン(セキュア)
23TCPtelnetリモートログイン
25TCPsmtpメール送信
53TCP/UDPdomainDNS(名前解決はUDP,ゾーン転送はTCP)
66bootpc
67bootpc
69UDPTFTPファイル転送
80TCPhttpwww
110TCPpop3メール受信
123UDPNTP時刻合わせ
143TCPimapメール受信
161UDPSNMP通信機器の監視、制御。
443TCPhttpswww(セキュア)
520UDPRIPルーティングプロトコル

VTYポート

TelnetやSSHなどのリモートアクセスは、ルータのリモートアクセス用の仮想ポートで処理されます。この仮想ポートのことをVTYポートと呼びます。ルータにTelnetやSSHでアクセスした場合、物理インターフェイスではなくVTYポートにログインする形になります。

このVTYポートにACLを割り当てることでTelnetやSHHのリモートアクセスを効率よく制御できます。

アクセスクラス(access-class)

仮想回線に適用するアクセスリストのことをアクセスクラスと言います。アクセスクラスを使うことにより、ルータへのTelnetアクセスを制限できます。

仮想回線(vty回線)にアクセスリストを適用する

Router(config)#line vty 0 4
Router(config-line)#access-class {アクセスリスト番号} {in | out}

ACLステートメントの編集

シーケンス番号によるステートメントの挿入

■標準ACL
(config)#ip access-list standard { <acl-number> | <acl-name> }
(config-std-nacl)#<sequence-number> { permit | deny } <source> [ <wildcard> ] [log]

■拡張ACL
(config)#ip access-list extended { <acl-number> | <acl-name> }
(config-ext-nacl)#<sequence-number> { permit | deny } <protcol> <source> <wildcard> [ <operator-port> ] <destination> <wildcard> [ <operator-port> ] [ established ] [log]

標準ACL

ステートメントの確認

ACLの表示

#show [ ip | ipv6 ] access-lists [ 番号 | 名前 | interface { インターフェイス } ] [ in | out ]

・全てのACLの表示…show access-lists
・ACL100の表示…show access-lists 100

ステートメントの削除

ACL99にあるシーケンス番号20のステートメントを削除
(config)#ip access-list standard 99
(config-std-nacl)#no 20

OSPF

OSPF (Open Shortest Path First)は以下の特徴があります。

  • リンクステートルーティングプロトコル
    リンクステート型のルーティングプロトコルのため、リンクステート情報を交換します。
    ディスタンスベクター型よりも高速なコンバージェンスを実現します。
    (ルートまたはメトリックに変更があった場合、トリガーアップデートによって変更情報を通知し、LSDB、ルーティングテーブルに反映させます。⇒高速)
  • クラスレスルーティングプロトコル
    VLSM(variable length subnet mask)可変長サブネットマスクや不連続サブネットをサポートし、アドレスを効率的に使用できます。
  • メトリックはコスト
    メトリックには、リンクの帯域幅をもとにしたコストを使用しています。

  • エリアの概念による階層型ルーティング
    不安定なネットワークによる影響もエリア内のルータに抑えることができ、コンバージョンも高速になります。
    エリアの境界ではルート情報を1つに集約することができ、ルーティングテーブルのサイズも小さくなり、ルーティングのオーバーヘッドも減少します。

LSA

OSPFルータはルーティングテーブルではなく、LSA(Link State Advertisement:リンク状態広告)と呼ばれるリンクステート情報を交換します。

LSAはLSDB( Link State Database :トポロジテーブル)に格納されます。
各ルータはLSDBに格納されたLSAからネットワーク全体のトポロジ図を把握しています。

OSPFはネイバーを検出すると、LSAを交換し合いSPFアルゴリズムを用いて最適パスを計算します。

<OSPFのテーブル>

  • ネイバーテーブル‥認識しているネイバーのリスト
  • LSDB(トポロジテーブル)‥LSAを格納したデータベース
  • ルーティングテーブル‥実際のルーティングで使用される最適ルートのリスト

<OSPFのパケット>

Helloネイバー関係を確立、維持するためのパケット
DBDDataBase Description。LSDBに含まれるLSAのリストをネイバーに提示し、同期するためのパケット
LSRLink State Request。ネイバーにLSAを要求するためのパケット
LSULink State Update。ネイバーから要求されたLSAを送信するためのパケット
LSAckLink State Acknowledgement。DBDやLSUの受信による確認応答

※OSPFルータがトポロジデータベースの構築および維持するために必要な情報
Helloパケット、LSA

Helloパケット

Helloパケットは、224.0.0.5のマルチキャストアドレスで定期的に送信されます。

<Helloパケットに含まれる情報

  • ルータID
  • ネットワークマスク
  • Hello/Deadインターバル
  • ネイバーリスト
  • エリアID
  • OSPFプライオリティ
  • DR/BDRのIPアドレス
  • 認証パスワード
  • スタブエリアフラグ

<2台のOSPFルータ間でLSDBの同期を完了するまでの手順>

  1. DOWN状態…起動直後、Helloパケットをまだ受信していない状態
  2. INIT状態…受信したHelloパケット内のネイバーリストに自身のルータIDがなく、双方向通信は確立していない状態
  3. 2WAY状態…双方でHelloパケットを受信し、お互いに存在を認識した状態、双方向通信が確立
  4. EXSTART状態…先にDBDパケットの送信を開始するルータ(マスター)と後からDBDを送信するルータ(スレーブ)を決定している状態
  5. EXCHANGE状態…自身のLSDBで保持しているLSAのリスト(要求情報)を提示している状態です。
  6. LOADING状態…自身のLSDBに存在しないLSA情報があれば、LSAパケットを送信して要求します。
  7. FULL状態…必要なLSA情報を全て受け取り、LSDBが完全に同期された状態

<ネイバー関係の確立>

  • Helloインターバル
  • Deadインターバル
  • エリアID
  • サブネットマスク
  • 認証パスワード
  • スタブエリアフラグ

※ルータIDが重複しているとネイバー関係を確立できません。

OSPFの設定

基本的なOSPFの設定は、次の2つの手順になります。

  1. OSPFプロセスの有効化
  2. OSPFを有効にするインターフェイスとエリアの設定

<①OSPFプロセスの有効化>

OSPFを有効化するには、以下のコマンドを使用します。

(config)#router ospf < process-id >

プロセスID

  • プロセスIDとは、1台のルータ上で複数のOSPFプロセスを起動するときに、データベース内の情報を識別するための番号です。
  • プロセスIDは1〜65535の中から任意の番号を指定

<②OSPFを有効にするインターフェイスの指定>

インターフェイスでOSPFを有効化すると、OSPFパケットが送受信されます。また、そのインターフェイスのネットワークアドレスは、OSPFネットワークの一部としてアドバタイズされます。

  • network コマンド
  • ip ospf コマンド

OSPFを有効化するインターフェイスの指定(ワイルドカードマスクとともに指定します。)

(config-router)#network < address > < wildcard-mask > area < area-id >
*address…ネットワークアドレス、サブネットアドレス、インターフェイスのIPアドレスのいずれか

インターフェイスでOSPFを有効化する

(config)#router ospf < process-id >
(config)interface < interface >
(config-if)#ip ospf < process-id > area < area-id >

DR、BD

OSPFでは、イーサネットのようなマルチアクセスネットワークでDRと、BDRが選出されます。

  • DR (Designated Router)…LSAの交換を取りまとめる代表ルータ
  • BDR(Backup Designated Router)…DRのバックアップとして動作するルータ
  • DROTHER…プライオリティは0、0だとDR、BDRに選出されない

プライオリティ

  • OSPFルーターのランク付けに使用する
  • 0~255の範囲で任意に設定できます。初期値は1です。
  • ルーター全体で一つの値を設定するのではなく、インターフェースごとに個別の値を設定します。
  • プライオリティは0、0だとDR、BDRに選出されない

OSPFプライオリティの設定
Router(config-if)#ip ospf priority < priority >

<DRとBDRの選出方法>

DRとBDRはセグメントごとに選出されます。

  1. OSPFプライオリティ値が最も大きいルータがDRになる。
    2番目に大きいルータがBDRになる。

  2. OSPFプライオリティ値が同じ場合、ルータIDが最も大きいルータがDR、2番目に大きいルータがBDR。

ルータIDの決定優先順

  1. router-idコマンドで手動で定義
  2. ループバックインターフェースがあれば最も大きいIPアドレスがルータID
  3. ルータのアクティブな物理インターフェース上最も大きいIPアドレスがルータID

※ただし、ルータIDが決まった後にルータIDとして優先的に採用される別の値が設定されてもルータIDは変わりません。ルータIDを変更したい場合はOSPFプロセス)を再起動する必要があります。

ループバックインターフェイス

管理者が自由に作成できる仮想的なインターフェイスです。

<DRとBDRの動作>

  • 224.0.0.5‥全OSPFルータ宛
  • 224.0.0.6‥DR、BDR宛

OSPFネットワークタイプ

OSPFではリンクの種類に応じて、次の5つのネットワークタイプが定義されています。

  • ポイントツーポイント
  • ブロードキャストマルチアクセス
  • NBMA(ノンブロードキャストマルチアクセう)
  • ポイントツーマルチポイント
  • ポイントツーマルチアクセスノンブロードキャスト

■OSPFのネットワークタイプの設定(インターフェイスコンフィグレーションモード)
(config)#interface [ インターフェイス ]
(config-if)#ip ospf network [ broadcast | point-to point ]

5つのNBMAモードネイバー検出DR/BDR選出適切なトポロジーip ospf network –Hello/Dead
NBMA手動フルメッシュnon-broadcast 30/120
ブロードキャスト自動フルメッシュbroadcast10/40
ポイントツーポイント自動スター
( サブInterface使用 )
point-to-point10/40
ポイントツーマルチポイント自動スターpoint-to-multipoint30
ポイントツーマルチポイント
(Non Broadcast )
手動スターpoint-to-multipoint
nonbroadcast
30

マルチエリアのOSPF

OSPF階層構造

  • バックボーンエリア…エリア間のトラフィックを中継するエリア。エリア0を設定するとバックボーンエリアとして認識される。
  • 標準エリア…バックボーンエリア以外のエリア。必ずバックボーンエリアに接続していなければならない。
  • スタブエリア…無駄なLSAトラフィックを少なくするために考えられたエリア。ASBRから再配布された外部ルート(LSA5)を受信せず、スタブエリアとの接続点にいるABRがスタブエリアに注入してくれたデフォルトルートを使用して、非OSPFネットワークにアクセスする。※スタブエリアは、ASBRの配置不可。仮想リンク設定不可。バックボーンでは不可。

LSAにはいくつかのタイプがあり、その性質から特定のエリアないだけでフラッティングされるものがあります。

  • LSAタイプ1:ルータLSA
    全てのルータが生成、エリア内フラッディング
  • LSAタイプ2:ネットワークLSA
    DRルータが生成、エリア内フラッディング
  • LSAタイプ3:ネットワーク集約LSA
    ABRルータが生成、OSPFドメイン全体フラッディング
  • LSAタイプ4:ASBR集約LSA
    ABRルータが生成、OSPFドメイン全体フラッディング
  • LSAタイプ5:AS外部LSA
    ASBRルータが生成、OSPFドメイン全体フラッディング
OSPFルータのタイプ説明
内部ルータ 内部ルータは、全てのインターフェースを同じエリアに接続しているルータ。
バックボーンルータ バックボーンルータは、1つ以上のインターフェースをバックボーンエリアに接続しているルータ。
ABR
( Area Border Router)
 エリア境界ルータ。ABRは、異なるエリアを接続しているルータ。ABRではエリアごとの LSDB を
 保持しており、エリア間のルーティングを行う。ABRでは異なるエリアのリンクステート情報を集約
 して内部ルータに通知するので内部ルータのLSDBのサイズは縮小できる。集約ルートはABRで設定。
ASBR
( AS Boundary Router )
 AS境界ルータ。ASBRは、1つ以上のインターフェースが外部ASのルータと接続しているルータ。
 外部ASのルータとは、例えばRIPを稼働しているルータなどの非OSPFネットワークにいるルータ。
 ASBRにルート再配送をすることにより、OSPFネットワークと非OSPFネットワークとが通信できる。

OSPFのメトリック

宛先ネットワークまでの各インターフェイスのコストの合計値になります。

デフォルトのコスト = 基準帯域幅100(Mbps) ÷ インターフェイスの帯域幅(Mbps)

下記コマンドによって基準帯域幅(デフォルトの100Mbpsから)やインターフェースの帯域幅を変更する場合がある

例)基準帯域幅を「10000Mbps」に設定
auto-cost reference-bandwidth 10000

例)インターフェイス帯域幅を「10000000Kbps」に設定
bandwidth 10000000

【負荷分散】
同じ宛先の最小メトリックのルートが複数ある場合、その複数ルートを使ってパケット送信します。

OSPFのコマンド

モードプロント説明
ユーザモード>Pingなどの一部のコマンドしか使用できないモード
特権EXECモード#設定などの情報を確認できるモード
グローバル
コンフィグレーションモード
(config)#デバイス本体に関する設定を行うモード
ライン
コンフィグレーションモード
(config-line)#アクセス回線に関係する設定を行うモード
インターフェイス
コンフィグレーションモード
(config-if)#インターフェイスに関係する設定を行うモード
ルータ
コンフィグレーションモード
(config-router)#ルーティングプロトコルの設定を行うモード

■OSPFの有効化(ルータコンフィグレーションモード)
(config)#router ospf [ プロセスID ]
(config-router)#network [ アドレス ] [ ワイルドカードマスク ] area [ エリアID ]

プロセスID1~65535の中から任意の番号を指定。(OSPFの内部処理のために使用される番号なので、他のルータと一致させる必要はない)
アドレスOSPFを有効にしたいインターフェイスのネットワークアドレス、またはIPアドレスを指定
ワイルドカードマスクアドレスを読み取るためのワイルドカードマスク
エリアID所属させるエリアIDを指定(シングルエリアOSPFの場合は0を指定)

■OSPFの有効化(インターフェイスコンフィグレーションモード)
(config)#interface [ インターフェイス ]
(config-if)#ip ospf [ プロセスID ] area [ エリアID ]

■LSDBの情報を確認する
#show ip ospf database

OSPFルートの検証
show ip routeコマンドを使用してルーティングテーブルを確認します。最後にospfを付加すると、OSPFルートのみ確認できます。
#show ip route [ ospf ]

<OSPFを確認するコマンド>

ルータID、タイマー、接続しているエリア、SPFアルゴリズムの実行回数、LSA情報など表示
#show ip ospf
■ネイバーを確認
#show ip ospf neighbor
OSPFが動作するインターフェイスの情報を確認
コスト、OSPFプライオリティ、Hello/Deadインターバル*、インターフェイスのアドレス、DR/BDRのルータIDとIPアドレス、エリアID*などを確認できます。

#show ip ospf interface [ brief ]

(※brief‥OSPFが有効なインターフェイスの要約情報を表示)
*ネイバー確立

Router1# show ip ospf interface xxxx
xxxx is up, line protocol is up 
  Internet Address xx.xx.xx.xx/xx, Area x 
  Process ID 1, Router ID xxx.xxx.xx.x, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State BDR, Priority 1 
  Designated Router (ID) xxx.xx.xx.xx, Interface address 10.10.10.2
  Backup Designated router (ID) xxx.xxx.xx.xx, Interface address 10.10.10.1
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:06
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 2, maximum is 2
  Last flood scan time is 0 msec, maximum is 4 msec
  Neighbor Count is 1, Adjacent neighbor count is 1 
    Adjacent with neighbor 172.16.10.1  (Designated Router)
  Suppress hello for 0 neighbor(s)
#show ip ospfルータID、タイマー、接続しているエリア、
SPFアルゴリズムの実行回数、LSA情報
#show ip ospf neighbor
#show ip ospf interface [ brief ]コスト、OSPFプライオリティ、Hello/Deadインターバル、インターフェイスのアドレス、DR/BDRのルータIDとIPアドレス、エリアID
(※brief‥OSPFが有効なインターフェイスの要約情報を表示)
■MTU不一致の検出を停止
MTU不一致によるネイバー関係の問題を解決

ip ospf mtu-ignore

基準帯域幅の設定
デフォルトは100Mbs
(config)#router ospf [ プロセスID ]
(config-router)#auto-cost reference-bandwidth [ 基準帯域幅 ]


インターフェイスの帯域幅の設定
コストを算出する際に参照する帯域幅を変更
(config)#interface [ インターフェイス ]
(config-if)#bandwidth [ 帯域幅 ]

基準帯域幅(Mbps)1〜4292967の中から指定
インターフェイスの帯域幅(kbps)1〜1000000の中から指定
OSPFのコスト基準帯域幅÷インターフェイスの帯域幅
※必ず整数値で小数点以下は切り捨て

■ハロータイムを設定するコマンド

switch(config)#spanning-tree vlan { VLAN番号 } { タイマーの種類 } { 秒 }
タイマーの種類…hello-time 、max-age 、foward-time いずれか指定

パッシブインターフェイス

パッシブインターフェイスを設定すると、特定のインターフェイス上でOSPFルーティングアップデートの送受信を制御できます。

パッシブインタフェイスが有効になると、OSPFのパケットの送信は停止されます。Helloパケットも送信されなくなりネイバー関係が確立されることもありません。

パッシブインターフェイスの設定
設定すると、特定のインターフェイス上でOSPFパケットの送信が停止されます。不要なトラフィックを抑えることができます。
(config-router)#passive-interface { <interface-id> | default }
(※brief‥OSPFが有効なインターフェイスの要約情報を表示)

OSPFデフォルトルートの配布

OSPFでデフォルトルートをアドバタイズ(通知)するには、default-information originateコマンドを使用します。

※デフォルトルートは、ルーティングテーブルに登録されていないネットワーク宛のパケットを転送する際に使用します。

OSPFデフォルトルートの配布
(config-router)#default-information originate [ always ]

・always…自身のルーティングテーブルにデフォルトルートが存在しない状態でも、常にOSPFデフォルトルートを生成する(オプション)

OSPFv3

OSPFv3はOSPFv2に変更を加えたIPv6対応版です。

  • Ipv6ヘッダ内のネクストヘッダは89
  • 新しく2つのLSAを定義
  • IPsecによって、より安全な認証を行う

■OSPFv3の基本設定

  1. OSPFv3プロセスの起動
    (config)#ipv6 router ospf < process-id >
    (config-rtr)#
  2. ルータIDの設定
    (config-rtr)#router-id <router-id>
  3. インターフェイスでOSPfv3の有効化
    (config-if)#ipv6 ospf <process-id> area <area-id>

OSPFルートが学習しているか確認
show ipv6 route

FHRP

冗長化のために別のファールソホップルータを活用するプロトコルをまとめてFHRP(First Hop Redundancy Protocol)といます。

  • Cisco製:「HSRP」(Hot Standby Router Protocol)「GLBP」(Gateway Load Balancing Protocol)
  • 標準化:「VRRP」(Virtual Router Redundancy Protocol)

HSRP

「HSRP」(Hot Standby Router Protocol)は、デフォルトゲートウェイの冗長化のためにシスコが開発したプロトコルです。

  • HSRPは複数のファーストホップルータをグループ化して仮想ルータを構成します。
  • PCに設定するデフォルトゲートウェイのIPアドレスはHSRPでルータに設定した仮想IPアドレスになります。(※スタンバイルータに変わってもデフォルトゲートウェイのアドレスを変える必要がない)
HSRPの有効化(仮想IPアドレスの設定)
(config-if)#standby [グループ番号] ip {仮想IPアドレス}

<HSRPのグループ>

  • 仮想ルータ…仮想IPアドレス、仮想MACアドレスを持つ
  • アクティブルータ…実際にパケットの転送を行うルータ
  • スタンバイルータ…アクティブルータの障害時に、次に転送ルータになるバックアップルータ

<HSRP仮想MACアドレス>

仮想MACアドレスの先頭から5バイトは固定で残り1バイトはグループ番号になります。

【HSRPの仮想MACアドレス】
0000.0c07.acXX

<HSRPの仮想IPアドレス>

仮想IPアドレスは、HSRPを有効にするインターフェースと同じネットワークに属する空きIPアドレスの中から任意のIPアドレスを設定します。

PCに設定するデフォルトゲートウェイのIPアドレスはHSRPでルータに設定した仮想IPアドレスになります。

<HSRPの状態遷移>

【アクティブルータの選定方法】

  • プライオリティが最大のルータ(デフォルトは100)
  • IPアドレスが最大のルータ(プライオリティが同じ場合)
ステート説明
イニシャルHSRP開始時のステート。設定変更、またはインターフェイスを有効化した最初のステート
ラーニング仮想IPアドレスを認識しておらず、まだHelloメッセージを受信していない
リスニングHelloメッセージをリスニング(受信)している
スピーク定期的にHelloメッセージを送信し、アクティブおよびスタンバイの選定に参加している
スタンバイアクティブルータがダウンしたときにアクティブルータとなるために待機している。定期的なHelloメッセージを送信している
アクティブ仮想MACアドレス宛のパケットを転送する。定期的なHelloメッセージを送信している。

<アクティブルータとスタンバイルータの動作>

  • Helloタイマー:Helloメッセージの送信間隔(デフォルトは3秒
  • Holdタイマー:Helloメッセージが届かなくなってからアクティブに切り替わるまでの時間(デフォルトは10秒

プリエンプト

プリエンプト機能を設定しておくと、あとから追加した場合でも即時にプライオリティが最大のルータをアクティブルータとして動作させることができます。

(config-if)#standby [<group-number>] preempt

<基本設定>

  1. priorityを設定(デフォルトは100)
  2. もし障害が起こったら、どれだけpriority値を下げるか(デフォルトは10)
  3. プリエンプト機能を有効にする
  4. どこのインタフェイスを追跡するか
  5. ルータ1の設定を確認する
  6. アクティブになっているのは?(ローカル=自分)
  7. スタンバイになっているのは?

HSRPインターフェイストラッキング

HSRPスタンバイルータはHSRPを有効化しているインターフェイス上でHelloメッセージが届かなくなることでアクティブルータがダウンしたと判断し、スタンバイからアクティブステートに切り替わります。

HSRPインターフェイストラッキングは、インターフェイスの状態を追跡する機能です。トラッキング対象のインターフェイスで障害が発生すると、自動的にHSRPプライオリティを小さくしたHelloメッセージを送信し、グループ内のスタンバイルータをアクティブルータに切り替えます。

HSRPインターフェイストラッキングを設定する。
(config-if)#stanby [ <group-number> ] track <interface-type> [ <decrement> ]

<HSRPグループの情報の表示>

#show standby [ <interface-type> ] [ <group-number> ] [ brief ]
  • <interface-type>…インターフェイス名を指定。省略した場合、全てのHSRP表示。
  • <group-number>…HSPRグループ番号を指定。全てのHSRP表示。
  • brief…HSRPグループの要約情報を1行で表示

<以下の点が確認できる>

  • 有効になっているインターフェイス、グループ、役割
  • 仮想IPアドレス
  • 仮想MACアドレス
  • プリエンプトが有効かどうか
  • HSRPプライオリティ
  • HSRPのタイマー(デフォルト:Hello 3秒、hold time 10秒)
  • 現在のアクティブルータの情報(アクティブルータの実IPアドレス、プライオリティ。localは自身を表す)
  • 現在のスタンバイルータの情報(スタンバイルータの実IPアドレス、プライオリティ。localは自身を表す)

HSRPv2

  • HSRPv1はグループ番号を0~255に設定しますが、HSRPv2では0~4095の範囲が有効です。
HSRPv1HSRPv2
Helloパケットの宛先224.0.0.2224.0.0.102
グループの範囲0~2550~4095
仮想MACアドレス0000.0c07.acXX0000.0c9f.fXXX
IPv6サポートなしあり

GLBP

複数のアクティブフォワーダ(転送ルータ)によって、発信トラフィックのロードバランシングを行うシスコ独自のFHRP。

  • GLLPグループは0〜1024まで作成可能
  • 最大で4つの仮想MACアドレスを使用
  • Cisco独自
  • ホスト単位で負荷分散を行える

【GLLPの仮想MACアドレス】
0000.b40X.XXYY
Xはグループ番号
YにはMACアドレス01〜04

VRRP

  • VRRP(Virtual Router Redundancy Protocol)デフォルトゲートウェイの冗長化を行う標準化プロトコルです。
  • 0〜255のグループ
  • 役割としてマスタールータバックアップルータ

【VRRPの仮想MACアドレス】
0000.5e00.01XX

FHRPの比較(頻出)

WordPressプラグインを一覧・目的別紹介

EWWW Image Optimizer

「EWWW Image Optimizer」はインストールするだけで、画像サイズを圧縮してくれる手軽で便利なプラグインです。

※インストールするとWordpressにアップロードする画像のファイルサイズを小さくします。アップロード済みの画像を一括で小さくすることも可能です。

https://wordpress.org/plugins/ewww-image-optimizer

エラー)「埋め込みブロック」が正しく反応しない不具合がおきました

ホバーしてカーソルは反応しているのですが、クリックしてもリンクにとばない事象が発生

テーマによってエラーが発生するようですかね、、

→「EWWW Image Optimizer」無効化で正しくリンクにとびました

Intuitive Custom Post Order

ワードプレス投稿記事をドラッグアンドドラッグ操作で直感的に並び替えができる様になります

https://ja.wordpress.org/plugins/intuitive-custom-post-order

Password Protected

とても手軽に、WordPress サイトにパスワード保護をかけられます。

https://ja.wordpress.org/plugins/password-protected

Easy FancyBox

WordPressで、画像をモーダルで拡大するためのプラグインです。

https://ntorelabo.com/?p=397
https://ja.wordpress.org/plugins/easy-fancybox

GTranslate

https://ja.gtranslate.io

Smash Balloon Instagram Feed

タイムラインを表示

https://ja.wordpress.org/plugins/instagram-feed

<エラー対処>

https://granvi.jp/skillup/smash-balloon-instagram-feed-error

WordPress Popular Posts

人気記事ランキングを作成できるプラグインです。

https://wordpress.org/plugins/wordpress-popular-posts

表示されない場合

https://norinorikazu-miyao.com/?p=4365

Search Everything

WordPressの検索対象は固定ページ、投稿ページのタイトル、本文となっていますが、Search Everythingをしようすることで、カテゴリーやタグ等、検索対象を広げることができます。

https://wordpress.org/plugins/search-everything

Auto Upload Images

投稿記事を移行やコピーしたいとき、「編集画面でコピー元の記事を全選択し全ブロックをコピー先に貼り付ける」と、その中に含まれている画像が自動で移行先のワードプレスのメディアにアップロードされます

WP Sitemap Page

HTMLサイトマップを作成

WPCode

FTPクライアントソフト使わなくても、functions.phpのコード記述ができます。

コードスぺニットごとの有効無効の切り替えもできるのでコード管理もしやすいです。

↓フォント読み込みに

https://idasalon.com/?p=250

VLAN

VLAN(Virtual Local Area Network)とはスイッチ(L2)の技術の一つです。スイッチ部でネットワークを仮想的に分けることができます。

  • 端末の物理的な配置に依存せずネットワークを構築できます。
  • ブロードキャストドメインを分割できます。
  • セキュリティ対策になります。
  • 宛先MACアドレスがMACアドレステーブルに登録されていない場合、受信したポートと同じVLANに属する全ポート(受信ポートは除く)から転送する
【VLANの作成】

(config)#vlan <vlan-id>
(config-vlan)#name <vlan-name> …省略可能
(config-vlan)#exit …このタイミングで作成完了
【スッチポートにVLANの割り当てる】

(config)#interface FastEthernet 0/1
(config-if)#switchport access vlan <vlan-id>

VLAN ID

  • デフォルトVLAN(1、1002〜1005)は削除したり、名前変更することができない

<VLAN IDの範囲>

ID
範囲
説明
0、4095
予約
システム内部で使用
1
標準
シスコのイーサネットのデフォルトVLAN
2〜1001
標準
イーサネット用の標準VLAN
1002〜1005
標準
FDDIおよびトークンリング用のデフォルトVLAN
1006〜4094
拡張
イーサネット用の拡張VLAN

アクセスポート

  • 一つのVLANに所属しているポートをアクセスポートといいます。
  • アクセスポートに繋がっているリンクのことはアクセスリンクといいます。
  • デフォルトでVLAN1を転送する

アクセスポートとして動作させる

switchport mode access

トランクポート

  • 複数のVLANに所属しているポートをトランクポートといいます。
  • トランクポートに繋がっているポートをトランクリンクといいます。
  • トランクリンクではIEEE 802.1Qを使用して、VLAN情報を識別します。

トランクポートは、1本の物理リンク上で複数のVLANトラフィックを伝送するための技術です。同じVLANが複数のスイッチにまたがって構成されるケースで使用することで、スイッチ間の接続リンク数を減らすことができるため、通常は複数の同じVLANを持つスイッチ間を接続するリンクはトランクポートで接続します。

VLANの割り当てには、手動のポートベースVLAN(スタティックVLAN)と自動のダイナミックVLANがあります。

DTP

  • ポートのネゴシエーションは DTP(Dynamic Trunking Protocol)によって行われます。
  • Cisco独自
  • 30秒ごとにマルチキャストドメイン宛にフレームを送信する。
  • DTPはVTPドメインが一致している場合にのみ利用する
モード動作
trunkトランクポートになります!
accessアクセスポートになります!
dynamic desirableできればトランクがいいです‥
dynamic auto何が都合がいい?交渉ないならアクセスになります
trunkaccessdynamic desirabledynamic auto
trunktrunkaccesstrunktrunk
accessaccessaccessaccessaccess
dynamic desirabletrunkaccesstrunktrunk
dynamic autotrunkaccesstrunkaccess

【スイッチポートモード変更(DTPの設定)】

(config-if)#switchport mode {access | trunk | dynamic {auto | desirable}}

【DTPの無効化】

(config-if)#switchport nonegotiate

トランキングプロトコル

  • トランキングプロトコルにはIEEE802.1QISLの2つがあります。
  • トランクリンクの両サイドで、トランキングプロトコルを合わせておく必要があります。

IEEE802.Q

  • IEEE802.Qはトランクポート上でフレームにタグと呼ばれる情報を挿入し、VLANを識別します。
  • 最大通信速度が10Mbpsのインターフェースを使用することができます。
  • IEEE802.Qではタグを挿入するため、FCSの再計算が必要になります。
  • IEEE802.QではネイティブVLANをサポートしています。ネイティブVLANはタグは付加されません。(ネイティブVLANのVLAN IDは、トランクリンクの両端で同じにする必要があります。)
  • 1522バイト

ISL

  • Cisco独自
  • ISLではISLヘッダ(26バイト)新しいFCS(4バイト)を付けてカプセル化する。
  • 1548バイト

プロトコルの設定

(config-if)#swichport trunk encapsulation { isl | dot1q | negotiate }
*negotiate …デフォルト

ネイティブVLAN

  • IEEE802.QではトランクポートごとにひとつだけネイティブVLANを設定できる
  • ネイティブVLANはタグは付加されない
  • ネイティブVLANは、管理トラフィック(CDP)を通す
  • スイッチ間(トランクポート間)でネイティブVLANを合わせておく必要があります
  • ネイティブVLANが一致していないとVLANホッピングと呼ばれる攻撃(VLANを越える攻撃)に悪用される危険性がある
  • デフォルトのネイティブVLANはVLAN1になっている
ネイティブVLANの変更

(config-if)#switchport trunk native vlan { vlan-ID }
全てのVLANにタグを付加

(config)#vlan dot1q tag native

ISLフレーム(Cisco独自)

トランクプトコルIEEE802.1QISL
規格IEEEによって標準化シスコ独自
方式タギング方式カプセル方式
ネイティブV LANサポートなし
フレームの増加幅4バイト30バイト
(ヘッダ:26、FCS:4)
最大フレームサイズ1,522バイト1,548バイト
FCSの処理再計算フィールドの増加
VLAN ID12ビット10ビット
サポートするVLAN数4,096(2の12乗)1,024(2の10乗)

VLANタギング

フレームにタグフィールドを付加することによって、対向の機器がフレームのVLAN番号を識別できるようにする技術

  • 1つのインターフェースで複数のVLANを扱うための方法
  • トランクポートを使用する
  • アクセスポートから送信するフレームにVLANタグは付きません。

ダブルタギング

送信するフレームにVLANタグを2つ付加することで通常はアクセスできないほかのVLANにアクセスする攻撃。予防策としてネイティブVLANに未使用のVLANを割り当てることでセキュリティを強化できる

ルータオンナスティック(Router on a Stick)

ルータオンナスティック(Router on a Stick)の時、必要なルータの設定

  • ルータとスイッチ間はトランクリンク
  • VLANごとのサブインターフェースを作成
  • ルータにはサブインターフェイスを設定する。(IPアドレスの設定
  • スイッチとサブインターフェイス間のトランキングプロトコル(カプセル化の種類)を一致させる必要があります。

各PCのデフォルトゲートウェイは、サブインターフェイスのIPアドレスになります。

【ルータに必要なコマンド】
(config)#interface < interface-id >.<subinterface number >
(config-subif)#encapsulation dot1q < vlan-id >
(config-subif)#ip address < ip-address > < subnet >
【スイッチに必要なコマンド】
(config)#interface < interface-id >
(config-if)#switchport mode trunk

【サブインターフェースの作成】

(config)#interface {インターフェース} . [サブインターフェース番号]
インターフェース ・・・自身に搭載している物理インターフェースを指定「FastEthernet 0/0」など
サブインターフェース番号 ・・・任意の番号を指定

【VLANカプセル化方式の指定とVLAN IDの指定】

(config-subif)#encapsulation dot1q {VLAN番号}

L3スイッチ

https://ntorelabo.com/2022/09/13/etherchannel/

レイヤ3の情報(IPアドレス)を基に転送処理を行うスイッチをレイヤ3スイッチといいます。複数の層の情報を制御できる機器をマルチスイッチといいます。

  1. レイヤ3EtherChannel は、レイヤ3スイッチのルーテッドポートで行います。物理インターフェイスをno switchportコマンドでルーテッドポー トに変更する
  2. IP アドレスの設定は EtherChannel の設定を行った後に作成された Port-channel インターフェイス上で行います。
  • マルチレイヤスイッチはルーティング機能が無効になっているのでルーティング作業を有効にする必要かあります。
  • VLANのデフォルトゲートウェイはSVI(Switch Virtual Interface)を設定します。

レイヤ 3 スイッチにはスイッチポート、ルーテッドポート、SVI の 3 つのポートが 存在します。それぞれの役割について整理しておきましょう。

スイッチポート

レイヤ 2 スイッチのポートと同様に、アクセスポートやトランクポートの設定を行 う物理ポートです。レイヤ 3 スイッチの物理ポートはデフォルトでスイッチポート として動作していますが、一度ルーテッドポートに変更したポートを再度レイヤ 3EtherChannel は、レイヤ 3 スイッチのルーテッドポートで行います。 ポートに戻すには、該当ポートで (config-if)#switchport コマンドを実行します。

ルーテッドポート

物理ポートをルータのインターフェイスとして動作させるポートです。IP アドレス の設定や ACL の設定など、ルータのインターフェイスと同様の設定が可能になり ます。スイッチポートからルーテッドポートに切り替えて動作させるには、該当 ポートで(config-if)#no switchportコマンドを実行します。

SVI

SVI(Switch Virtual Interface)はスイッチ内部に存在する仮想インターフェイスで、各 VLAN に紐づく内部のスイッ チと接続するルータのインターフェイスとして動作します。ルーテッドポートと同 様に、IPアドレスの設定やACLの設定などが可能です。SVIを作成するには、 (config)#interface vlan <VLAN番号>コマンドを実行します。

VTP

  • VLAN trunking Protocol
  • トランクリンクで接続された複数のスイッチ間でVLAN情報を共有する
  • シスコ独自のプロトコル
  • VTPドメイン名が同じスイッチ間で同期が行われる

  • サーバモート(デフォルト)…VLAN作成・変更・削除し、他のスイッチにアドバタイズ(通知できる)モードです。また他から受信したVTPアドバタイズに基づいてVLAN情報を同期します。
  • クライアントモード…VLANの作成・変更・削除はできないモードです。他から受信したVTPアドバタイズに基づいてVLAN情報を同期し、転送します。
  • トランスペアレントモードトランクリンクを介して受信したVTPアドバタイズを他に転送するモードです。
モード作成、変更、削除同期アドバタイズメント転送
サーバ
クライアント××
トランスペアレント××

VTPリビジョン番号

VTPリビジョン番号は、VLANの設定があるたびに1つずつ増えていく数値です。リビジョン番号が一番大きいものが最新として同期させます。

VTPプルーニング

ブロードキャストの宛先VLANが存在しない(使われていない)スイッチへはフレームを送らないようにする技術は、VTPプルーニングです。

音声VLAN

  • 1つのアクセスポートに混在しているIP PhoneとPCのデータを別々に識別する機能です。
  • Cisco IOSの独自機能
  • アクセスポートでありながら1つのポートで2つのVLANトラフィックを転送することができます。このようなポートをマルチVLANアクセスポートといいます。
  • フレームの優先度を表す値を、CoS(Class of Service)といいます。
  • パケットに優先順位をつけて通信品質を保証する技術を、QoS(Quality of Service)といいます。
  • 音声VLANを設定するポートではCDPを有効にしておく(CDPはデフォルトで有効になっているため、CDPの設定は必要ありません)音声VLANを設定するポートではCDPを有効にしておく(CDPはデフォルトで有効になっているため、CDPの設定は必要ありません)
  • 音声VLANを設定すると自動的にPortFastが有効になる

【音声VLANで使用する主なコマンド】

音声VLANを使用する場合、ポートはアクセスポートにします。
(config-if)#switchport mode access

音声用のVLANを指定します。ここで設定された音声用のVLANは、CDPによってCisco IP Phoneに通知されます。
(config-if)#switchport voice vlan {VLAN_ID}

PCデータ用のVLANを指定します。
(config-if)#switchport access vlan {VLAN_ID}

vSwitch

vSwitchとは、サーバ上のソフトウェアによって仮想的に作成するL2スイッチで、仮想サーバを接続するために使用します。

  • 仮想的に作成するL2スイッチ
  • 仮想サーバ同士を接続する
  • 仮想サーバと物理ネットワークを接続します。

コマンド

【コマンド スイッチポートにVLANを割り当てる】

(config-if)#switchport access vlan <vlan-id>

switchport modeで設定したモードと、実際の動作モードを確認

#show interfaces switchport

VLANと、VLANとポートのマッピングを確認

#show vlan

#show interfaces status

#show interfaces trunk

【インターフェイスのトランク設定を確認する】

show interfaces trunk

show interfaces swichport

Swich#show interfaces fastethernet 0/1 trunk enter

PortModeEncapsulationStatusNative vlan
Fa0/1‥①on‥②802.1q‥③trunking‥④1‥⑤
Port
Fa0/1
Vlans allowed on trunk‥⑥
1-4096
Port
Fa0/1
Vlan allowed and active in management domain‥⑦
1,10,20,30
Port
Fa0/1
Vlan in spanning tree forwarding state and not pruned‥⑧
1,10,20,30
  1. トランクポートとして動作しているポート名
  2. 設定しているスイッチポートのモード(固定のtrunkの場合「on」、accessの場合「off」
  3. トランクプロトコルのタイプ(DTPによって動的に選択された場合「n-802.1q」)
  4. 現在のトランク状況(非トランクの場合は「non trunking」)
  5. ネイティブVLAN
  6. トランクで許可されてるVLAN(デフォルトではすべてのVLANを許可)
  7. ⑥で表示されたVLANのうちアクティブなもの
  8. ⑦で表示されたVLANのうち、STPのフォワーディング状態でVTPプルーニングされたいないVLAN

【サブインターフェイスの作成】

Router(config)# interface gigabitethernet0/1.10
Router(config-subif)# encapsulation dot1q 10
Router(config-subif)# ip address 192.168.10.1 255.255.255.0

【トランクプロトコルとVLAN IDの指定】

(config-subif)#encapsulation dot1q <vlan-id> [ native ]

(ISLを使用する場合⇒escapsulation isl <vlan-id>

【サブインターフェイスにIPアドレスの割り当て】

(config-subif)#if address <ip-adress> <subnet-mask>

(ISLを使用する場合⇒escapsulation isl <vlan-id>

【トランクポートを通過できるVLANの変更】

(config-if)#switchport trunk allowed vlan [ add | remove | except ] [ VLAN番号 ]

add:許可、remove:拒否、except:指定したVLAN以外許可

【NextAuth】Credentials ProviderでシンプルなID/パスワード認証システム

Credentials Providerとは

Credentials Providerは、NextAuthで独自のユーザー名/パスワード認証を実装するためのプロバイダーです。

Credentials Provider の認証フロー ログインフォーム Credentials Provider (authorize関数) データベース 処理ステップ: 1. ユーザーがフォームに入力 – email – password 2. Credentials Providerが認証処理を実行 – 入力値のバリデーション – データベースでユーザー検索 – パスワードの照合 3. 認証結果 – 成功: JWTトークン生成&セッション作成 – 失敗: エラーメッセージを返却

データベースの準備

DB準備し.envファイルを編集

データベース接続設定 (.env)

DATABASE_URL="mysql://ユーザー名:パスワード@ホスト:3306/データベース名"

今回はPrisma不使用

ORM (Object-Relational Mapping)

SQLを直接書くことなく、オブジェクトのメソッドでDB操作ができる
SQL文詳しくなくてもDB操作ができる

  1. PHP APIを作成した理由:
    • さくらインターネットのデータベースにアクセスするため
    • 外部からの直接接続ができないため、PHPを介してアクセス
  2. Prismaは:
    • データベースに直接接続する必要がある
    • さくらインターネットの制限により使用が難しい
    • PHP APIの作成はPrismaとは無関係

これからの進め方:

  1. PHP APIを使用してデータベース操作を行う
  2. Next.jsからそのAPIを呼び出す
  3. NextAuthの実装を進める

NextAuthの設定

NextAuthのインストール

npm install next-auth

認証APIルートの作成 (src/app/api/auth/[...nextauth]/route.ts)

import NextAuth from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";

const handler = NextAuth({
  providers: [
    CredentialsProvider({
      name: "Email & Password",
      credentials: {
        email: { 
          label: "メールアドレス", 
          type: "email",
          placeholder: "email@example.com"
        },
        password: { 
          label: "パスワード", 
          type: "password" 
        }
      },
      async authorize(credentials) {
        try {
          // PHP APIを呼び出してユーザー認証
          const res = await fetch("https://あなたのドメイン/auth-api.php", {
            method: 'POST',
            body: JSON.stringify({
              email: credentials?.email,
              password: credentials?.password
            }),
            headers: { "Content-Type": "application/json" }
          });

          const user = await res.json();

          if (user.success) {
            return {
              id: user.data.id,
              name: user.data.name,
              email: user.data.email
            }
          }
          return null;
          
        } catch (error) {
          console.error("Auth Error:", error);
          return null;
        }
      }
    })
  ],
//  pages: {
//    signIn: '/auth/signin',  // カスタムログインページのパス
//  }
});

export { handler as GET, handler as POST };

認証用のPHP API作成 (auth-api.php)

<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');

// POSTデータの取得
$json = file_get_contents('php://input');
$data = json_decode($json, true);

// データベース接続情報
$host = 'xxxx';
$dbname = 'xxxx';
$user = 'xxxx';
$pass = 'xxxx';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $stmt = $pdo->prepare('SELECT * FROM users WHERE email = ? AND password = ? LIMIT 1');
    $stmt->execute([$data['email'], $data['password']]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($user) {
        echo json_encode([
            'success' => true,
            'data' => [
                'id' => $user['id'],
                'email' => $user['email'],
                'name' => $user['name']
            ]
        ]);
    } else {
        echo json_encode([
            'success' => false,
            'error' => 'Invalid credentials'
        ]);
    }
} catch(PDOException $e) {
    echo json_encode([
        'success' => false,
        'error' => $e->getMessage()
    ]);
}
?>

特定のページのみを認証必須にする

認証状態を確認するためのミドルウェアを作成

src/middleware.tsを作成
import { withAuth } from "next-auth/middleware"

// 特定のパスのみ認証を必須にする
export default withAuth({
  // ここで指定したパスのみ認証が必要
  pages: {
    signIn: "/api/auth/signin",
  }
})

// 認証が必要なパスを指定
export const config = {
  matcher: ["/nextauth-demo/:path*"]
}

デモページの作成

src/app/nextauth-demo/page.tsx
'use client';
import { useSession, signOut } from "next-auth/react"  // signOutをインポート
import { redirect } from "next/navigation"

export default function ProtectedPage() {
  const { data: session, status } = useSession()

  if (status === "loading") {
    return <div>Loading...</div>
  }

  if (status === "unauthenticated") {
    redirect("/api/auth/signin")
  }

  // ログアウト処理の追加
  const handleLogout = async () => {
    await signOut({ 
      callbackUrl: '/nextauth-demo'  // ログアウト後のリダイレクト先
    })
  }

  return (
    <div className="p-4">
      <h1 className="text-2xl font-bold mb-4">認証が必要なページ</h1>
      <p className="mb-4">ようこそ {session?.user?.email ?? 'ゲスト'} さん</p>
      
      {/* ログアウトボタン追加 */}
      <button 
        onClick={handleLogout}
        className="bg-red-500 text-white px-4 py-2 rounded hover:bg-red-600"
      >
        ログアウト
      </button>
    </div>
  )
}
/nextauth-demo/layout.tsx を作成
'use client';

import { SessionProvider } from "next-auth/react";

export default function AuthLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <SessionProvider>
      {children}
    </SessionProvider>
  );
}
Firebase Next.jsでWeb回覧システム設計
Users
uid (PK)
email
name
department
created_at
updated_at
CircularContents
id (PK)
title
content
status
publish_date
expire_date
created_by (FK)
created_at
updated_at
ReadStatus
id (PK)
user_id (FK)
content_id (FK)
is_read
read_at
Roles
id (PK)
name
description
UserRoles
id (PK)
user_id (FK)
role_id (FK)
Users ← CircularContents (作成者)
Users ← ReadStatus (閲覧状態)
Users ← UserRoles (権限割当)
Roles ← UserRoles (権限定義)
CircularContents ← ReadStatus (閲覧記録)
Firebase認証フロー
User
Frontend
Firebase Auth
Backend
Database
1. Googleログインボタンクリック
2. Google認証リクエスト
3. ログイン画面でメール入力
4. 認証トークン返却
5. トークン検証
6. ユーザー情報保存
7. ダッシュボード表示
  1. Firebase認証の活用
  • Googleアカウントでのシングルサインオン実装が容易
  • 社内のGoogleワークスペースと連携可能
  • セキュリティ面も信頼性が高い

web circular 241030

Firebaseプロジェクトの初期設定について説明させていただきます:

  1. Googleアナリティクスについて
  • 推奨: Yes(有効化することをお勧めします)
  • 理由:
    • ユーザーの行動分析が可能
    • エラー追跡が容易
    • ユーザー数やアクティブユーザーの把握
    • コストは無料
  1. データベース設計のポイント
  • Users: Firebaseの認証情報と連携
  • CircularContents: 回覧文書の管理
  • ReadStatus: 既読状態の管理
  • Roles & UserRoles: 権限管理の実装
  1. PHPバックエンドの役割
  • データのCRUD操作
    Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)
  • ビジネスロジックの実装
  • Firebase認証のトークン検証
  1. 状態管理のポイント
  • 既読状態はリアルタイムで更新
  • ユーザーの権限に応じた表示制御
  • 期限切れ文書の自動アーカイブ

実装手順としては:

  1. まずFirebase認証の実装
  2. 基本的なCRUD機能の実装
  3. 既読管理機能の追加
  4. 権限管理の実装
  5. UI/UXの改善

WordPressをヘッドレスCMSとして使用する場合

  • 管理画面が既に用意されている
  • メディア管理しやすい

Firebaseの認証の実装

Web回覧システムにおけるFirebase認証の役割と目的について説明させていただきます。

Firebase認証の主な目的:

  1. 社内ユーザーの認証
  • 社員のGoogleアカウント(会社支給のメールアドレス)でログイン
  • シングルサインオン(SSO)の実現
  • 不正アクセスの防止
ローカル、グローバルIPアドレスの違いと確認手順

ローカルIPアドレスとグローバルIPアドレスの違い

インターネットに接続したことがある人なら、「IPアドレス」という言葉を目にしたことがあるでしょう。しかし、ローカルIPとグローバルIPの違いは何なのか、そしてどうやって確認するのかわからない人も多いでしょう。ここでは、その違いと確認方法を分かりやすく解説します。

ローカルIPアドレス

  • あなたのネットワーク内で一意に認識されるためのアドレスです。
  • Wi-Fiやモバイルルーターのネットワークで使用されます。
  • たとえば「192.168.xxx.xxx」や「10.xxx.xxx.xxx」といった形式をしています。
  • インターネットの外側からは認識されません。

ローカルIPアドレスの確認方法

  1. 「コマンドプロンプト」を開く
    • 「Windowsキー」を押しながら「R」を押し、「run」ダイアログを開き「cmd」を打ち込んで「OK」をクリック
  2. 「ipconfig」を入力
    • 出力された情報の中から「IPv4 Address」を探します。

グローバルIPアドレス

  • インターネットの外側にあなたを特定するためのアドレスです。
  • プロバイダの構築者やISPにより配分されます。
  • たとえば「203.0.113.xxx」のようなフォーマットをしています。
  • インターネット全体で一意に認識されるユニークなアドレスです。

グローバルIPアドレスの確認方法

  1. ラウザを開き、下記のようなサイトを利用
  2. 「What is my IP」と検索
    • Googleや他の検索エンジンで、上記のようなキーワードを打ち込むだけで、接続先のグローバルIPを表示してくれます。

IPアドレス

IPv4においてIPアドレスアドレスは32ビット持ち、ネットワークを表すネットワーク部と個々のノードを表すホスト部で構成される。

ネットワーク部とホスト部

IPアドレスのクラス

ネットワーク部とホスト部の分け方のパターンクラスといいます。A、B、Cが一般的なネットワークで用いられるクラスです。Dがマルチキャストで使用されるクラス、Eが実験用に予約されたクラスです。

クラスを識別するために第1オクテット先頭値はクラスごとに決められた固定値が設定さてれます。

クラスBネットワークで使用可能なサブネットマスク

サブネットマスクサブネットマスク の長さ(ビット数)サブネット数サブネット当たり のホスト数
255.255.255.2523016,3822
255.255.255.248298,1906
255.255.255.240284,09414
255.255.255.224272,04630
255.255.255.192261,02262
255.255.255.12825510126
255.255.255.024254254
255.255.254.023126510
255.255.252.022621,022
255.255.248.021302,046
255.255.240.020144,094
255.255.224.01968,190
255.255.192.018216,382

クラスCネットワークで使用可能なサブネットマスク

サブネットマスクサブネットマスク の長さ(ビット数)サブネット数サブネット当たり のホスト数
255.255.255.25230622
255.255.255.24829306
255.255.255.240281414
255.255.255.22427630
255.255.255.19226262

サブネットマスク

サブネットマスクはIPアドレスと同じ32ビットの数値で、ネットワーク部は「1」、ホスト部は「0」で示します。

サブネットを用いてネットワーク部が決定されるアドレスはクラスレスアドレスと呼ばれます。
クラスフルアドレスはネットワーク部とホスト部を8ビット毎に分解したものです。

CIDR表記またはプレフィックス長表記

マイクロセグメンテーション

コリジョンドメインを分割化、セグメントの最小化

予約済みIPアドレス

  • ネットワークアドレス‥そのネットワーク自体を表す
  • ブロードキャストアドレス‥ブロードキャストする際に使用されるアドレス
  • ループバックアドレス‥自分自身を表す仮想的なアドレス。(127〜)
  • リンクローカルアドレス‥DHCPが機能せずIPアドレスが付与されなかった際、仮に割り当てられるアドレス。
  • マルチキャストアドレス…特定のグループを指定するアドレス。(224.0.0.0 ~ 239.255.255.255)

グローバルIPアドレス

IANA(ICANN)が管理する、インターネットに接続する機器が使用できるIPアドレスです。

  • グローバルアドレスを使用するにはISP(Internet Service Provider)との契約が必要
  • 自由に割り当てることができない

プライベートIPアドレス

プライベートIPアドレスとは、組織内のネットワーク(プライベートネットワーク)でのみ使用できるIPアドレスです。

プライベートIPアドレスの範囲はRFC1918によってクラスごとに定義されています。

CIDR

CIDR(Classless Inter-Domain Routing)は、クラスに縛られずIPアドレスのネットワーク部・ホスト部の桁数を自由に決めることができるようにした仕組みです。

WordPressで画像を拡大表示するなら「Easy FancyBox」

ワードプレスのプラグイン「Easy FancyBox」について

ワードプレスのサイトで「画像をクリックしたら拡大表示」させたいなら、Easy FancyBoxというプラグインがおすすめです。この記事では、サイトのビジュアル効果を抜群に高めるEasy FancyBoxの特徴、インストール方法、使い方などを紹介します。

実際に見てみる方が早いでしょう。下の画像をクリックしてみてください。
こちらの画像をクリックすると、拡大表示されます。

Easy FancyBoxの特徴

特徴①:画像のポップアップ表示

Easy FancyBoxは、画像のポップアップ表示を簡単に実現できるプラグインです。

画像をクリックするだけでなく、マウスオーバーすることでも表示されるため、ユーザーにとってより使いやすい機能となっています。

画面の中央に拡大表示され、背景が暗くなることで、画像をより鮮明に見せるだけでなく、サイトのデザイン性も向上させます。また、様々なカスタマイズオプションもあり、ユーザーが自分のサイトに合わせて設定できるため、高い自由度を持っています。

さらに、Easy FancyBoxは、画像だけでなく、YouTubeやVimeoなどの動画のポップアップ表示にも対応しているため、より多様なコンテンツを扱うサイトにも最適です。

特徴②:ビデオやオーディオのサポート

Easy FancyBoxは、画像のほかに、YouTube、VimeoやSoundCloudなど、動画や音声の埋め込みにも対応しています。これにより、サイト訪問者はコンテンツをより身近に感じ、情報をより多角的に理解することができます。

また、Easy FancyBoxの使い方も簡単なため、初心者でもストレスなく使いこなすことができます。さらに、多彩なカスタマイズオプションも用意されており、自分のサイトのデザインに合わせてカスタマイズすることができます。これにより、サイト訪問者はより快適な閲覧体験を得ることができます。

特徴③:iFrameの対応

iFrameコンテンツをポップアップで表示することも可能です。

この機能は、外部サイトのコンテンツをスムーズに表示できるだけでなく、サイト内でのナビゲーションが容易になります。 また、iFrameを使用することで、サイト内でのユーザーエクスペリエンスを向上させることができます。

例えば、iFrameを使用して、インタラクティブなコンテンツをサイトに組み込むことができます。さらに、iFrameを使用して、外部サイトから収集したデータをサイト内で表示することもできます。 iFrameは、ウェブサイトの機能性を向上させるための重要なツールであり、ぜひ活用してください。

Easy FancyBoxのインストールと設定方法

インストール

  1. WordPressの管理画面にログインし、​「プラグイン」→「新規追加」を選択します。​
  2. 検索欄に「Easy FancyBox」と入力し、​検索します。​
  3. 表示されたEasy FancyBoxのプラグインを「今すぐインストール」します。​
  4. インストールが完了したら、​「有効化」ボタンを押下します。​

以上で、​Easy FancyBoxのインストールは完了です。​基本的にインストール・​有効化したら設定は不要で、​ブロック挿入時にリンク先をメディアファイルに設定するだけです。

https://ja.wordpress.org/plugins/easy-fancybox/

①画像の利用方法

Easy FancyBoxを使って画像のポップアップ表示を行うには、次の方法があります。

  1. 画像を投稿に挿入し、「リンク先」の設定で「メディアファイル」を選択します。
  2. 画像のHTMLタグに**rel=”lightbox”**属性を追加します。

これで、画像がEasy FancyBoxのポップアップで表示されるようになります。

拡大したい画像のリンク先がメディアファイルになっているか確認します。

②動画やオーディオの埋め込み方法

動画やオーディオの埋め込みは、以下の手順で行います。

  1. 動画サイトから埋め込み用のコードをコピーします。
  2. コードに「class=”fancybox”」属性を追加し、投稿に貼り付けます。

これで、動画やオーディオがEasy FancyBoxでポップアップ表示されます。

③iFrameコンテンツの使用方法

iFrameコンテンツをEasy FancyBoxで表示するには、iFrameタグに「class=”fancybox-iframe”」属性を追加し、投稿に貼り付けます。

これで、iFrameコンテンツがポップアップ表示されるようになります。

※Easy FancyBoxが他のプラグインとの競合が疑われる場合、一時的に他のプラグインを無効化して機能するか確認してください。競合が確認された場合は、プラグインの設定を調整するか、代替のプラグインを検討してください。

設定の変更

設定画面で、​表示の寸法や操作形式などについての設定を行います。​主な設定項目は、​以下の通りです。​

  • Media: 拡大表示したいファイルタイプの選択
  • Overlay: 画像の背景の透明度と色設定
  • Window: 画像周辺の設定項目
  • Miscellaneous: 画像読み込みに関わる設定
  • Images: 有効化する画像とスライドショー機能の設定
  • PDF: 拡大表示するPDFのサイズ、枠線、タイトル設定
  • YouTube: 拡大表示するYouTube動画のサイズ、枠線、タイトル設定

Easy FancyBoxのオプションのカスタマイズ

Easy FancyBoxには、多くのカスタマイズオプションがあります。これにより、サイトに合わせたデザインを実現できます。例えば、以下のようなカスタマイズオプションがあります。

  • ポップアップの背景色
  • ポップアップの透明度
  • アニメーション速度
  • ポップアップのサイズ
  • ポップアップの位置
  • ポップアップのエフェクト
  • サムネイル画像のカスタマイズ
  • ポップアップのテキストカラー

これらのオプションを使用することで、サイトの雰囲気に合わせたポップアップを作成することができます。さらに、オプションの組み合わせによって、より多様なデザインを実現することができます。

FAQ(よくある質問)

Q1: Easy FancyBoxは無料で使えますか?

A1: はい、Easy FancyBoxは無料で利用できるプラグインです。

Q2: 他のポップアップ表示プラグインとの違いは何ですか?

A2: Easy FancyBoxは、シンプルで使いやすく、カスタマイズ性が高い点が他のプラグインとの違いです。また、画像だけでなく動画やオーディオ、iFrameコンテンツにも対応しています。

Q3: Easy FancyBoxはレスポンシブデザインに対応していますか?

A3: はい、Easy FancyBoxはレスポンシブデザインに対応しており、スマートフォンやタブレットなどのデバイスでも適切な表示がされます。

Q4: Easy FancyBoxのポップアップ表示速度を変更することはできますか?

A4: はい、Easy FancyBoxの設定画面から、ポップアップ表示速度を変更することができます。

Q5: Easy FancyBoxがうまく動作しない場合、どうすればいいですか?

A5: Easy FancyBoxがうまく動作しない場合、まず設定や属性の追加が正しく行われているか確認してください。それでも解決しない場合は、他のプラグインとの競合がないか確認し、必要に応じて設定の変更や代替のプラグインを検討してください。

参考サイト

https://jo-sys.net/easyfancybox/#index_id5
https://junpei-sugiyama.com/easy-fancybox/#st-toc-h-2
https://allbeginners.net/easy-fancybox/
https://webst8.com/blog/wordpress-easy-fancybox/
https://magazine.techacademy.jp/magazine/6990
TCP/IP

TCP/IP

TCP/IPはプロトコルスタックの一種です。
OSI参照モデルよりも運用重視で、普及していきました。

TCPIPという2つのプロトコルを中心に4つのレイヤで構成されています。

  • アプリケーション層…ネットワークアプリケーションに必要なサービスを定義
  • トランスポート層…アプリケーション層のプロトコルに信頼性のあるサービスを提供
  • インターネット層…エンドツーエンドのデバイス間でパケットを転送するためのサービスを提供
  • リンク層…同一の物理ネットワークの隣接ノードと通信を行うために必要なプロトコルを定義

PDU

データ+ヘッダ(+トレーラ)のおデータ単位をPDU(Protocol Data Unit)といい各層の呼び名がOSI参照モデルと少し異なります。

<OSI参照モデルのPDU

<TCP/IPのPDU>

【TCPヘッダとUDPヘッダ】

  • トランスポート層ではTCPヘッダまだはUDPヘッダを付加してカプセル化します。
  • UDPにはないけど、TCPにはシーケンス番号確認応答番号があります。

Eahernetフレーム

  • ブリアンブル(7バイト)
  • SFD(1バイト)
  • 宛先MACアドレス(6バイト)
  • 送信元MACアドレス(6バイト)
  • タイプ(6バイト)
  • IPヘッダ、データ等(46〜1500バイト)
  • トレーラ(FCS)(4バイト)
    …Frame Check Sequenceと呼ばれるエラー検出用のフィールド。FCSはCRC値を格納しています。

IP

  • IP(Internet Protocol)はインターネット層で中心的な役割を担うプロトコルです。
  • IPアドレス論理アドレス)を使用してエンドツーエンドの通信を可能にします。
  • コネクションレス型‥送りっぱなし、届いたかどうかは関知しない
  • ベストエフォート型‥保証はしないが最善は尽くすという通信タイプ
  • データ回復機能なし‥データ破棄したら、再要求しない
  • 階層型アドレス方式…IPアドレスは、ネットワーク部とホスト部の2階層で構成する、階層型のアドレス方式になっています。

IPヘッダ(IPv4)

  • サービスタイプ‥パケットの送信優先度に応じた最適な通信を行うて目の仕組み
  • TTL(生存時間)‥ルータを中継できる回数
  • プロトコル‥上位のプロトコルを表す番号
  • ヘッダチェックサム‥送信時の情報が、受診時に壊れていないかチェックする

フラグメンテーションフラグメント処理

一度に伝送したいデータがMTU(エムティーユー / Maximum Transmission Unit)を超えた場合に、分割して送信することをフラグメント処理、フラグメンテーションといいます。

識別子、フラグ、フラグメントオフセットフラグメン処理に関与しています。

IPアドレス

https://ntorelabo.com/2022/09/08/ip%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9/

IPv4においてIPアドレスアドレスは32ビット持ち、ネットワークを表すネットワーク部と個々のノードを表すホスト部で構成される。

IPアドレスのクラス

https://ntorelabo.com/2022/10/13/arp/

TCP

  • TCP(Transmission Control Protocol)はインターネットにおいて標準的に利用されているプロトコルです。
  • 3ハンドシェイクによるコネクション型(信頼性を高めるために送信元、宛先双方で状況を確認し合う)という通信方式です。
  • オーバーヘッドが大きい
  • ウィンドウサイズを利用したフロー制御
  • 同期通信(データが正しく受信されたかどうか確認しながらやりとりする通信)

3ウェイハンドシェイク

  • ACKによる到達確認
  • TCPコネクションはデータを送信し始める前に確立する

TCPヘッダ

送信データはセグメント(ヘッダーとデータ)という単位送信されます。

  • 送信元、宛先ポート番号(16)
  • シーケンス番号(32)
  • 確認応答番号(32)
  • データオフセット(4)、予約(6)、制御ビット(6)
  • ウィンドウサイズ(16)
  • チェックサム(16)
  • 緊急ポインタ(16)
  • オプション・パディング(可変)

シーケンス番号

送信元→返信に送信する、分割データが元データと比較してどの位置にあるかを示す番号。送信時に分割されたデータはこれを手がかりに再構成される。

確認応答番号(ACK番号)

宛先→送信元に送信する、次に受信したいデータのシーケンス番号を送信元に示す番号。送信元はこれを受け取ると、「直前までのデータの送信の成功」を理解する。

ウィンドウ制御

ウィンドウと呼ばれる送信可能なサイズ幅を管理しつつ、確認応答を待たずに次々とデータを送信する、送信側の機能。

フロー制御

高負荷で処理がもたつきバッファ(データを一時的に保存ができる領域)が溢れそうな時などにウィンドウサイズを調整することで受信料(送信側の送信量)をコントロールする受信側の機能。

輻輳制御

ウィンドウサイズ分一気に送ってしまうと受信側の状況によっては処理しきれえず輻輳(ネットワーク上の混雑)を起こしてしまう可能性があるため、輻輳が起きないよう慎重にデータを送信していく機能。

UDP

  • コネクションレス
  • ベストエフォート
  • UDPで扱うデータの単位はUDPデータグラムといわれます。

<UDPヘッダ>

  • 送信元、宛先ポート番号(16)
  • データ長(16)
  • チェックサム(16)

プロトコル

https://ntorelabo.com/2022/10/13/tcp-ip%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e5%b1%a4%e3%83%97%e3%83%ad%e3%83%88%e3%82%b3%e3%83%ab/

ルーティング

ネットワーク層でL3(レイヤー3)スイッチ、ルータが経路情報を制御して、最適な経路を選択して転送することです。

  1. 非カプセル化をおこない、パケットを取り出す。
  2. ルーティングテーブルから、ネットワーク部が完全に一致しているエントリを探す。(ルーティングテーブルに載っていない宛先アドレスのパケットを受信した場合は、そのパケットを破棄します。
  3. IPパケットをカプセル化する。
  4. ネクストホップと出力インターフェースに従ってパケットを転送する。
  • 宛先MACアドレスはARPで調べる。ARPテーブルに情報がば無ければARP要求を送信して問い合わせることになる。
  • 宛先MACアドレスや送信MACアドレスは、ルータを経由するたびに付け替えられる。

ルーティングテーブルの表示

show ip routing

宛先の指定方法説明
ホストルートホストルートとはそのアドレスを持つホストへの経路です
宛先アドレスにホストアドレスを指定しサブネットに255.255.255.255を利用します。
(config)#ip route 192.168.1.1 255.255.255.255 10.1.1.1
ネットワークルートネットワークルートとは、そのネットワークへの経路です。
宛先アドレスにネットワークアドレスを指定し、サブネットに255.255.255.0などを利用します。
(config)#ip route 192.168.1.0 255.255.255.0 10.1.1.1
デフォルトルートデフォルトルートとは、未知のネットワークにパケットを転送する際に使用する経路です。宛先アドレスに0.0.0.0を指定し、サブネットに0.0.0.0を使用します。
(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1

ロンゲストマッチ

ネットワークアドレスのプレフィックス長が最も長く一致しているルートに転送する(ロンゲストマッチ

デフォルトルート

  • デフォルトルートは、ルーティングテーブルに登録されていないネットワーク宛のパケットを転送する際に使用します。
  • デフォルトルートを使用すると、ルーティングテーブルの情報量を少なくすることができます。
  • 手動での設定とプロトコルでの設定があります。
  • デフォルトルートは「Gateway of last resort is」にも表示されます。

【デフォルトルートの設定】
(config)#ip route0.0.0.0 0.0.0.0 {<next-hop> | <interface>} [<distance>] [permanent]
…スタティックルートの設定と同じで、宛先ネットワークとサブネットの両方に0.0.0.0 を指定します。

スタティックルート

スタティックルートとは管理者が手動で設定したルート情報です。ルータの負荷を最小限に抑え、セキュリティも強化されます。

(config)#ip route <address> <mask> { <interface> | <next-hop> } [<distance>] [permanent]

*distance…アドミニストレーティブディスタンス値
*AD値のデフォルトは「1」

直接接続
スタティックルート
出力インターフェイスのみ指定
IPアドレスで指定しない?
再帰
スタティックルート
ネクストホップアドレスのみ指定
完全指定
スタティックルート
出力インターフェイスとネクストホップ両方を指定

フローティングスタティックルート

フローティングスタティックルートとはスタティックルートをバックアップルートとして扱う手法です。
スタティックルートのアドミニストレーティブディスタンス値をメインルートより大きくし通常はメインルート、障害が発生した時にスタティックルートを使用します。

ダイナミックルーティング

ダイナミックルーティングの場合、障害が発生しても自動でルートを切り替え切り替えられます。スタティックルーティングよりも帯域やCPUに負担がかかります。

メトリック

同じ宛先ネットワークに対して複数のルートが存在する場合、各ルーティングプロトコルはルートごとにメトリックと呼ばれる数値を比較して最適ルートを決定します。

プロトコルメトリック説明
RIPv1、RIPv2ホップカウントルータから宛先ネットワークまでに経由するルータ数
OSPFコストインターフェイスの帯域幅から算出される値
コスト=基準帯域幅÷インターフェイスの帯域幅
EIGRP帯域幅
遅延
インターフェイスの帯域幅と遅延から算出される値
複合メトリック=(帯域幅+遅延)×256

アドミニストレーティブディスタンス

宛先に対して複数の情報源がある場合、最も優先度の高いプロトコルからのルート情報だけをルーティングプロトコルに学習します。この優先度を決定するのが、アドミニストレーティブディスタンスです。

ルートの情報源デフォルトのAD値
直接接続0
スタティックルート1
EIGRP集約5
EBGP(外部BGP)20
EIGRP(内部)90
OSPF110
IS-IS 115
RIPv1、RIPv2120
EIFRP(外部)170
IBGP(内部BGP)200
不明
AD値が255の場合は到達不能
255

ルーティングプロトコルの分類

使用する場面による分類

自立システム

自立システム(AS:Autonomous System)は同じ運用ポリシーのもとで動作するネットワーク(ルータの集合)のこと

EGP(Exterior Gateway Protocol)AS間で経路情報をやり取りするプロトコル
BGP

IGP(Interior Gateway Protocol)…AS内で経路情報をやり取りするプロトコル
RIP、OSPF、EIGRP

アルゴリズムによる分類

パスベクタ型

デフォルトでは経由するASが少ない経路をベストパスとして使用します。

BGPが該当します。

ディスタンスベクタ型

  • ティスタンス(距離)とベクトル(方向)をもとに、ベルマンフォード法(アルゴリズム)によって計算
  • ルーティングテーブル全体を直接接続されている隣接ルータに送信する。
    (定期的なルーティングアップデートも行われる)
  • 代表的なディスタンスベクタープロトコルは、RIPIGRP です。
    EIGRPはリンクステート型の特徴も取り入れており、拡張ディスタンスベクタ型といわれます。)
  • メトリックにはホップカウントを使用
スプリットホライズン

スプリットホライズンは、ディスタンスベクターによるネットワークで、情報 がやってきた方向に送り返すことを禁止することにより、不正なルーティング情報とル ーティングのオーバーヘッドを軽減します。

リンクステート型

各ルータはリンクステート(接続情報)からネットワークの全体像を把握しSPFアルゴリズム(ダイクストラのアルゴリズム)によって計算します。代表的なリンクステートプロトコルは、 OSPF です。

リンクステートプロトコルは、自身のリンクの状態を含む更新をネットワーク内に ある他の全てのルータに送信する。

コンバージェンスは早く、ルータへの負荷は大きい

  • スケーラブル…階層型設計
  • 最初にネイバー関係を確立
  • リンク情報を交換
  • SPFアルゴリズム
  • トポロジ全体を把握
  • イベントトリガーアップデート
  • コンバージェンス(収束)が高速

クラスフルルーティングプロトコルとクラスレスルーティングプロトコル

クラスフルルーティングプロトコル

  • ルーティングアップデートにサブネットマスク情報を含めない
  • VLSMや不連続サブネットをサポートできません。
  • RIPv1、IGRPなどがあります。

クラスレスルーティングプロトコル

  • サブネットマスク情報を含めるルーティングプロトコル
  • VLSMや不連続サブネットをサポートします。
  • RIPv2、OSPF、EIGRPなどがあります。

等コストロードバレンシング

Ciscoルータでは4つまでメトリックが最小のルートをルーティングテーブルに登録し、トラフィックを複数に分配する機能があります。この機能を等コストロードバランシングといいます。

異なるルーティングプロトコルで学習した経路を使ったロードバランシングは行わない

ルート集約

複数のルート情報を一つにまとめることをルート集約といいます。

ルーティングテーブルの検索にかかる負荷を軽減できます。

ルーティングアップデートのトラフィックを軽減できます。

コマンド構文

IPv6のルーティングの有効化

(config)#ipv6 unicast-routing

固定ページの新規追加方法

1.固定ページを新規追加する

固定ページ>固定ページ一覧(新規追加でもOK)をクリックします。

2.タイトルや本文などブロックを入力する

下記のような編集画面が表示されます。大きく、メインのエディターエリアと上部ツールバー、右のツールバーがあります。

メインエリアではタイトルのほか、ブロック単位で文章や見出し、画像、などの各種ブロックを追加していくことができます。

繰り返し挿入したい箇所を選びブロックを追加していきます。

任意のブロックにカーソルを合わせると、(「ブロック」タグが選択されている状態の)右側メニューでそのブロックの設定ができます。

ページを公開する

ページを公開しても良い場合は、「公開」ボタンを押下して保存しましょう。ページが公開されて一般の人も閲覧できるようになります。

プレビューで確認することもできます。

メニューに固定ページを設定する

  1. 管理画面メニューの「外観」>「メニュー」
  2. 固定ページのエリアでヘッダーメニューに追加したい項目を選ぶ
  3. 「メニューに追加」を選択する
  4. ドラッグ&ドロップで追加項目の表示したい位置を決める
  5. 「メニューを保存」を選択する
WordPressの固定ページ編集方法

サイトのページを修正・管理するには固定ページを編集します。

【固定ページとは〜例】

  • トップページ
  • 会社概要
  • 採用(リクルートページ)
  • お問い合わせ
  • 利用規約・プライバシーポリシー
  • サイトマップなど

固定ページを編集する

WordPressの管理画面から、「固定ページ」>「固定ページ一覧」を開きます。

編集したい記事にマウスカーソルを合わせると、「編集」が出てくるのでそれをクリックか、「記事のタイトル名」をクリックすると、編集画面を開くことができます。

「ブロックエディター」とは

ページの編集画面はブロックといわれる単位でコンテンツを作っていくブロックエディターが採用されています。

見出し・段落・箇条書きリスト・画像・動画など、さまざまな要素を組み合わせることができます。このような個別のコンテンツ要素を「ブロック」単位で管理できるのが、ブロックエディタの特徴です。

ブロックエディタの画面は、以下のエリアから構成されています。

①ツールバーブロックの新規追加、元に戻す/やり直す、文書構造の確認など
②保存/公開、オプション下書き保存、公開、オプション設定など
③コンテンツ編集メインコンテンツの編集エリア
④ブロックツールバーブロックごとの各種設定
⑤パネル記事全体/ブロックごとの各種設定
⑥パンくずリスト編集/選択中のブロックの位置を階層で表示

新しくブロックを追加する

プラスをクリックして追加したいブロックを選びます。

ブロックを編集する

①ブロックを移動する

ブロックツールバーの上下マーク、掴みマークをドラッグして移動できます。

②ブロックを削除する

ブロックツールバーの右のオプションメニューから削除を選択します。

テキストの編集方法

編集したいテキストを選択するとツールバーが表示されるので、そこから編集します。

各種メニューから目的に沿って選択し、編集します。

WordPressのブログの編集方法

記事の作成

新規記事の作成方法は、サイドバーの「投稿」→「新規追加」をクリックします。

タイトルをつける

タイトルは、上記の「タイトルを追加」と書いてある部分に書き込みます。

SEO的な観点から、タイトルの長さは32文字前後がおすすめです。

本文を書く

タイトルを入力するボックスの下は、本文を書き込むエディターです。

ブロックの左の「+」を押すと、段落・画像・スペースなどを追加できる仕組みです。

本文はボックス内に文字を入力してけばOKです。

見出しをつける

ボックスに文字を入力した後に、マウスのカーソルを入力した文字あたりで動かすと、ボックス上部にツールバーのようなものが出てきます。

一番左をクリックすると、「変換」→「見出し」を選択できるので、クリックします。

見出しは、H2→H3→H4という風に構造化されていきます。(H2が大きな見出し)

画像を挿入する

本文に画像を挿入する方法は、ブロック横もしくは下の「+」をクリックして、「一般ブロック」→「画像」をクリックします。

画像挿入の方法は3つある

  • アップロード
  • メディアライブラリ
  • URLから挿入

上記の3つから、画像挿入の方法を選択することになります。

ワードプレス内に画像を保存しておける「メディアライブラリ」を選択するのがおすすめです。

「メディアライブラリ」をクリックした後に、挿入したい画像をドラッグ&ドロップすると、画像が保存されるので、あとは画像を選択すると挿入が完了です。

カテゴリーを決める

ブログカテゴリーを考えている人は、右サイドバーから「カテゴリー」をクリックして、自分の好きなカテゴリーをクリックまたは「新規カテゴリーを追加」からカテゴリー追加できます。

アイキャッチ画像を入れる

右サイドバーの「アイキャッチ画像」→「アイキャッチ画像を設定」で、メディアライブラリから選択します。(新規画像を使いたい場合は、ドラッグ&ドロップ)

投稿の仕方

記事を投稿できる状態になったら、右上の「プレビュー」をクリックして、内容をチェックします。

内容がOKなら、右上のプレビュー横の「公開する」をクリックします。

「公開してもよいですか?」と確認されるので、「公開」をクリックすると投稿完了です。

記事の編集/リライトの仕方

「WordPress管理画面」→「投稿」→「投稿一覧」をクリックします。

編集したい記事タイトルをクリックするか、タイトルにカーソルを合わせると表示される「編集」をクリックすると編集画面になります。

リライトや編集が完了したら、右上の「更新」をクリックすれば更新完了です。

コンタクトフォーム7 の設定方法とカスタマイズ方法

コンタクフォーム7とは

WordPressのプラグイン「Contact Form 7」は、初心者でも簡単に問い合わせページを作ることができます。またこのプラグインは問い合わせだけでなく、自動返信メールやサンクスページなどのカスタマイズも可能です。

フォームの作成・編集方法

左側の【お問い合わせ】から【コンタクトフォーム】を選択します。

フォームを編集する部分には、あらかじめ「名前」「メールアドレス」「題名」「メッセージ本文」の項目が設けられています。

自動返信メールの設定

【メール】のタブをクリックして自動返信メールを設定します。
自動返信メールとは、フォームを使って問い合わせを行った人に対して自動で送られるメールです。

たとえば問い合わせをした方に対して「お問い合わせありがとうございます。」といった内容のメールを送ることができます。

【メール】のタブに移動し、スクロールすると【メール (2)】という項目があります。
そちらのチェックボックスにチェックを入れると自動返信メールを作成できるようになります。

次に、自動返信メールで送られるメッセージ内容を作成します。

初期設定のままでは問い合わせ内容がそのまま送り返されるだけですが、問い合わせに対するコメントや返信までにかかる日数などを記載することもできます。
また、自動返信により送られたメールであることを伝えられます。