ネットワークルーティングプロトコルは、InteriorGatewayプロトコルとExteriorGatewayプロトコルの2つの主要なカテゴリに分類されます。内部ゲートウェイプロトコルは、単一の自律システム内で情報を共有するためにルーターによって使用されます。 Linuxを実行している場合は、システムをオープンソース(GPLv2)ルーティングスタックQuaggaを介してルーターとして動作させることができます。
クアッガとは何ですか?
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
Quaggaは、ルーティングソフトウェアスイートであり、GNUSebraのフォークです。これは、Open Shortest Path First(OSPF)、Routing Information Protocol(RIP)、Border Gateway Protocol(BGP)、およびUnixのようなプラットフォーム用のIntermediate System to Intermediate System(IS-IS)などのすべての主要なルーティングプロトコルの実装を提供します。
QuaggaはIPv4とIPv6の両方のルーティングプロトコルを実装していますが、完全なルーターとしては機能しません。真のルーターは、すべてのルーティングプロトコルを実装するだけでなく、ネットワークトラフィックを転送する機能も備えています。 Quaggaはルーティングスタックのみを実装し、ネットワークトラフィックを転送するジョブはLinuxカーネルによって処理されます。
Quaggaは、プロトコル固有のデーモンを介してさまざまなルーティングプロトコルを実装します。デーモン名は、ルーティングプロトコルの後に文字「d」が続くものと同じです。 Zebraはコアであり、プロトコルに依存しないデーモンであり、カーネルに抽象化レイヤーを提供し、TCPソケットを介してZservAPIをQuaggaクライアントに提示します。各プロトコル固有のデーモンは、関連するプロトコルを実行し、交換された情報に基づいてルーティングテーブルを構築する責任があります。
このチュートリアルでは、OSPFプロトコルを実装して、Quaggaを使用して動的ルーティングを構成します。セットアップには、AlphaとBetaという名前の2つのCentOS7.7ホストが含まれています。両方のホストが192.168.122.0/ 24へのアクセスを共有します ネットワーク。
ホストアルファ:
IP:192.168.122.100/24
ゲートウェイ:192.168.122.1
ホストベータ:
IP:192.168.122.50/24
ゲートウェイ:192.168.122.1
まず、Quaggaパッケージを両方のホストにインストールします。 CentOSベースリポジトリで利用可能です:
yum install quagga -y
IP転送を有効にする
次に、Linuxカーネルによって実行されるため、両方のホストでIP転送を有効にします。
sysctl -w net.ipv4.ip_forward = 1
sysctl -p
次に、 / etc / quaggaに移動します ディレクトリを作成し、セットアップ用の構成ファイルを作成します。 3つのファイルが必要です:
- zebra.conf :Quaggaのデーモン構成ファイル。ここで、インターフェースとそのIPアドレスおよびIP転送を定義します。
- ospfd.conf :プロトコル構成ファイル。OSPFプロトコルを介して提供されるネットワークを定義します。
- デーモン :実行に必要な関連するプロトコルデーモンを指定する場所
ホストAlphaでは、
[root@alpha]# cat /etc/quagga/zebra.conf
interface eth0
ip address 192.168.122.100/24
ipv6 nd suppress-ra
interface eth1
ip address 10.12.13.1/24
ipv6 nd suppress-ra
interface lo
ip forwarding
line vty
[root@alpha]# cat /etc/quagga/ospfd.conf
interface eth0
interface eth1
interface lo
router ospf
network 192.168.122.0/24 area 0.0.0.0
network 10.12.13.0/24 area 0.0.0.0
line vty
[root@alphaa ~]# cat /etc/quagga/daemons
zebra=yes
ospfd=yes
ホストベータ版では、
[root@beta quagga]# cat zebra.conf>
interface eth0
ip address 192.168.122.50/24
ipv6 nd suppress-ra
interface eth1
ip address 10.10.10.1/24
ipv6 nd suppress-ra
interface lo
ip forwarding
line vty
[root@beta quagga]# cat ospfd.conf
interface eth0
interface eth1
interface lo
router ospf
network 192.168.122.0/24 area 0.0.0.0
network 10.10.10.0/24 area 0.0.0.0
line vty
[root@beta ~]# cat /etc/quagga/daemons
zebra=yes
ospfd=yes
OSPFプロトコルを使用するには、ファイアウォールで許可する必要があります。
firewall-cmd --add-protocol=ospf –permanent
firewall-cmd –reload
次に、zebraデーモンとospfdデーモンを起動します。
# systemctl start zebra
# systemctl start ospfd
以下を使用して、両方のホストのルートテーブルを確認します。
[root@alpha ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 via 192.168.122.50 dev eth0 proto zebra metric 20
10.12.13.0/24 dev eth1 proto kernel scope link src 10.12.13.1
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100
Alphaのルーティングテーブルに10.10.10.0/24のエントリが含まれていることがわかります。 192.168.122.50経由 プロトコルゼブラを通じて提供 。同様に、ホストBetaでは、テーブルにネットワーク 10.12.13.0 / 24のエントリが含まれています 192.168.122.100経由 。
[root@beta ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.1
10.12.13.0/24 via 192.168.122.100 dev eth0 proto zebra metric 20
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100
ご覧のとおり、セットアップと構成は比較的簡単です。複雑さを増すために、ルーターにネットワークインターフェイスを追加して、より多くのネットワークにルーティングを提供できます。同じ方法を使用してBGPプロトコルとRIPプロトコルを実装することもできます。