GNU/Linux >> Linux の 問題 >  >> Linux

オープンソースを使用してLinux上にSDNを作成する

ネットワークルーティングプロトコルは、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プロトコルを実装することもできます。


Linux
  1. このLinuxツールとのオープンソースファイル共有

  2. このオープンソースツールを使用してLinuxメモリフォレンジックを実行します

  3. 私のLinuxストーリー:オープンソースで言語の壁を打ち破る

  1. Goxelを使用したオープンソースの3Dピクセルアート

  2. Draw.ioを使用したオープンソースのマインドマッピング

  3. オープンソーススキルを持つITプロフェッショナルの採用を増やすための雇用主

  1. このオープンソースツールを使用して、Linux上のiPhoneにアクセスします

  2. このオープンソースツールを使用して、USB上に複数のLinuxディストリビューションを保持します

  3. このオープンソースの財務ツールを使用して、Linuxの予算を管理します