show log include yunabe

勉強したことの復習を兼ねて、IT関係(主にネットワーク/サーバ)についてまとめてます。

VyOS on ESXi とSoftetherを用いた自宅NW構成

概要

自宅NW構成について記します、常識的なコスト(節度ある投資)に抑え、稼働音0(夜はぐっすり寝れること)にすることを大事にしています。
将来的にはVLANを切って生活用と開発用NWを分けていきたいと思っています。

物理構成

実家

NUC上でVMを仮想化しインターネットVPNのセンタ拠点として利用しています。中継器は実家の2Fに置き、wi-fiの範囲を広げるために利用しています。ブリッジで使っていますが、実家で繋がらないなぁと思うことは無くなったので買ってよかったです。

自宅

自宅のストレージはNASとして利用するため、お値段が痛いんですがファンレスにしたくSSD 2Tを購入。

論理構成

アドレス設計

自宅と実家のアドレスは192.168.0.0/22のクラスCのプライベートアドレスを利用します。
アドレスの割り振りポリシーは以下の通り、ポリシーを決めておかないとあとあと大変になるので決めておきます。

IPアドレス範囲 用途 アドレス数 割当方式
192.168.x.1 ESXi 1 Static
192.168.x.2-49 サーバ(VM等) 48 Static
192.168.x.50-59 クライアント 10 Static
192.168.x.60-199 クライアント 139 DHCP
192.168.x.200-249 ネットワーク装置(L2SWや無線AP) 50 Static
192.168.x.250-253 VPN終端機器 4 Static
192.168.x.254 デフォルトゲートウェイ 1 Static

第三オクテッドの x は拠点を表しています。

x 拠点
0 自宅
1 実家
2 クラウド
3 未割当(開発用)

オーバレイNW構成

f:id:yunabe_net:20180531173223j:plain 上の図のように全てのトンネルはセンタ拠点に集約されるハブアンドスポーク方式のNWの構成になります。 センタ拠点は障害のことを考えるといずれクラウドに移行していくかもしれません。。。

ESXi設計

f:id:yunabe_net:20180531173602j:plain GA-C1037UN-EUNICが2枚あるおかげでルータとしても使用することができます。
ESXiで仮想SWを2つ作り、WAN側とLAN側でそれぞれSWを仮想化し、LAN側の仮想SWに無線APにしているAtermを接続することで、Aterm配下の端末はVyOSでNAPTされインターネットに抜けることができます。
仮想化しているので物理的な配線がいらないため、Sophos UTM等も置くのが簡単です(CPUリソースがあれば)

VyOS Config

設定したConfigは以下になります。
ポイントは
- SSHはローカル面のみ
- グローバル面はPPPoEにて接続
- ブロードバンドルータとして扱うためにNATおよびDHCPを動かす

 firewall {
     name firewall-rules {
         default-action accept
         rule 10 {
             action reject
             destination {
                 port ssh
             }
             protocol tcp
         }
     }
 }
 interfaces {
     ethernet eth0 {
         duplex auto
         hw-id FF:FF:FF:FF:FF:FF
         pppoe 0 {
             default-route auto
             firewall {
                 local {
                     name firewall-rules
                 }
             }
             name-server auto
             password hoge@hoge.com
             user-id hoge
         }
         smp_affinity auto
         speed auto
     }
     ethernet eth1 {
         address 192.168.0.254/22
         duplex auto
         hw-id FF:FF:FF:FF:FF:FF
         smp_affinity auto
         speed auto
     }
     loopback lo {
     }
 }
 nat {
     source {
         rule 10 {
             outbound-interface pppoe0
             source {
                 address 192.168.0.0/22
             }
             translation {
                 address masquerade
             }
         }
     }
 }
 service {
     dhcp-server {
:         shared-network-name dhcp-pool {
             authoritative enable
             subnet 192.168.0.0/22 {
                 default-router 192.168.0.254
                 dns-server 192.168.0.254
                 lease 86400
                 start 192.168.0.60 {
                     stop 192.168.0.199
                 }
             }
         }
     }
     dns {
         forwarding {
             listen-on eth1
         }
     }
     ssh {
         port 22
     }
 }
 system {
     config-management {
         commit-revisions 20
     }
     console {
         device ttyS0 {
             speed 9600
         }
     }
     host-name vyos
     login {
         user hoge {
             authentication {
                 encrypted-password hoge
                 plaintext-password ""
             }
             level admin
         }
     }
     ntp {
         server 0.pool.ntp.org {
         }
         server 1.pool.ntp.org {
         }
         server 2.pool.ntp.org {
         }
     }
     package {
         auto-sync 1
         repository community {
             components main
             distribution helium
             password ""
:             url http://packages.vyos.net/vyos
             username ""
         }
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
     }
     time-zone UTC
 }
set firewall all-ping 'enable'
set firewall broadcast-ping 'disable'
set firewall config-trap 'disable'
set firewall ipv6-receive-redirects 'disable'
set firewall ipv6-src-route 'disable'
set firewall ip-src-route 'disable'
set firewall log-martians 'enable'
set firewall name firewall-rules default-action 'accept'
set firewall name firewall-rules rule 10 action 'reject'
set firewall name firewall-rules rule 10 destination port 'ssh'
set firewall name firewall-rules rule 10 protocol 'tcp'
set firewall receive-redirects 'disable'
set firewall send-redirects 'enable'
set firewall source-validation 'disable'
set firewall syn-cookies 'enable'
set firewall twa-hazards-protection 'disable'
set interfaces ethernet eth0 duplex 'auto'
set interfaces ethernet eth0 hw-id 'FF:FF:FF:FF:FF:FF'
set interfaces ethernet eth0 pppoe 0 default-route 'auto'
set interfaces ethernet eth0 pppoe 0 firewall local name 'firewall-rules'
set interfaces ethernet eth0 pppoe 0 mtu '1492'
set interfaces ethernet eth0 pppoe 0 name-server 'auto'
set interfaces ethernet eth0 pppoe 0 password 'hoge@hoge.com'
set interfaces ethernet eth0 pppoe 0 user-id 'hoge'
set interfaces ethernet eth0 smp_affinity 'auto'
set interfaces ethernet eth0 speed 'auto'
set interfaces ethernet eth1 address '192.168.0.254/22'
set interfaces ethernet eth1 duplex 'auto'
set interfaces ethernet eth1 hw-id 'FF:FF:FF:FF:FF:FF'
set interfaces ethernet eth1 smp_affinity 'auto'
set interfaces ethernet eth1 speed 'auto'
set interfaces loopback 'lo'
set nat source rule 10 outbound-interface 'pppoe0'
set nat source rule 10 source address '192.168.0.0/22'
set nat source rule 10 translation address 'masquerade'
set service dhcp-server disabled 'false'
set service dhcp-server shared-network-name dhcp-pool authoritative 'enable'
set service dhcp-server shared-network-name dhcp-pool subnet 192.168.0.0/22 default-router '192.168.0.254'
set service dhcp-server shared-network-name dhcp-pool subnet 192.168.0.0/22 dns-server '192.168.0.254'
set service dhcp-server shared-network-name dhcp-pool subnet 192.168.0.0/22 lease '86400'
set service dhcp-server shared-network-name dhcp-pool subnet 192.168.0.0/22 start 192.168.0.51 stop '192.168.0.199'
set service dns forwarding cache-size '150'
set service dns forwarding listen-on 'eth1'
set service ssh port '22'
set system config-management commit-revisions '20'
set system console device ttyS0 speed '9600'
set system host-name 'vyos'
set system login user vyos authentication encrypted-password '$1$YGhX/dAA$kcBWn3gsr3Kl4jGOEPH6E1'
set system login user vyos authentication plaintext-password ''
set system login user vyos level 'admin'
set system ntp server '0.pool.ntp.org'
set system ntp server '1.pool.ntp.org'
set system ntp server '2.pool.ntp.org'
set system package auto-sync '1'
set system package repository community components 'main'
set system package repository community distribution 'helium'
set system package repository community password ''
set system package repository community url 'http://packages.vyos.net/vyos'
set system package repository community username ''
set system syslog global facility all level 'notice'
set system syslog global facility protocols level 'debug'
set system time-zone 'UTC'