ネットワークを構築する必要があるもの

私たち(sysadmins)の全員(そして全員ではないにしても、多くの場合)は少なくとも一度は考えますが、タスクは複数のリモートオフィスを単一の企業ネットワークに統合することでした。

現在、実装にはさまざまなソリューションがあり、特別なハードウェアソリューションと、搭載されている任意のOSの従来のコンピューターの両方を使用できます。

この記事では、ユニットごとに異なるサブネットを使用して、3つのリモートオフィスを1つの企業ネットワークに結合する方法について説明します。 OpenBSD配布キットのみを使用して、これをすべて上げることを提案します。



必要なもの:

まず、いくつかの「変数」を定義しましょう。

何が何に属しているかを理解できるように、少し色を追加します。

システムのインストールについては説明しません。特にバージョン4.8(この記事の執筆に使用されました)には、HDDを自動的にマークアップするスクリプトがあり、初心者ユーザーでもシステムのインストールを大幅に簡素化します。



システムが正常にインストールされたら、ファイアウォールを有効にし、転送し、静的ルートのコンテンツを含むファイルを実行するために登録する必要があります。

# vi /etc/rc.conf ( PF)

pf=YES

# vi /etc/sysctl.conf ( )

net.inet.ip.forwarding=1

# vi /etc/rc.local ( static_routes )

/etc/static_routes







ここで、将来の「中央」ゲートを決定し、決定します(GW1を所有します)、その構成に進みましょう。まず、ゲートのネットワークインターフェイスが次のように構成されていると仮定します。











Gw1





まず、ルーターを一意に識別し、常に発生する専用ネットワークインターフェイスlo1選択しましょう。

# vi /etc/hostname.lo1

!ifconfig lo1 create

!ifconfig lo1 192.168.254.1 netmask 255.255.255.255








gifインターフェースのキュー:

# vi /etc/hostname.gif0

!ifconfig gif0 create

!ifconfig gif0 192.168.255.1 netmask 255.255.255.252 192.168.255.2

!ifconfig gif0 tunnel 11.11.11.1 22.22.22.2

!ifconfig gif0 up


# vi /etc/hostname.gif1

!ifconfig gif1 create

!ifconfig gif1 192.168.255.3 netmask 255.255.255.252 192.168.255.4

!ifconfig gif1 tunnel 11.11.11.1 33.33.33.3

!ifconfig gif1 up








権利を設定します。

# chmod 640 /etc/hostname.*







ルートを追加します。

# vi /etc/static_routes

/sbin/route add -host 192.168.254.2 192.168.255.2

/sbin/route add -net 192.168.15.0/24 192.168.255.2


/sbin/route add -host 192.168.254.3 192.168.255.4

/sbin/route add -net 192.168.16.0/24 192.168.255.4








そして、実行するために必要な権限を設定します。

# chmod a+x /etc/static_routes







次に、ファイアウォールを構成します。

# vi /etc/pf.conf

ext_if="vic0"

int_if="vic1"

set skip on lo

set skip on gif0

set skip on gif1

match in all scrub (no-df)

match out all scrub (no-df)

match on $ext_if from 192.168.0.0/16 to !192.168.0.0/16 binat-to ($ext_if:0)

block in on $int_if

pass in quick on $int_if from 192.168.0.0/16 to 192.168.0.0/16 keep state

pass out quick on $int_if from 192.168.0.0/16 to 192.168.0.0/16 keep state








gw1のセットアップが完了したら、再起動して残りに進みます

# reboot







gw1の準備ができました。gw2とgw3に移動します



Gw2





ここではすべてが類似しているため、コメントは不要です。

# vi /etc/hostname.lo1

!ifconfig lo1 create

!ifconfig lo1 192.168.254.2 netmask 255.255.255.255








# vi /etc/hostname.gif0

!ifconfig gif0 create

!ifconfig gif0 192.168.255.2 netmask 255.255.255.252 192.168.255.1

!ifconfig gif0 tunnel 22.22.22.2 11.11.11.1

!ifconfig gif0 up








# chmod 640 /etc/hostname.*







# vi /etc/static_routes

/sbin/route add -net 192.168.0.0/16 192.168.255.2








# chmod a+x /etc/static_routes







# vi /etc/pf.conf

ext_if="vic0"

int_if="vic1"

set skip on lo

set skip on gif0

match in all scrub (no-df)

match out all scrub (no-df)

match on $ext_if from 192.168.0.0/16 to !192.168.0.0/16 binat-to ($ext_if:0)

block in on $int_if

pass in quick on $int_if from 192.168.0.0/16 to 192.168.0.0/16 keep state

pass out quick on $int_if from 192.168.0.0/16 to 192.168.0.0/16 keep state








# reboot







Gw3





# vi /etc/hostname.lo1

!ifconfig lo1 create

!ifconfig lo1 192.168.254.3 netmask 255.255.255.255








# vi /etc/hostname.gif0

!ifconfig gif0 create

!ifconfig gif0 192.168.255.4 netmask 255.255.255.252 192.168.255.3

!ifconfig gif0 tunnel 33.33.33.3 11.11.11.1

!ifconfig gif0 up








# chmod 640 /etc/hostname.*







# vi /etc/static_routes

/sbin/route add -net 192.168.0.0/16 192.168.255.4








# chmod a+x /etc/static_routes







# vi /etc/pf.conf

ext_if="vic0"

int_if="vic1"

set skip on lo

set skip on gif0

match in all scrub (no-df)

match out all scrub (no-df)

match on $ext_if from 192.168.0.0/16 to !192.168.0.0/16 binat-to ($ext_if:0)

block in on $int_if

pass in quick on $int_if from 192.168.0.0/16 to 192.168.0.0/16 keep state

pass out quick on $int_if from 192.168.0.0/16 to 192.168.0.0/16 keep state








# reboot








その結果、次のスキームが得られます。











それでは、その仕組みを見てみましょう。



ネットワーク192.168.14.0/24からのトレース

# traceroute 192.168.15.2

traceroute to 192.168.15.2 (192.168.15.2), 64 hops max, 40 byte packets

1 192.168.14.1 (192.168.14.1) 0.437 ms 0.215 ms 0.294 ms

2 192.168.255.2 (192.168.255.2) 0.934 ms 0.674 ms 0.646 ms

3 192.168.15.2 (192.168.15.2) 1.107 ms 1.3 ms 0.920 ms

# traceroute 192.168.16.2

traceroute to 192.168.16.2 (192.168.16.2), 64 hops max, 40 byte packets

1 192.168.14.1 (192.168.14.1) 0.356 ms 0.206 ms 0.192 ms

2 192.168.255.4 (192.168.255.4) 0.748 ms 0.666 ms 0.631 ms

3 192.168.16.2 (192.168.16.2) 0.940 ms 0.892 ms 0.843 ms








ネットワーク192.168.15.0/24からのトレース

# traceroute 192.168.14.2

traceroute to 192.168.14.2 (192.168.14.2), 64 hops max, 40 byte packets

1 192.168.15.1 (192.168.15.1) 0.745 ms 0.208 ms 0.294 ms

2 192.168.255.1 (192.168.255.1) 0.768 ms 0.855 ms 0.677 ms

3 192.168.14.2 (192.168.14.2) 0.933 ms 0.830 ms 0.853 ms

# traceroute 192.168.16.2

traceroute to 192.168.16.2 (192.168.16.2), 64 hops max, 40 byte packets

1 192.168.15.1 (192.168.15.1) 0.450 ms 0.207 ms 0.372 ms

2 192.168.255.1 (192.168.255.1) 0.710 ms 1.290 ms 0.711 ms

3 192.168.255.4 (192.168.255.4) 1.243 ms 1.194 ms 1.42 ms

4 192.168.16.2 (192.168.16.2) 1.341 ms 1.445 ms 1.315 ms








ネットワーク192.168.16.0/24からのトレース

# traceroute 192.168.14.2

traceroute to 192.168.14.2 (192.168.14.2), 64 hops max, 40 byte packets

1 192.168.16.1 (192.168.16.1) 0.480 ms 0.222 ms 0.191 ms

2 192.168.255.3 (192.168.255.3) 0.814 ms 0.775 ms 0.715 ms

3 192.168.14.2 (192.168.14.2) 1.168 ms 1.43 ms 0.861 ms

# traceroute 192.168.15.2

traceroute to 192.168.15.2 (192.168.15.2), 64 hops max, 40 byte packets

1 192.168.16.1 (192.168.16.1) 0.458 ms 0.234 ms 0.269 ms

2 192.168.255.3 (192.168.255.3) 0.780 ms 0.642 ms 0.661 ms

3 192.168.255.2 (192.168.255.2) 1.171 ms 0.989 ms 1.11 ms

4 192.168.15.2 (192.168.15.2) 1.519 ms 1.595 ms 1.333 ms








まあ、それはそうです、すべてが動作します。 もちろん、IPsecを台無しにすることもできますが、このトピックは別の記事のためのものです。



All Articles