ルータの機能とルーティング

# ルータの基本設定
ルータのインターフェイスは、ケーブルを差し込んだだけではリンクアップ（通信可能な状態になること）しないため、有効化を忘れないように注意しなければならない。

### ROMMON(ROMモニタ)モード
ルータの起動モードの1つ。パスワードリカバリーやIOSのリカバリーなどで使用するモード。以下のいずれかの条件で起動した場合そのモードになる。

+ ルータの電源を入れてから60秒以内にBreak信号を送る
+ コンフィグレーションレジスタが「0x2100」になっている（デフォルトは「0x2102」）
+ IOSが破損している

## IPアドレスの設定
次の手順で設定を行う。

1.**設定対象のインターフェイス（差し込み口）のインターフェイスコンフィギュレーションモードに移行する**
**書式:interface タイプ ポート番号**
グローバルコンフィギュレーションモードで行う必要がある。タイプには機器のインターフェイスによって以下の通りに設定する

| タイプ | 内容 |
|:-:|:-:|
| Ethernet(E)  | 通信速度が10Mbpsのインターフェイス  |
| FaseEthernet(F,Fa)  | 通信速度が100Mbpsのインターフェイス  |
| GigaEthernet(G,Gi)  | 通信速度が1Gbpsのインターフェイス  |
| Loopback(L,Lo)  | 自分自身を表す仮想的なインターフェイス  |

ポート番号にはインターフェイスの番号を指定する。数字を指定する場合と、「スロット番号/インターフェイス番号」という形式で指定する場合もある。

2.**IPアドレスを設定する**
**書式:ip address IPアドレス サブネットマスク**
インターフェイスコンフィギュレーションモードで実行する必要がある。サブネットマスクはプレフィックス長表記だとエラーになる。

3.**インターフェイスを有効化する**
**書式：no shutdown**
インターフェイスコンフィギュレーションモードで実行し、有効化する必要がある。デフォルトでは無効になっており通信を行うことは出来ない。また、ケーブルを接続しただけでは有効にならないので注意する。

~~~ md
RouterA#configure terminal
##対象のインターフェイスコンフィギュレーションモードに移行する
RouterA(config)#interface FastEthernet 0/0
##IPアドレスを設定する
RouterA(config-if)#ip address 192.168.1.1 255.255.255.0
##インターフェイスを有効にする
RouterA(config-if)#no shutdown

RouterA(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
~~~

## シリアルインターフェイスの設定
主にWAN接続で利用され、DCE（モデムなどのこと）と呼ばれる機器が必要になる。DCEとDTE（利用者のデータを送信する機器でルータやPCのこと）間で送受信のタイミングを合わせるためのクロック信号というものをDCEが送信する。


::: note info
**バックツーバック接続とは？？**
ルータ同士をシリアルケーブルで接続すること。ルータ同士で接続した場合、どちらかのルータがDCEの役割をする必要がある。
:::

### show controllers serialコマンド
**書式：show controllers serial 番号**
DCEかDTEの確認をするためのコマンドで、特権EXECモードで行う必要がある。

### clock rateコマンド
**書式：clock rate クロックレート値**
クロック信号を送る回数であるクロックレートを設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
DCEのコネクタが接続されているルータの場合設定が必要。

## インターフェイスの通信モードと通信速度の設定
Cisco製のルータのイーサネットインターフェイスでは、[オートネゴシエーション機能](https://qiita.com/matuumo/private/08eb13a2b99b8091a9f5#%E3%82%AA%E3%83%BC%E3%83%88%E3%83%8D%E3%82%B4%E3%82%B7%E3%82%A8%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)がデフォルトで有効になっている。

### duplexコマンド
**書式：duplex [auto | full | half]**
通信モードのオートネゴシエーション機能の有効・無効を設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
autoを指定すると有効になり、fullやhalfを選択すると無効になる。通信モードがそれぞれ全二重、半二重に固定で設定される。

### sppedコマンド
**書式：speed [10 | 100 | 1000 | auto]**
通信速度のオートネゴシエーション機能の有効・無効を設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
数字を指定するとその通信速度で動作するが、規格で決められている速度より大きい数字を指定することは出来ない。autoを指定すると有効になる。

### descriptionコマンド
**書式:description [テキスト]**
インターフェイスに説明文を記載するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。

## インターフェースの確認

### show interfaceコマンド
**書式：show interface [インターフェース]**
ルータやスイッチでインターフェイスの状態を確認するためのコマンド。特権EXECモードで行う必要がある。インターフェイスを指定しない場合、全てのインターフェイスが表示される。

| 項目 | 内容 |
|:-:|:-:|
| reliability  | インターフェイスの信頼性を表す。255/255が最も信頼性が高く、0/255が最も信頼性が低い  |
| txload  | インターフェイスの送信状態の負荷  |
| rxload  | インターフェイスの受信状態の負荷  |
| Total output drops  | テールドロップが発生し、パケットが破棄されると増加する  |


| カウンタ | 説明 | カウンタが増える主な理由 |
|:-:|:-:|:-:|
| no buffer  | 受信したがバッファが足りずに廃棄したフレームの数  |ブロードキャストフレーム   |
| runts  | IEEE802.3フレームの最小サイズより小さいサイズのフレームを受信した数  | 物理的な問題（ケーブル故障、NIC不良など）、デュプレックスの不一致  |
| giants  | IEEE802.3フレームの最大サイズ（1518バイト）を超えるサイズのフレームを受信した数  | NIC不良  |
| input errors  | runts,giants,no buffer,CRC,frame,overrun,ignoredの合計数  | 各種カウンタの増加  |
| CRC  | FCSに格納されているCRC値と、受信データから再計算したCRC値が一致しなかったフレームの数 | コリジョン、NIC不良、duplexの不一致  |
| ignored  | バッファが足りず、受信せずに無視したフレームの数  | ブロードキャストフレーム  |
| collisions  | コリジョン数  | リンクの使用室が高い状態での通信、半二重を使った通信、デュプレックスの不一致  |
| late collision  | 通常よりも遅れて検出したコリジョンの数(64バイト目を送信した後にコリジョンを検出した場合)  | 規定値を超える長さのケーブルの使用、デュプレックスの不一致  |

```markdown:show interfacesコマンド
SW01#show interfaces FastEthernet 0/1
FastEthernet0/1 is up, line protocol is up (connected)
  Hardware is Lance, address is 000a.413d.1801 (bia 000a.413d.1801)
 BW 100000 Kbit, DLY 1000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s
  input flow-control is off, output flow-control is off
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:08, output 00:00:05, output hang never
  Last clearing of "show interface" counters never

##入力キューの情報;破棄されたパケット数
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  
  Queueing strategy: fifo

##出力キュー内の現在のパケット数/出力キューが保持できる最大パケット数 
　Output queue :0/40 (size/max)

  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     956 packets input, 193351 bytes, 0 no buffer
     Received 956 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     0 watchdog, 0 multicast, 0 pause input
     0 input packets with dribble condition detected
     2357 packets output, 263570 bytes, 0 underruns
     0 output errors, 0 collisions, 10 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out
```

### show interfaces counters errorsコマンド
**書式:show interfaces [インターフェイス] counters errors**
ルータやスイッチでインターフェイスのエラーカウンタを表示させるコマンド。特権EXECモードで行う必要がある。

| カウンタ | 説明 | カウンタが増える主な理由 |
|:-:|:-:|:-:|
| FCS-Err  | FCSエラーはあるがフレームエラーはないフレームの数  | 物理的な問題（ケーブル故障、NIC不良など）、デュプレックスの不一致  |
| Late-Col  | 通常よりも遅れて検出したコリジョンの数（512ビットを送信した後に検出したコリジョン）  | 規定値を超える長さのケーブルの使用、デュプレックスの不一致（半二重側で増加）  |
| Runts  | IEEE802.3フレームの最小サイズより小さいサイズのフレームを受信した数  |  物理的な問題（ケーブル故障、NIC不良など）、デュプレックスの不一致  |
| Giants  | IEEE802.3フレームの最大サイズを超えるサイズのフレームを受信した数  | NIC不良 |


## インターフェイスのIPに関する情報の確認

### show ip interfaceコマンド
**書式：show ip interface [brief] [インターフェイス]**
インターフェイスのIPに関する情報を確認できるコマンド。特権EXECモードで行う必要がある。briefを付けた場合は、インターフェイスの状態が簡易的に表示される。

:::note warn
IPv4アドレスの割り当てのみ確認可能。IPv6アドレスの割り当てを確認することはできない
:::


```markdown:show ip interfaceコマンド
Router#show ip interface brief 
Interface              IP-Address      OK? Method Status                Protocol 
GigabitEthernet0/0     10.0.0.2        YES manual up                    up 
GigabitEthernet0/1     10.0.0.6        YES manual up                    up 
Vlan1                  unassigned      YES unset  administratively down down
```



### インターフェイスの状態
Status(物理層の状態)とProtocol(データリンク増の状態)の結果の組み合わせにより状態を判別することができる。

| Status | Protocol | インターフェイスの状態 |
|:-:|:-:|:-:|
| administratively down  | down  | 管理上インターフェイスを無効にしている。インターフェイスの設定でno shutdownコマンドを実行していない  |
| down  | down  | ケーブルが接続されていない、または断線している。相手側のインターフェイスがシャットダウン状態である、速度の不一致、err-desable状態になっている。  |
| up  | down  | シリアル接続の場合クロックレートが設定されていない。カプセル化のタイプが一致していないなど  |
| up  | up  | インターフェイスは有効に機能している  |


### Null0インターフェース
パケットを破棄する仮想インターフェースのこと。一般的にルーティングループを防止するために使用される。

![kkk61302.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/ea915de8-0850-3450-9e16-7aa9cf88b602.jpeg)


## 接続性の確認
設定が完了したらそれで終わりではなく、問題なく隣接機器や宛先の機器と通信ができるかを確認することが重要になる。


### route printコマンド
Windows PCでルーティングテーブルを表示させるコマンド。インターフェース一覧、IPv4ルーティングテーブル、IPv6ルーティングテーブルを確認することができる。

:::note info
`netstat -r`コマンドでも同じ内容を表示することが出来る。
:::

![k64074.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/491a7e0a-3bcf-1d0f-86ee-70fcdec1eea9.jpeg)



# ルーティングの基本

### show ip routeコマンド
ルーティングテーブルを確認するためのコマンド。特権EXECモードで行う必要がある。ルートをどうやって登録したからを表すコードの一覧などが表示される
ルーティングテーブルに登録されていないセグメント(同じ属性を持つ固まりのこと)に対して疎通確認を行った場合、自動的に破棄される


![キャプチャ.PNG6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/553d6cff-1f3e-0a1c-3ed1-6053823f0684.png)

1．この経路の情報源（L＝自身に設定しているアドレス、C＝直接接続、S＝スタティックルーティング、R＝RIP、O＝OSPFなど）
2．この経路の宛先ネットワークとプレフィックス長
3．[アドミニストレーティブディスタンス/メトリック]
4．ネクストホップのIPアドレス
5．この宛先にパケットを送信するための出力インターフェース

### 経路の情報源

+ **接続ルート(C**)
ルータの直接接続されているインターフェイス上のネットワークのことを指す。表示させるには2つの条件を満たす必要がある。

◆インターフェイスにIPアドレスが設定されていること
◆インターフェイスが有効に機能している（up/up状態になっている）

+ **ローカルルート(L**)
ホストルートとも呼ばれ、ルータに接続している自身のインターフェイスのIPアドレスのこと。/24ように設定しても自身宛の経路なので/32と表示される。

:::note info
複数のルーティングプロトコルで同じ宛先への経路を学習した場合、アドミニストレーティブディスタンス（AD値）が最も低いルーティングプロトコルの経路が表示される。
:::

### アドミニストレーティブディスタンス
ルーティングプロトコルで得た情報を最適な経路として、ルーティングテーブルに登録するのかを判断する基準となる値のことで、Cisco製品で使用される。アドミニストレーティブディスタンス値は**ルーティングプロトコルの優先度で、小さいほど優先度が高くなる**。ルーティングテーブルには優先度の高いルートだけが登録される。
デフォルトの値は以下の表になる。

| プロトコル | アドミニストレーティブディスタンス値 | コード |
|:-:|:-:|:-:|
| 接続されているネットワーク  | 0  | C  |
| スタティックルート  | 1  | S  |
| EIGRP集約ルート  | 5  |   |
| eBGP  | 20  | B  |
| EIGRP内部ルート  | 90  | D  |
| OSPF  | 110  | O  |
| IS-IS  | 115  | I  |
| RIP  | 120  | R  |
| EIGRP外部ルート  | 170  |   |
| iBGP  | 200  | B  |

:::note info
**eBGP（External BGP）とは??**
異なるAS（自律システム）間でピアを張る経路制御プロトコルのこと。
:::

### メトリック
宛先ネットワークまでの距離を表すもの。ルーティングテーブルに登録される最適な宛先ネットワークとは、宛先ネットワークに最短で到達できるルートのこと。ルーティングプロトコル毎に計算に使用する値が異なる。
ルート情報が同じルーティングプロトコルで複数伝わってきた場合、最もメトリック値が小さいルートが優先され、ルーティングテーブルに登録される。


|ルーティングプロトコル | メトリック | 算出方法 |
|:-:|:-:|:-:|
| RIP  | ホップ数  | 宛先に到達するまでに経由するルータの数  |
| OSPF  | コスト  |基準帯域幅(Mbps)÷インターフェイスの帯域幅(Mbps)  |
| EIGRP  | 帯域幅、遅延、信頼性、負荷、MTUを使う複合メトリック  | (帯域幅+遅延)x256  |

:::note info
**EIRGPの計算方法**
EIGRPのメトリックは以下の計算式で求める。

**帯域幅=10000000÷経路上の最小帯域幅(Kbps)**
**遅延=経路上の遅延合計（μ秒）÷10**
**EIGRPのメトリック=256×（ 帯域幅 + 遅延 ）**
:::



### ロンゲストマッチ(最長一致)
ルーティングテーブルで複数の該当するルートが検出された場合に転送先を決める判断基準のこと。**ネットワークアドレスのビットに最も長く一致しているルートに転送する**。


## 異なるルートへのルーティング
Ciscoではそれぞれ以下のように呼び分けられる

### ゲートウェイ
異なるネットワークを接続する機器（ルータやL3スイッチ）

### デフォルトゲートウェイ
ルーティング機能を持たないデバイス（PCやスイッチ）が未知のネットワークにパケットを送信する際に利用するゲートウェイ

### デフォルトルート
ルーティングテーブルに該当する宛先ネットワークが存在しない時に使用される特別なルートのこと。**0.0.0.0/0**で表現し、ネクストホップと出力インターフェイスはともに、インターネットに向けて指定する。ラストリゾートゲートウェイ（パケットを転送するための最後の手段）とも呼ばれる。


# スタティックルーティング
スタティックルートを使用したパケット転送のこと。小規模で単純なネットワークで使用するのが便利。

::: note info
**スタティックルートとは？？**
管理者が**手動で設定してルーティングテーブルに登録したルート情報**のこと。ネットワーク構成を基にして自分で最適なルートを選択しルータの設定に直接入力をする。他のルータと交換することがないので、ルータのCPUやネットワーク帯域を消費しない。設定自体も簡単だが、**障害発生時は手動で再設定する必要がある**。
:::

### ip routeコマンド
**書式：ip route [宛先] [サブネットマスク] [ネクストホップ | 出力インターフェイス] [AD値] [permanet]**
スタティックルーティングを設定するコマンド。グローバルコンフィギュレーションモードで行う必要がある。設定されると、ルーティングテーブル上で「S」と表示される。

| オプション | 意味 |
|:-:|:-:|
| AD値 | 任意のアドミニストレーティブディスタンス値を指定する。**デフォルトは1** |
| permanent  |  転送先に指定した出力インターフェイスがダウンした後も、ルーティングテーブルに経路情報を残すためのオプション |



宛先の指定方法は以下の3種類存在する。

| 指定方法 | 内容 |
|:-:|:-:|
| ホストルート  | そのアドレスを持つホストへの経路のこと。宛先アドレスにホストアドレスを指定し、サブネットに`255.255.255.255`を使用する  |
| ネットワークルート  | そのネットワークの経路のこと。宛先アドレスにネットワークアドレスを指定し、サブネットに`255.255.255.0`などを使用する  |
| デフォルトルート  | 未知のネットワークにパケットを転送する際に使用する経路のこと。宛先アドレスに`0.0.0.0`を指定し、サブネットに`0.0.0.0`を使用する  |

ネクストホップ、出力インターフェイスの指定方法には以下の3種類がある。
| 転送先 | 説明 |
|:-:|:-:|
| 直接接続スタティックルート  | **出力インターフェイスのみを指定する**方法。宛先ネットワークに到達するための出口となるインターフェイスが1つしかないポイントツーポイントのような場合に使用する。  |
| 再起スタティックルート  | **ネクストホップアドレスのみを指定する**方法。ネクストホップ向けの出力インターフェイスはルーティングテーブルをもとに解決する。  |
| 完全指定スタティックルート  | **出力インターフェイスとネクストホップアドレスの両方を指定する**方法。出力インターフェイスがEthernetのようなマルチアクセスで、ネクストホップを明示的に指定する必要がある場合に使用する。  |

``` markdown:デフォルトルートの設定
(config)#ip route 0.0.0.0 0.0.0.0 [ネクストホップ | 出力インターフェイス] [アドミニストレーティブディスタンス値]
```


``` markdown:192.168.2.0のセグメントに対して192.168.1.2経由で登録
R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.1.2
```

::: note warn
スタティックルーティングを登録する際は、双方向通信ができるように自分と相手それぞれに設定が必要
:::

:::note info
スタティックルートによって学習した経路は、その経路が使用不能になってもルーティングテーブルから**削除されない**。
:::


 

### スタティックルーティングの設定例

<details><summary>スタティックルーティングの設定例</summary>

![キャプチャ8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/f9ce5489-0fe4-2e5e-53eb-eebac410127f.png)

各ルータを設置し、クロスオーバーケーブルでつなぎ各ルータは以下のように設定していく。

``` markdown:RT1初期設定
Router>enable
Router#configure terminal
Router(config)#hostname RT1
RT1(config)#interface FastEthernet 0/0
RT1(config-if)#ip address 192.168.10.1 255.255.255.0
RT1(config-if)#no shutdown
```

``` markdown:RT2初期設定
Router>enable
Router#configure terminal
Router(config)#hostname RT2
RT2(config)#interface FastEthernet 0/0
RT2(config-if)#ip address 192.168.20.1 255.255.255.0
RT2(config-if)#no shutdown

RT2(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

RT2(config-if)#exit
RT2(config)#interface FastEthernet 0/1
RT2(config-if)#ip address 192.168.10.2 255.255.255.0
RT2(config-if)#no shutdown
```

``` markdown:RT3初期設定
Router>enable
Router#configure terminal
Router(config)#hostname RT3
RT3(config)#interface FastEthernet 0/1
RT3(config-if)#ip address 192.168.20.2 255.255.255.0
RT3(config-if)#no shutdown
```

各ルータ設定後は以下のようにリンクアップされる。

![キャプチャ10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/0a9c0e65-1446-f33b-19b9-90bc49bf470a.png)

``` markdown:RT1からRT3、RT3からRT1へそれぞれ疎通確認
RT1#ping 192.168.20.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

RT3#ping 192.168.10.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
```
まだスタティックルーティングを設定していないためこの時点では疎通できない。以下のようにスタティックルーティングを設定していく

``` markdown:RT1側の設定
RT1(config)#ip route 192.168.20.0 255.255.255.0 192.168.10.2
```

``` markdown:RT3側の設定
RT3(config)#ip route 192.168.10.0 255.255.255.0 192.168.20.1
```

これでpingコマンド実行すると疎通確認できるようになる。

``` markdown:RT1ルーティングテーブル
RT1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, FastEthernet0/0
S    192.168.20.0/24 [1/0] via 192.168.10.2
```


``` markdown:RT3ルーティングテーブル
RT3#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

S    192.168.10.0/24 [1/0] via 192.168.20.1
C    192.168.20.0/24 is directly connected, FastEthernet0/1
```

</details>



# ダイナミックルーティング
自動的に登録・更新されるルート情報を使用したパケット転送のこと。ルータ同士がルーティングテーブルの作成に必要な情報を自動でやり取りする。ルーティングテーブルの保守を自動的に行ってくれるので、管理者の負荷を大幅に削減することができる。複雑なネットワークや規模の大きなネットワークに効果的だが、ルータに負荷がかかる。


## ルーティングプロトコル
複数の種類が存在し、それぞれ最適な経路を判断する基準や他のルータに通知する情報の内容や動作などが異なる。環境にあったプロトコルを選択する必要がある。

+ RIP(Routing Information Protocol)
+ OSPF(Open Shortest Path First)
+ EIGRP(Enhanced Interior Gateway Routing Protocol)
+ BGP(Border Gateway Protocol)
+ IS-IS(Intermediate System to Intermediate System)


#### アドバタイズ
ダイナミックルーティングでルータ同士が交換しているルート情報をルーティングアップデートといい、ルートの情報を隣接ルータに通知すること。
ルーティングプロトコルごとにアドバタイズの方法は異なる。

## IGP(Interior Gateway Protocol)
自律システム内(Autonomous System)で経路情報を交換するためのルーティングプロトコル。RIP、OSPF、EIGRPなどが分類される。

#### AS(Autonomous System)
ある程度のネットワークを1つのまとまりにして運用・管理する仕組みのこと。ISP（Internet Service Provider）はこのASを管理し、AS同士を接続して世界中のネットワークへアクセスできるようにしている。
それぞれのASには識別するための番号（AS番号）が割り当てられる。
インターネットを構成するASの場合、他のASとAS番号が重複してはいけないため、RIR(Regional Internet Registry)やNIR(National Internet Registry)にAS番号の割り当てを申請する必要がある。
![k37407.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/5d39ceb5-9ece-09da-2d7c-f622253e139d.jpeg)


### ルーティングアルゴリズム
最適なルートを計算する際の考え方で、IGPに分類されるルーティングプロトコルは以下に分けられる

+ **ディスタンスベクタ型**
**分類プロトコル：RIP**
互いのルーティングテーブルの情報を交換する方式。宛先までの距離（distance）と方向（vector）を認識することによって、最適なルートを決定する
:::note info
+ 距離と方向を基に最適ルートを決定する
+ メトリックにはホップカウントを使用する
+ **ネットワークに変更が無くても、定期的にルーティングアップデートを送信する**
+ **隣接ルータから受け取ったルーティングアップデート情報をもとにルーティングテーブルを更新する**
:::



+ **拡張ディスタンスベクタ型**
**分類プロトコル：EIGRP**
ハイブリッド型ともいわれ、従来のディスタンスベクタ型の欠点を改良するための機能拡張が行われた方式。基本的な動作はディスタンスベクタ型だが、リンクステート型の特徴も取り入れられている。


+ **リンクステート型**
**分類プロトコル：OSPF、IS-IS**
それぞれのルータが自身のインターフェイスの情報を交換する。各ルータがネットワークの全体構成を把握し、その情報からSPFアルゴリズム（ダイクストラのアルゴリズム）を使って計算し最適なルートを選ぶ。

#### クラスフルルーティングプロトコル
ルーティングアップデートにサブネットマスクの情報を含められないルーティングプロトコルのこと。RIP（バージョン1）が該当する。

#### クラスレスルーティングプロトコル
ルーティングアップデートにサブネットマスクの情報を含めることができるルーティングプロトコルのこと。RIP（バージョン2）、OSPF、IS-IS、EIGRP、BGPなどが該当する。


### EIGRP（Enhanced Interior Gateway Routing Protocol）
ルーティングプロトコルの1つで、拡張ディスタンスベクタ型ルーティング（別名：ハイブリッドルーティング）。以下の特徴を持つ

+ クラスレスルーティングプロトコルで自動集約もサポート
+ 自身が属しているAS番号内の経路をInternal（内部）、他のAS番号に属している経路やEIGRP以外のルーティングプロトコルで学習した経路をexternal（外部）として識別
+ 「ネイバーテーブル」「トポロジテーブル」「ルーティングテーブル」の3つのテーブルを保持
+ メトリックには、帯域幅・遅延・信頼性・負荷を基に計算する**複合メトリック**を使用
+ ルーティングアルゴリズムは「DUAL」
+ メトリックが等しくない経路での負荷分散が可能な**不等コストロードバランシング**をサポート
+ IPだけでなく Novell IPXやAppleTalkのルーテッドプロトコルもサポート


#### 3つのテーブルとメトリック

| テーブル名 | 内容 |
|:-:|:-:|
| ネイバーテーブル  | EIGRPのネイバー関係を確立しているルータの一覧表  |
| トポロジテーブル  | EIGRPで学習した全経路情報を保持するテーブル  |
| ルーティングテーブル  | トポロジテーブルからサクセサルートを抽出したテーブル  |

| メトリック名 | 内容 |
|:-:|:-:|
| FD(Feasible Distance)  | 自ルータから宛先ネットワークまでの合計メトリック |
| RD（Reported Distance）  | ネイバールータから宛先ネットワークまでの合計メトリック。AD(Advertised Distance)と呼ぶこともある  |

:::note info
**サクセサとは？？**
EIGRPの最適経路のネクストホップのことで、宛先ネットワークまでのFDが最も小さくなるネクストホップのこと。サクセサのFDよりも小さいRDを通知するネイバを**フィージブルサクセサ**という。フィージブルサクセサはバックアップルートや不等コストマルチパスのネクストホップとして使われる。
:::

## EGP(Exterior Gateway Protocol)
異なるAS間で経路情報をやり取りするルーティングプロトコル。BGPが分類される。

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/e1173ce4-fc62-064e-2728-00598b9b4cb7.png)


### BGP
経路情報を交換するルーティングプロトコルで、以下の2種類がある。

+ **iBGP（Internal BGP）**
同一ASのネイバーとの経路情報交換に使うBGP。直接接続していなくてもよい。AD値は200。

+ **eBGP（External BGP）**
異なるASのネイバとの経路情報交換に使うBGP。直接接続している必要がある。AD値は20。

![k51303.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/68c95744-f291-0ef0-d71c-a5e4f5ce0542.jpeg)




### フローティングスタティックルート
普段はダイナミックルーティングプロトコルを利用し、障害発生などで利用できなくなった際、スタティックルートを使用する様にバックアップルートとして設定しておくこと。スタティックルートを2つ用意して優先度を変えることも可能。