ひとり情シス日記#1 ネットワーク基礎あれこれ

小さな組織でひとり情シスやる事になったので、自己リマインド&勉強アウトプット用の記事。


VLAN

仮想的なLANを構築でき、ネットワーク管理が容易になる。IPレイヤだけで管理することも可能だが、ブロードキャストドメインも分割できるのがメリット。つまり、同SW配下での別ネットワーク運用では(192.168.1.0-192.168.2.1)ブロードキャストが届いてしまいネットワーク負荷が上がる。また、host側でIPアドレス(ネットワーク部)を変更すれば、別ネットワークに侵入できてしまうので、VLANでの構築はセキュリティが向上する。さらに、ポートセキュリティを設定することによって、不正通信の対処が可能になる。フレーム破棄+モードによりportshutやSNMPトラップ、syslogメッセージなどの設定がある。

VLAN同士をアクセスしたい場合は、VLAN間ルーティングを使用す(L3SWのSVIにIPを付与した時点で、自動的にルーティングされる)もしVLAN間ルーティングでVLAN間を通信させたく無い場合はL3SWのSVIへin方向(他のVLANへ出て行かないように)へACLを設定する。

例えば、VLAN20(10.1.2.0/24)からVLAN30(10.1.3.0/24)へ通信を遮断したい場合、vlan120のinterfaceのコマンド例

interface vlan 20
ip address 10.1.2.1 255.255.255.0
ip access-group hogeACL in

ip access-list extended hogeACL
deny ip any 10.1.3.0 0.255.255.255
permit ip any any

ACL

たとえば、fa0/0からfa0/1間でのルール定義する場合、一般的に宛先アドレスに近い側のinterfaceへ適応することが推奨されている。もしfa0/1の先に通信拒否したいhostがあるとすれば、fa0/1側にACL設定を入れる。#ip access-group 10 out
どのinterfaceでかつ、in方向かoutにルールを適応したいかで記述コマンドが変わるので注意が必要。
特定通信の拒否ルールの場合、最後に暗黙のdenyが入るため、全ての通信拒否してしまう。その前にpermit any anyを入れることで、拒否ルールが機能する。

access-list 15 deny 192.168.1.0 0.0.0.255
access-list 15 deny 192.168.2.0 0.0.0.255
access-list 15 deny 192.168.3.0 0.0.0.255
access-list 15 permit any any
(暗黙のdeny)

ルーティング

同じL3内で直接接続される場合は、各interfeceにIPアドレス設定をするだけでOK。異なるネットワーク間の往来が可能(IF1/192168.1.1⇔IF2/192.168.2.1)

異なるルーターをまたぐ場合は、ネクストホップのネットワークを設定する必要がある。例えば、192.168.1.0(R1)192.168.2.1⇔192.168.2.2(R2)192.168.3.0のNW構成であった場合、R1側は192.168.3.0のNW情報は持っていない。そのため、192.168.3.0へ行きたければ、R2のIFが持つnexthop192.168.2.2へ行くようにstaticを記述する。【#ip route 192.168.3.0 255.255.255.0 192.168.2.2】
R2も同様に192.168.1.0の情報を知らないので、下記設定を行う。
【#ip route 192.168.1.0 255.255.255.0 192.168.2.1】

さらにR2の奥にR3(192.168.4.0)が存在する場合は、ルーティングテーブルを追加することになるが、R1に設定するnexthopは同じになる
【#ip route 192.168.3.0 255.255.255.0 192.168.2.2】
【#ip route 192.168.4.0 255.255.255.0 192.168.2.2】

つまり、ルーティングテーブルの記述コマンドは次の通りになる。
【#到達したいネットワークアドレス、サブネットマスク、自身が知っているnexthopのIPアドレス】

show ip route コマンドにより、ルーティングテーブルを確認することができる。

ルーティングテーブル内で、途中まで同一のアドレスであった場合はパターンの一致する長さで経路選択をする。これをロンゲストマッチと呼ぶ。
ip route 192.168.0.0/16 gateway tunnnel 1
ip route 192.168.2.0/24 gateway tunnnel 2  ⇒こちらを優先


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

障害対策を目的にRT間で冗長構成を組んでいる場合に用いられ、ルーティングプロトコルにより動作する。RIP(ポップ数)、OSPF(帯域幅)、BGP(AS間との接続)など、これらプロトコルにより、RTに直接接続(directly connected)されない経路情報も広告(アドバタイズ)される。

(エリア1 R1、R2)⇔ R3 ⇔(エリア0 R4)の構成で具体的なOSPFのルーティングコマンドは以下の通り。

OSPFのプロセス番号(仮に10とする)を定義し
直接port接続(ダイレクトコネクト)しているネットワークの情報とイルドカードマスク、エリア№を記述する。

R1
#router ospf 10
#network 192.168.1.0 0.0.0.255 area1
#network 192.168.2.0 0.0.0.255 area1

R3
#router ospf 10
#network 192.168.3.0 0.0.0.255 area1
#network 192.168.4.0 0.0.0.255 area0

この状態で、R1にてshow ip route コマンドを実行すると下記の通り異なるエリアのroute情報もIA(インナーエリア)としてアドバタイズされ出力してくれる。

C      192.168.1.0/24 is directly connented. FastEthernet0/0
O IA 193.168.5.0/24 [110/3] via 193.168.3.3 FastEthernet0/1

なお、R3でのshow ip route の結果は、R3は両方のエリアに属しているのでIAの表記が省略して出力される。

NAT

①NAPT
一方高NATと呼ばれている。1つのグローバルIPアドレス(5.0.0.1)にポート番号(50000)を付与して通信することで、グローバルIPのリソースを節約することができる。ローカルIP側にもポート番号が付与される。

【NATテーブル】
192.168.0.1:49000 ⇔ 5.0.0.1:50000
192.168.10.1:49001 ⇔ 5.0.0.1:50001

内部(ローカルら外部に向けてデータ転送する場合、NATテーブルでポート番号が分かるため、外部からデータは戻ってくることができる。しかし、外部起点からの通信はポート番号が不明のため内部(ローカルIP側)には届かない。

RT設定コマンド
・interfaceごとにinside(fa0/0)、outside(fa0/1)を設定する。
・inside側の通信許可のためACLを定義 access-list 15 permit 192.168.1.0 0.0.0.5
・ACLとnatテーブルを紐づけ ip nat inside source list 15 pool interface FastEthernet 0/1 overload

②スタティックNAT
1対1のアドレス変換を行う。ポート番号は付与しない。
5.0.0.1 ⇔ 192.168.1.1
例えば、ローカル内に外部向けのwebサーバー(192.168.1.1)を配置している場合、RTのstaticで5.0.0.1⇒192.168.1.1へ経路制御を行うような使い方。

RT設定コマンド
・interfaceごとにinside(fa0/0)、outside(fa0/1)を設定する。
・RTへstatic記述 ip nat inside source static 192.168.0.1 5.0.0.1

DHCP

DHCPサーバーはポート67、クライアントはポート68を使用しL4通信のUDP(品質より速度重視)でIPアドレス割り当て。

IP割り当ての挙動
①DHCP Discover クライアントからブロードキャスト
②DHCP Offer サーバーから割り当てるIPをブロードキャスト
③DHCP Request 受け取った情報(IP)に問題なければ、ブロードキャストで正式に要求
④DHCP Ack クライアントは受け取った内容で設定を行う

上記はRTのinterface配下のDHCPサーバーが設置されている想定だが、最近ではRTの別IF(異なるネットワーク網内)で設置されるケースが多い。そうなると、ARP要求はブロードキャストなので、RTのIFで止まりネットワークを超えられない(網外のDHCPサーバーまで届かない)そのため、ルーターにDHCPリレーエージェントの設定を入れることで、ブロードキャスト(arp要求)をユニキャスト(特定相手との通信)でDHCPサーバーへ転送してくれる。

GARP
・IPアドレス割り当て後の重複検知
DHCPで運用しているネットワーク内に固定IP設定(192.168.10.50)の端末Aが紛れている場合、DHCPサーバーのアドレステーブル空きIP(192.168.10.50)と重複してしまう。
そのため、他の端末BはGARPによりARP要求を行う。端末Aは自分が使っていることをGARP発信元の端末Bへ返信する。もし応答が無ければ、端末BはそのIPを使い続ける。さらに、DHCP網内で固定IP端末を運用したい場合は対象のIP(192.168.10.50)をDHCPから除外すると良い。

・ARPキャッシュの更新
HSRPなど、冗長構成のVIP通信をスムーズに行うために、定期的に最新のARPテーブルに更新している(cisco製品は標準4時間)

DNS

端末 ⇔ RT ⇔ DNSキャッシュサーバー ⇔ ドメイン管理(権威)サーバー

ネットワーク負荷低減のため、端末やRTは一度名前解決したら対応表をキャッシュで残す。(毎回キャッシュサーバーへ問い合わせない)

ルーターにDNSサーバーのIPアドレスを設定する。DNSはgoogleの8.8.8.8または8.8.4.4が有名。

DDNS

拠点間の通信や外部からのリモートアクセスを行う場合、本来であればISPから割り振られた固定グローバルIPが必要だがコストが高い。動的グローバルIPアドレスでもDDNSサーバーを使用することにより代替が可能。動的グローバルIPを付与されたルータは随時DDNSサーバーへ自分のIPアドレスの情報を投げDNSテーブルを最新状態へ更新する。YAMAHA製ルーターであれば、ネットボランチ機能(無料)が実装されており、VPNアクセス構築のハードルが下がる。

また、ネットワークカメラを運用する場合において、カメラにDDNS設定を行うことで外部からのリモートアクセスが可能。(ルーターへ固定G-IP+ポートフォワード設定でもルーター配下のカメラにアクセス可能)
パナソニックカメラの「みえますねっと」では動的グローバルIPとDDNS、ポートフォワードの組み合わせでルーター配下のカメラにリモートアクセスを可能にする。
具体設定例は、ルーターへ取得したDDNS(例:myhome.ddns.net)をWAN側に設定し、対象hostのIP(例:192.168.1.100)とポート№(例:50000)の組み合わせでポートフォワーディングを登録。リモートアクセス側の端末からURLでmyhome.ddns.net:50000へ接続すると、192.168.1.100へ到達する。

但し、ISPからのキャリアグレードNATやプライベートIPアドレスでのルーターWAN接続では使用できない。※DDNSは動的グローバルIPとの紐づけで機能する。通常DDNSサーバーを利用する場合、サーバー提供者の利用料が発生する。

IPV6

128ビットの空間で、プレフィックス(ネットワーク部)とインターフェイスID(ホスト部)から構成。

インターフェイスID
通常、MACアドレスを基にして生成される。IPv6アドレスは128ビットで、そのうちの64ビットがネットワーク部分、残りの64ビットがインターフェースID(ホスト部分)となる。インターフェースIDはデバイスごとにユニークである必要があるが、MACアドレスから直接生成するとプライバシー上の問題が生じる可能性がある。そのため、IPv6のプライバシー拡張機能(Privacy Extensions)の機能を有効にすると、デバイスはランダムなインターフェースIDを生成し、一定の期間ごとに変更する。これにより、個々のデバイスを追跡しにくくなる。

プレフィックスの概要
プレフィックスはIPv6アドレスの先頭部分で、そのネットワーク部分を示します。プレフィックス長はビット単位で指定され、スラッシュ(/)の後にビット数を示します。プレフィックスを基にして、デバイスにユニークなIPv6アドレスが割り当てられます。

グローバルユニキャストアドレスの例
・アドレス 2001:0db8:85a3:0000:0000:8a2e:0370:7334
・プレフィックス 2001:db8::/322001:db8::/32
上記の例では、プレフィックス長が32ビットであり、2001:db8がネットワーク部分を示します。残りのビットはホスト部分として使用されます。

プレフィックス長は、ネットワーク部分のビット数を示します。一般的なプレフィックス長の例を以下に示します。
・/32: ISPや大企業向け
・/48: エンタープライズネットワークや大規模サイト向け
・/64: 一般的なサブネットの長さ。ほとんどのIPv6サブネットを使用

プレフィックスの割り当て
ISPは顧客に対してプレフィックスを割り当てます。例えば、ISPがユーザーに2001:db8:1234::/48を割り当てるとします。もしネットワークを細分化(管理ネットワーク部を増やす)したい場合、割り当てられたプレフィックスを分割してサブネットを作成します。例えば、2001:db8:1234::/48から複数の/64サブネット(例:2001:db8:1234:0001::/64)を生成します。

実際の運用例

  1. ISPからのプレフィックス受信

  2. ルーターがISPから2001:db8:1234::/48のプレフィックスを受け取る

  3. 内部ネットワークのサブネット化:ルーターがこのプレフィックスを基に、内部ネットワークの各サブネットに/64プレフィックスを割り当てる(例: 2001:db8:1234:0001::/64、2001:db8:1234:0002::/64)

  4. デバイスへのアドレス割り当て:各デバイスはSLAACまたはDHCPv6を使用して、/64プレフィックスを基にユニークなIPv6アドレスを生成します。


端末は通常、複数のIPv6アドレスを保持し、目的に応じて適切なアドレスを使い分けて通信します。具体的には、以下の2種類のアドレスを保持します。

1. リンクローカルアドレス(Link-Local Address)

  • 範囲: 同一リンク内(サブネット内)でのみ有効。

  • プレフィックス: fe80::/10。

  • 役割: ローカルリンク内の通信に使用され、主にルーターとの初期接続や、同じサブネット内のデバイス間の通信に利用されます。

  • 自動生成: デバイスは起動時にリンクローカルアドレスを自動的に生成します。

2. グローバルユニキャストアドレス(Global Unicast Address)

  • 範囲: インターネット全体で有効。

  • プレフィックス: 通常、ISPから割り当てられる(例: 2001:db8::/32)。

  • 役割: インターネットや他のネットワークとの通信に使用されます。

  • 割り当て方法: ISPから提供されるプレフィックスを基に、SLAAC(ステートレスアドレス自動設定)やDHCPv6を通じて自動的に設定されます。

IPoE(IPv6使用)で通信速度が向上するかについて整理
IPv6そのものが直接的に速度向上に影響するのではない。PPPoE(Point-to-Point Protocol over Ethernet)またはIPoE(IP over Ethernet)接続の違いが前提にある。PPPoEはIPv4、IPoEはIPv6をサポートしておりPPPoEで通過する網終端装置(現行ユーザーが多く集中するボトルネック要因)を経由せず直接インターネット接続が可能。※IPoEは大容量のGWR(ゲートウェイルーター)を通過。

出典:NUROBiz

フレッツ光ファイバー接続はPPPoE、IPoEどちらでも接続可能。IPoEはPPPoEで必要だったユーザーIDとPASSの設定は不要。ただし、IPv6をサポートしているwebサイトは25%程度に留まり、完全なメリットを享受出来るわけではない。そこで「IPv4 over IPv6」という技術があり、ISPとホームルーター※がIPoEに対応していれば、基本的にはIPv6 IPoEでインターネットに接続しながらも、IPv4のみに対応したWebサイトに接続する場合には自動的にIPv4に切り替える仕組み。IPv6 IPoEの速度を活かしつつ、IPv4、IPv6を意識することなく快適にインターネットを利用できる。

※ルーターでIPv4のパケットデータをIPv6に変換して通信を行う。「IPv6に見せかけたIPv4」のパケットは、IPv6通信網を抜け、通信先のWebサイトやWebサービスに到達する直前でIPv4へと再変換される。IPv6の仮想のトンネルを抜けていくため、この技術は「トンネリング」と呼ばれています。このようにトンネリングをすることで、IPv6に対応していないIPv4のWebサイトやWebサービスでもIPoE方式で扱うことができる。

出典:NTTdocomo IPoE IPv4 over IPv6通信


STPスパニングツリープロトコル

SW冗長を組むと、ループ状になりブロードキャストストームが発生するため、ブロックポートを設けて論理的にツリー状の構成にする必要がある。ブロックポート選出のため、スイッチ間での情報交換の管理用フレームをBPDUという。経路上のパスコスト(受信するinterfaceの帯域
幅で100Mbps(コスト19)、1GBps(コスト4))が一番大きいportが選出される。

ブロックポートに指定されたportの動き
・ユーザーフレームは送信されない
・BPDUの受信は継続する(ルートブリッジ(親SW)からのみBPDUが送信される)
・macアドレスは学習しない
・障害発生時は、ルートブリッジに変更が伝えられ、各SWに通知が届き再計算が行われる

SW冗長で、端末側(PC)を接続するportに接続すると、STPの再計算で繋がるまで50秒ほど時間がかかる。そこで、PC接続させるportにはportfastの設定を入れることでSTP再計算せず、すぐに通信が可能となる。もし誤ってSW間を接続するportにこの設定を入れるとループ原因になるが、あわせてBPDUガード設定を入れておくとBPDUを受信した瞬間にportdisable状態にしてループを防ぐことができる(復旧には管理者が手動解放する必要がある)なので、portfastとBPDUガードは2つセットで設定するのが一般的。

もう一つのポートブロック方法として、ルートガードがある。意図しないSW接続でSTP再計算によりトポロジが変わらないように、portをブロックする。意図しないSWが外された場合はportが自動復旧する。BPDUガードとの違いは、portが自動復旧するので管理者の手間が掛からない点である。

STPの上位互換でRSTPがあり、再計算が高速になるプロトコルがある(STP:最大50秒、RSTP:1~3秒)

VLAN構成のSTP
・CST(common Spanning tree)は複数のVLAN間で1つのSTPを機能させる方法で、SWのメモリ負荷は軽減されるが、多くのVLAN通信がルートブリッジを通過するため、このリンクへのトラフィックが集中する。効率が悪い。
・PVST+(per vlan Spanning tree)
VLANごとに任意のルートブリッジへ変更できるため、最短のパスコストで効率の良い通信することができる。catalystスイッチの標準機能。BPDUも複数になり、SWのメモリ負荷も増える。

STP状態の確認コマンド
#show spanning-tree vlan1

Dos攻撃

3WAYハンドシェイクを利用したSYNフラッド攻撃など。通常は①SYN、②ACK-SYN、③ACKで接続が開始されるが、悪意あるPCが③をサーバーへ返さずに①→②→①→②を繰り返すことで、相手サーバーに負荷をかける行為。DDos攻撃はウイルス感染した踏み台PCが一斉に対象サーバーへDosを仕掛ける。

この記事が気に入ったらサポートをしてみませんか?