vyos1.3のネットワーク設定-自作ルーター作成

OSのインストールまではできました。ここからはネットワークの設定となります。

GUIは存在しない

VyOSは現時点(1.3)ではGUIは存在しません。そのため全てCUI(コマンド)での操作となります。
※Dockerを使えばGUIをインストールできるらしいですが、面倒なのでやっておりません。

目的

今回の目的は、VyOSを自宅のルーターとして使うため、PPPoEの設定をして外にでるというのになります。家庭用ルーターみたいにLANケーブルさせば使える状態ってのを想定しております。

設定と契約について

インターネット回線の契約としては下記のようになります。

  • プロバイダー:インターリンク
  • IPアドレス:固定IP
  • ブロードバンドサービス:ドコモ光(フレッツ光回線)
  • 回線速度:1G
  • 回線種別:戸建て
  • IPv6:非対応
  • 光電話:なし

小型PCIN-1(ルーター)ですが、実際の機器はLAN1〜LAN4となっていますが、VyOSの仕様上下記のようになります

  • LAN1=eth0(PPPoE)
  • LAN2=eth1(192.168.0.0/24)
  • LAN3=eth2
  • LAN4=eth3

※基本的に全てethxの表記になります。

ホームゲートウェイではなくONU

EdgeRouter X でIPv6通信をしてみる(光電話なし)-EdgeRouter X設定が我が家の構成となっております。光電話は契約していないのでありません。

今回はマルチセッションを活用

自宅の回線(エッジルーターXでIPv6通信)はそのままで、今回はNTTのマルチセッションを活用していきます。

※エッジルーターXやVyOSの空いているポートをPPPoEにするというのもありますが、今回は諸事情でしておりません

うちの環境は実際にはONUとルーターの間にスイッチが入っておりますが、一般的なのはスイッチが入らないと思うので図もスイッチを省いています。

VyOS設定

というわけでVyOSの設定をしていきます。vyosのクイックスタートを参考にします

  • ユーザー名:vyos
  • パスワード:vyos

今回は小型PCなので、PC本体にキーボードをつけてモニターに表示して作業となります
※この時点ではLANケーブルなどは一切さしておりません

インターフェイス設定

WANをeth0とします。eth1はLANとなります。

vyos@vyos:~$ configure

set interfaces ethernet eth0 description 'OUTSIDE'
set interfaces ethernet eth1 address '192.168.0.1/24'
set interfaces ethernet eth1 description 'INSIDE'

commit
save

eth1にLANのIPアドレスを設定しました。

SSHの起動

SSHサービスを起動します。これをすることでeth1にLANケーブルをさせば、SSH経由で同一ネットワークから接続できます

set service ssh port '22'

commit
save

IN-1のeth1とPCを接続するか、IN-1のeth1と無線LANが使えるルーターをブリッジモード(APモード)にしてもいいかもしれません。192.168.0.0/24ネットワークにPCが接続すればSSHでできます

DHCPの設定

現状の設定では、接続した端末(PC、スマートフォン等)からIPを決めて接続しないといけません。不便なのでDHCPを使えるようにします。これをすることでIPアドレスが自動で払い出されるので端末側で設定は不要となります

set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 default-router '192.168.0.1'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 dns-server '192.168.0.1'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 lease '86400'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 start 192.168.0.10
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 stop '192.168.0.254'

IPアドレスを192.168.0.10から払い出すようにしています

DNSの設定

ルーターでDNSを指定しなくてもいいように、デフォルトで192.168.0.1となるようにします

set service dns forwarding cache-size '0'
set service dns forwarding listen-address '192.168.0.1'
set service dns forwarding allow-from '192.168.0.0/24'

set system name-server 203.141.128.33
set system name-server 203.141.128.35

commit
save

システムにネームサーバーを設定しています。これはWANから外(インターネット)にでるときに名前解決できるようにします。これがないとインターネットに繋げないので必須となります。
このIPアドレスはインターリンクから指定されているものになります。

インターリンクを契約していない場合は?

少しずれて、インターリンクを契約されていない方は、契約しているプロバイダーに確認をするか、GoogleのパブリックDNSを使ってください

set system name-server 8.8.8.8
set system name-server 8.8.4.4

commit
save

PPPoEの設定

PPPoEの設定をしていきます。インターリンクのネットに接続するためのIDとパスワードを入れていきます。

set interfaces pppoe pppoe0 authentication user yyxxxxxx@rb.xxx.●●●
set interfaces pppoe pppoe0 authentication password xxxxx
set interfaces pppoe pppoe0 connect-on-demand
set interfaces pppoe pppoe0 default-route
set interfaces pppoe pppoe0 no-peer-dns
set interfaces pppoe pppoe0 source-interface eth0

commit
save

source-interface eth0をいれることで、eth0がWANとして機能するようにしております。

接続できるか確認

ここで接続できるか確認をしたいと思います。eth0とeth1にLANケーブルをそれぞれ挿します。接続できていればIPアドレスを取得します

vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             -                                 u/u  OUTSIDE
eth1             192.168.0.1/24                   u/u  INSIDE
eth2             -                                 A/D  
eth3             -                                 A/D  
lo               127.0.0.1/8                       u/u  
                 ::1/128                                
pppoe0           203.xxx.xxx.xxx/32                u/u  
wlan0            -                                 A/D  

インターリンクのIDとパスワードが合っているので、グローバルIPアドレスを取得しております。

コマンドでは外にでるが、実際にネットの閲覧はできない

この時点では、IPアドレスを取得している場合、pingをいれると接続できます。

vyos@vyos:~$ sudo su -l
root@vyos:~# ping logw.jp
PING logw.jp (153.126.202.153) 56(84) bytes of data.
64 bytes from ik1-337-28649.vs.sakura.ne.jp (153.126.202.153): icmp_seq=1 ttl=51 time=36.2 ms
64 bytes from ik1-337-28649.vs.sakura.ne.jp (153.126.202.153): icmp_seq=2 ttl=51 time=36.9 ms
64 bytes from ik1-337-28649.vs.sakura.ne.jp (153.126.202.153): icmp_seq=3 ttl=51 time=32.3 ms
64 bytes from ik1-337-28649.vs.sakura.ne.jp (153.126.202.153): icmp_seq=4 ttl=51 time=32.4 ms
64 bytes from ik1-337-28649.vs.sakura.ne.jp (153.126.202.153): icmp_seq=5 ttl=51 time=32.3 ms

このようになります。しかし、ブラウザで見てもサイトは表示されておりません。

ブラウザを使ってサイトがみれるようにNATの設定をします

NATの設定

NATを設定することで、LANの内部からWAN(外部)へ通信できるようになります

set nat source rule 100 outbound-interface 'pppoe0'
set nat source rule 100 source address '192.168.0.0/24'
set nat source rule 100 translation address masquerade

commit
save

outbound-interfaceをeth0にしてしまうと、外にでれません。eth0はPPPoEの設定でpppoe0で設定をしているので、ここではpppoe0を指定します

firewallの設定

市販品ルーターなら、firewallなどが設定されているので特に意識しませんが、VyOSはfirewallも自分で設定をしないといけません。基本的にWAN(インターネット)からのアクセスは受け付けない設定をいれます

set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

commit
save

この設定は、外からSSHの設定も受け付けないので、SSHは内部からしかアクセスできません。

firewallの設定を適用

ファイアーウォールポリシーを適用します

set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

commit
save

eth0に適用します。間違えないようにしてください。

まとめ

これでネット接続ができて外にでれると思います。今回はインターリンクのプロバイダーを使っていますが、基本的に情報があっていればどこのプロバイダーでもいけると思います。

個人支援・寄付について

サイトラボではBuildreeの開発などのため、現在個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではkyashというサービスをつかっております。ビットコインでも受け付けております。