自宅ルータをVyattaにして快適になった
市販のルータ兼無線アクセスポイント君が
2日に1回再起動しないとAirPlayできなくなってしまったので
この際自宅のネットワーク環境を一新すべく
Vyattaを導入した。その際のメモ。
参考URL
環境
ネットワーク
買ったもの
追加NIC用に「Intel Gigabit CT Desktop Adapter EXPI9301CT」
スイッチは前職で頂いた8ポートのスイッチングハブを利用
構築
ブリッジのインタフェースを2つつくる
- eth0 Internal
- eth1 External
/etc/network/interfaces
auto lo iface lo inet loopback iface eth0 inet manual iface eth1 inet manual auto br0 iface br0 inet static address 192.168.0.3 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 dns-nameservers 192.168.0.1 auto br1 iface br1 inet static address 0.0.0.0 bridge_ports eth1 bridge_stp off bridge_fd 0 bridge_maxwait 0
気が付いたらvnetがアサインされていた。 ここらへんまだ理解していない。
brctl show
bridge name bridge id STP enabled interfaces br0 8000.20cf30ea8178 no eth0 br0 8000.XXXXXXXXXXXX no eth0 vnet0 vnet1 vnet2 br1 8000.XXXXXXXXXXXX no eth1 vnet3 lxcbr0 8000.000000000000 no
VyattaのISOファイルを落としてくる
$ curl -O http://www.vyatta.com/downloads/vc6.6/vyatta-livecd_VC6.6R1_amd64.iso
Vyatta用のディスクイメージを作成する
$ qemu-img create -f raw /var/lib/libvirt/images/vyatta01-2G.img 2G
KVMでインストールする
$ virt-install --connect qemu:///system \ --name vyatta01 \ --ram 512 \ --vcpus=1 \ --disk path=/var/lib/libvirt/images/vyatta01-2G.img \ --nographics \ --network=bridge:br0 --network=bridge:br1 \ --cdrom=/tmp/vyatta-livecd_VC6.6R1_amd64.iso
Install Default setting
- login: vyatta
- Password: vyatta
$ virsh console Vyatta01 boot: Welcome to Vyatta - vyatta ttyS0 vyatta login: vyatta Password: Linux vyatta 3.3.8-1-amd64-vyatta #1 SMP Wed Mar 13 10:35:28 PDT 2013 x86_64 Welcome to Vyatta. This system is open-source software. The exact distribution terms for each module comprising the full system are described in the individual files in /usr/share/doc/*/copyright. vyatta@vyatta:~$ install image Welcome to the Vyatta install program. This script will walk you through the process of installing the Vyatta image to a local hard drive. Would you like to continue? (Yes/No) [Yes]: Probing drives: OK Looking for pre-existing RAID groups...none found. The Vyatta image will require a minimum 1000MB root. Would you like me to try to partition a drive automatically or would you rather partition it manually with parted? If you have already setup your partitions, you may skip this step Partition (Auto/Parted/Skip) [Auto]:
のようにインストールがはじまります。
基本的にチュートリアルに乗って行けば問題ないかと。
新しいパスワードを設定して、再起動
This will destroy all data on /dev/sda. Continue? (Yes/No) [No]: yes Enter password for administrator account Enter vyatta password: Retype vyatta password:
vyatta@vyatta:~$ reboot now
vyattaの設定
Vyattaは他のネットワーク機器と同じように
set
, show
, delete
で全て行うことができる。
- setで値を設定し
- showで確認
- 間違っていればdeleteで削除
- テストを行い、問題がなければcommit
- 永続的に設定を保持するためにsave
という一連のサイクルで設定を行う。
Vyattaの内部IPを設定
# set interfaces ethernet eth0 address 192.168.0.1/24
SSHの許可
# set service ssh listen-address 192.168.0.1
ISPと接続
# set interfaces ethernet eth0 pppoe 0 user-id XXXXX@YYY.ZZZ # set interfaces ethernet eth0 pppoe 0 password XXXXX # set interfaces ethernet eth0 pppoe 0 default-route auto # commit # save
この時点で外部との接続が可能
$ ping 8.8.8.8
などで pppoe0 => internet の疎通確認を行う
マスカレードの設定
# set nat source rule 1 source address 192.168.0.0/24 # set nat source rule 1 outbound-interface pppoe0 # set nat source rule 1 translation address masquerade
試しにクライアントPCを
- IP: 192.168.0.100
- NETWORK: 255.255.255.0/24
- GATEWAY: 192.168.0.1
と設定して、外部に疎通ができるか確認する。疎通ができればまずはOK。
SSHを許可する
ssh 192.168.0.1 -l vyatta
などとしてSSHで接続してみる
DHCPを振る
DHCPで192.168.0.200から192.168.0.250までの
IPアドレスを割り振るように設定。
# set service dhcp-server shared-network-name vyatta subnet 192.168.0.0/24 start 192.168.0.200 stop 192.168.0.250 # set service dhcp-server shared-network-name vyatta subnet 192.168.0.0/24 default-router 192.168.0.1 # set service dhcp-server shared-network-name vyatta subnet 192.168.0.0/24 dns-server NTT DNS SERVER # set service dhcp-server shared-network-name vyatta subnet 192.168.0.0/24 dns-server NTT DNS SERVER
ここでハマったのが、PLANEXでもDHCPを振っていたせいで
DHCPでIPを付与されたクライアントPCのGATEWAYが
PLANEXを見に行ってしまっていていた。
PLANEXの方のDHCP機能を無効化することで解決。
しかし今度はPLANEXの方の管理画面に入れなくなってて放置してる。
Vyatta 6.6で画像が表示されない
Vyatta 6.6 画像が表示されない。 / 題名のないBlog(ry
画像が永遠に読み込めない不具合があるので下記設定を導入
set policy route PPPOE-IN rule 10 destination address 0.0.0.0/0 set policy route PPPOE-IN rule 10 protocol tcp set policy route PPPOE-IN rule 10 tcp flags 'SYN,!ACK,!FIN,!RST' set policy route PPPOE-IN rule 10 set tcp-mss 1360 set interfaces ethernet eth0 policy route PPPOE-IN
ポートフォワーディング
外部からアクセスできるようにフォワードする
set nat destination rule 1000 inbound-interface pppoe0 set nat destination rule 1000 destination port 22 set nat destination rule 1000 protocol tcp set nat destination rule 1000 translation port 22 set nat destination rule 1000 translation address 192.168.0.11
set nat destination rule 1001 inbound-interface pppoe0 set nat destination rule 1001 destination port 60000-61000 set nat destination rule 1001 protocol tcp_udp set nat destination rule 1001 translation port 60000-61000 set nat destination rule 1001 translation address 192.168.0.12
こんな感じでつらつらと設定していく
まとめ
ISPと接続してIPマスカレードができてDHCPが振れて
ポートフォワーディングができるVyatta最高です。
設定変更する度に回線切れて60秒待つとかいう苦行もなくなったし
AirPlay毎日できて最高です。
興味があれば、まずquick startのPDFだけでも見てみるといいかもです。
@mikedaさんも書かれていますが、上記設定をするだけなら簡単にできます。
よかったらお試しください。