- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
今天给大家推荐一个好用的开源路由操作系统---VyOS,也是我个人非常喜欢的一款软路由器。VyOS 是基于 Debian GNU/Linux 的,提供了和其他诸如Cisco的IOS、Juniper的JUNOS类似的操作方式,配置起来感觉特别的舒服,尤其可以使用compare、rollback之类的命令,方便对比配置和错误回滚,深得我心。
4 w: G) s+ k6 o: \" }, h4 F- F2 E& E7 d5 s1 X" l3 ?
由于之前用的Mikrotik RouterOS,在使用过程中逐渐发现了一些其性能和稳定性上的弊端,所以逐渐转向了VyOS,听一个资深linux老司机说,他曾经对VyOS进行过单纯的流量压力测试,一台VyOS虚机打到800M的流量没有任何压力。当然RouterOS提供了winbox之类的客户端管理工具,非常容易上手,如果没有特殊需求,完全够用。# e5 o/ q. W2 E! q- z% ?
* k3 v8 ]0 |5 f+ }7 r) D1 N
一、简介" \4 {6 _. \$ t- o8 o
2 D- e( E# y8 W! Y! P. ` VyOS的前身是Vyatta,是Vyatta系统的社区fork版本;Vyatta公司在2002年提供了开源版本的虚拟路由,后来被博科收购。Vyatta是博通的企业级的产品,linux下知名的开源路由器项目,在其官方的测试中性能甚至超过了cisco 7200系列路由器,可以支持RIP、OSPF、BGP等路由协议以及VPN、NAT、HA等特性。企业路由的所有功能基本都支持,还支持虚拟机。
0 }6 a, b/ ^+ q/ g* T* W" n
7 n% L* L8 u0 c+ x4 n) O VyOS这个项目的第一个版本释放于2013年,目前还在持续活跃中。相对其他项目——像Juniper管理下的opencontrail,它有完整的使用与安装文档,更提供了API文档供开发者参考(这点也是我喜欢这个操作系统的原因之一)。可以用它来实现软件防火墙、路由器、vpn等功能。; ^8 W* i o! w' o8 a
) @ \! z9 j: j# E0 G- r
二、特性$ y" e+ U$ Z; x
4 t u; B% b5 N5 K2 X1、平台支持
9 q- F& _) g, k+ Z5 p: L; B& J0 f n3 f
32-bit x86
+ H# J( T3 T- X. B0 H6 [0 }7 P$ {9 k4 ?
64-bit x86
& ?/ W6 A6 F# I% |7 I2 Y# Y" J) a2 [$ ^3 w9 [
KVM (virtio drivers included)
$ i7 S" d) M& [+ f% {/ ^; i
) S. m! g( L0 A# q* A2 k' {: y! zXen HVM (including XenServer and EC2), D: S& m1 t3 d3 i5 r9 R" S" q
8 h0 X. x; Y/ G+ F3 L/ S/ `7 |VMWare (open-vm-tools included)& i6 J. w9 v6 Y o5 u& n1 f
3 P1 y8 Z# H( b, `4 n% u% {. v$ c& bHyper-V (drivers included): a/ U5 W# Y E) ^; v
. _3 | u: B$ e! V7 h) FVirtualBox (guest additions not included)、% d6 P4 J# G8 s* ^% c& M
" o; C! {1 t0 U' u. M7 ~(默认情况下支持串口的终端是启用的)
5 B4 _* p/ _" U5 `5 X$ d- t b' T7 E: B6 I8 u8 t5 a
2、路由
2 E1 T1 p* [$ ]1 ]. C3 r4 D7 Z! A3 L( h) ~; @! ^8 O6 r
BGP (IPv4 and IPv6)
4 ]; d4 }2 ~; ?8 {- \2 S( f0 }! Z3 `+ d; V2 F$ v1 P
OSPFv2
/ z; v- A" g! o; }8 A% t9 Y/ e
" {3 k* Z3 X- d$ \OSPFv3 (incomplete)
y4 }0 r/ N8 P& |$ m1 s/ s$ p2 ? B0 x& t1 Q
RIP3 F' V5 }3 c$ w( P
3 o% ^% q5 z& U* D& k* {RIPng
* P/ H$ L5 c9 \# o/ J6 G R9 d4 Z. i; A9 S3 g2 B) Q8 H
Policy-based routing
6 f! Z: t R; X+ ?
8 K: {4 b( g2 m, X8 I# Z, P3、网络接口8 A8 A B! K7 Y$ v; L
8 j. P4 }) m. X# VEthernet
$ B! G, y- |5 d& c/ s* M$ ^4 ^8 ~2 L* s+ x" d* u1 \
802.1q VLAN, QinQ' V! w2 j) w5 e7 K( a4 u4 s
. f; O+ u( X/ s* f1 Y# i) \NIC bonding' w; R6 d% F" @/ _$ r
8 Y; M& e" @* l$ h! s, d
Bridges, STP (no RSTP or other extensions)# ~+ t- B8 ?% [3 j" [2 W5 l
/ `- @2 B0 v0 B. {
Port mirroring and redirection5 U3 c2 I; H$ A- W
6 t( u {3 x4 B; {2 v* Y' @& b6 R! j
Dummy interfaces (analogous to multiple loopbacks)
0 W g5 q" p# b: t+ q# P w4 w% u
I7 d: ?9 @/ m3 e' l4 m/ ~ yPseudo-ethernet (aka MAC VLAN)
0 r' |, l9 N7 O% m( T8 ?9 x4 _5 U2 V+ ?7 m9 u l
802.11 wireless (client and access point)% @; L6 B" O! u( m' n( D. d
/ A# R, A/ ]2 l- s; e8 y# @Some wireless modems (not very good support)
, q, z* m# h$ ^- J
1 x9 L% [! p7 ~+ D4 u6 kPPPoE' S7 v+ _/ V5 S1 F% f9 R
" v. Z; @& s3 a6 K3 l- WNote: No support for serial WAN, ISDN, dial-up, DSL cards. Use an external device for that.
& n* b% Y3 ]- w6 ^# C; F" I! Q9 t! o' u6 k1 l1 Y8 |" k
4、防火墙与NAT
) g5 m" ~$ X8 B% C0 X6 K7 h
5 K5 [* a& N2 a5 o6 P6 v* fStateful firewall
3 m& r H6 w7 K& Y/ A9 J* r# _! e' v9 L8 H
Network/address/port groups (IPv4 only for now)5 B8 T6 B, V( [2 L' l
! n2 t5 W3 p- ` T% P' e' vZone-based firewall
& \* ^ A5 c N; Y V* e
7 R+ ]" K e7 }" {- t6 e( T/ J/ b/ fSource and destination NAT! p3 J: P5 t8 e0 M/ R5 n$ u6 Y
/ y& [$ |& `: C; k
5、VPN6 h* o# d: u ~" c. Y& N
; I. r, b0 [- \5 a$ w3 T" C/ v: b
Site-to-site IPsec (with pre-shared key or x.509 authentication)
2 c# Q5 w6 a) c: ^8 N9 S
* \5 N+ d# {' D. U2 ?# JVTI (Virtual Tunnel Interfaces)1 o& P) P4 b5 f
+ x3 a l$ S3 p: _* w
OpenVPN (client, server, site-to-site)
8 g2 \4 l+ b, Y x
2 u% }; `- @4 b: q% d) X% eGRE, IPIP, IPIP6, IP6IP6 tunnels
7 x% o) v4 D; Z4 v F8 w" n# g2 q, J! C* Y3 s- v8 z7 }
VXLAN
/ Z* x' M9 k) z- A
7 T0 z8 `' Y7 A! d7 ?' a. S4 QUnmanaged L2TPv39 |* B6 {0 b/ G/ D x$ V
# ]; g& n ] t4 ^) ~; T
L2TP/IPsec and PPTP remote access VPN
5 N s% m' f, Y2 S# P) k& L; L. Q7 l% j
DMVPN (experimental)
1 q& p0 Z0 a/ j! N. v3 ^% y
! C) M* j( @' z! l# E* l$ b6、网络服务
: J/ s# P3 t2 E+ k9 I' M5 \5 f9 [: U8 X
$ W$ {- r' U) k5 `DHCP server and relay( y9 H( z4 F0 v) s, T' z( r
* R1 H4 u& m7 `Caching DNS server u8 m# ?8 L3 w/ ?' I+ y; D: i
8 S% i# [# ]9 e' I1 }
Web proxy with some URL filtering support (no HTTPS filtering)
( F) g* j# n- @/ {: I# j4 @4 y, G) x. i+ i8 c$ M
Telnet and SSH for remote management
o2 b5 c+ x! {" c' u- z2 L- n
. |& a3 i: n( P& J5 i. X4 j) t6 SIGMP proxy
$ o; I4 U i) r5 c9 N% u7 D. h
QoS support# ]/ n" |0 S. c
7 N% Y9 W/ |; \
7、高可用
- t* ]# J% H. ^5 u$ w8 {3 h$ U( t$ y* [" }, j+ l
VRRP (IPv4 only for now)# P9 B( l' R. x h
3 ^8 J- f E7 C- t; l% W T" _Conntrack sync
4 F4 O# p! {8 T$ s1 b+ O+ \4 ^* g! m" W. U2 t T' _" c
WAN failover and load balancing- D- m4 ~# O6 i3 s) D; i* i! Y
) G& @* T! g, J5 P8、IPV6支持
( m8 h8 H- A. j! Z% T) I4 O8 Y4 ^9 B6 [' z
IPv6 routing (static and dynamic)# |! c+ B9 l, H8 P7 ?. I% k
5 P, c: f4 Y' x. PRouter advertisment0 J2 N7 [2 T: }
, `( S0 [8 l1 }* u+ C
DHCPv6 client and server/relay
) r; K5 j) q6 `
+ P z3 N' ]$ C i( {% IIPv6 firewall
; D" D' `5 r. Z& P! N* X+ X' m% A. o' b: P
9、系统维护和监控
1 H+ V: {1 T& `5 D$ ?5 U
( h, [: h3 w* t3 QTask scheduler0 a# j! |# i' t( _7 e$ q
6 G1 E) M% B' HSNMP& T$ N' S8 m9 H# }/ u6 ~9 H, \% b$ j
^! w4 L @% GConfiguration versioning and remote archiving
% w7 T/ c( ^! F; V4 b& a, J. r5 p0 B1 q7 H8 I u
Event handling
: s+ j6 ?/ }9 @) r, `2 n+ N- V4 ^( z
; o& P7 J- e2 P! sRemote syslog
: S/ |' y4 c8 A2 a7 b+ f% h4 R% g& l6 D2 w& j: ]% T7 b
其他特性详见链接:http://vyos.net/wiki/Feature_list1 H, ]% t' a, V! n
, y8 O) k* z& B8 t2 g三、安装. M$ }7 A9 T$ r: d* D
5 F& o1 V/ ~" \, Q% ~1 K4 b( l. k5 G
官方推荐的配置是,2G磁盘空间,512M内存。其硬件要求很小,2G磁盘完全够用,如果不放心可以增加其内存的配置。比较好的一点,它提供了一种基于镜像的安装方式,这使得在同一机器上存在多个版本的软件成为可能,方便版本升级。
+ B4 D% T: t" \2 R" N% F, t! i1 Q @* m
下载地址:http://packages.vyos.net/iso/release/选择你需要的版本,当前最新版本号1.1.7,另外其也提供了OVA的格式,可以直接部署到vmware等平台上。这里说下iso镜像安装方式,wiki上也有详细的安装手册:http://vyos.net/wiki/User_Guide
5 ]3 h7 ^8 P/ J( a, @0 i+ n0 S3 _0 Q& l4 ?- ~3 G$ f
挂盘之后,进系统引导,会看到如下的界面,默认的用户名/密码是:vyos/vyos
6 ?5 R( h- b ~7 Y/ l8 v' ~+ Q7 E$ M8 Y' t- @
wKioL1dp86bDkrWPAADRY-DVpTc631.png-wh_50
) P$ j- u# E7 p9 V$ d$ \4 R8 y( e7 X- Z. `& Q" v
这里有两种安装方式:install image和install system,推荐使用install image方式:6 e8 ]1 m2 a* h9 M. t' a3 Y: Z
' \& B6 G! ]8 r: h7 h运行install image安装:; M2 k1 m8 e+ V2 U
2 m/ G3 x9 K- \8 h' |1 W' m
0 T4 z. l7 F" I; r4 x) c, d. R& qvyos@vyos:~$ install image. V, v* C$ F" K: H' Y
wKioL1dp9RTQb_pbAACwoOAl1eo773.png-wh_508 x6 e0 r& i( j2 z; X
: u1 @8 w) n" @7 Y6 b- S c8 L6 m
安装过程很简单,基本一路回车用默认配置即可,中间需要配置vyos用户的密码,安装成功后用的就是vyos这个用户进行系统配置:, A7 g, Q" n, R6 Q
9 \# M5 [: [, i- vwKiom1dp9avBGYGYAACVzax_taI839.png-wh_50
7 P' t- w: [1 l- l. `0 c4 c9 `. B5 i9 l2 y+ u: ]/ @! P. b6 P
提示Setting up grub:OK,即安装成功,之后卸载CDROM,reboot重启之后就可以进行系统配置:+ W$ U4 y8 P( m3 @. H# [! H2 m
, l5 x' L6 K% T2 U4 C+ b
wKiom1dp9avDROwgAACj6Mrpdwg400.png-wh_50
% c4 ^- _+ ` m
4 e3 x! P( W* i/ R3 M7 f四、简单配置
0 u' w; j- Q$ m. w/ \0 G6 E" a8 o0 B
VyOS CLI提供两种模式:operational mode和configuration mode.输入configure之后即进入configuration模式,跟路由器和其他linux发行版一样,支持[tab]补齐和?查看帮助信息。配置完之后用compare命令查看修改的配置,commit提交配置,save保存到/config/config.boot配置文件中。
$ I% c2 t/ H- D6 Q& w; B- X
3 [% E# o9 v- T2 J0 u! I F+ Q, J4 \ show命令:! A, A6 [5 ^; x6 d1 ]6 |/ e3 K# B5 H H
8 @" D" `8 ~8 q/ Y" g l& |0 v
8 @+ G0 D' [9 @0 a' l
#查看全部配置
) _+ Z# i. }. @8 f7 H1 vvyos@vyos# show configuration 1 P9 U- {; |( S d J; L' m
#匹配某个配置字段,类似思科交换机上的include或者linux上的grep
; u7 c1 }6 s1 i% _8 Z2 Wvyos@vyos:~$ show configuration commands | match eth1 ; q7 K; `" h' o6 U/ Q5 F; D! W
set interfaces ethernet eth1 address '172.16.0.1/24'
4 m7 _$ Y, _" P3 Iset interfaces ethernet eth1 description 'To Private Net'' k* \6 C: e$ c% ^! P* n# a& G+ p
set interfaces ethernet eth1 hw-id '00:xx:xx:b9:xx:xx% b2 ?( p2 S* f
简单NAT配置实例:) U7 @+ u( d7 @: `0 w0 n9 L' q
; F" U1 b( t2 ^* @+ ]; Z N
( S* l% A* M3 G2 s
set interfaces ethernet eth0 address 'xx.xx.xx.34/xx' #配置出网ip地址
1 D7 o7 D3 a: sset interfaces ethernet eth0 description 'To Internet'
) u8 a0 G- V1 m' B5 o3 w2 _set protocols static route 0.0.0.0/0 next-hop 'xx.xx.xx.33' #配置全局静态路由,33为网关! Z- S* H" z. l& E5 Y# M$ f# j
set service ssh listen-address 'xx.xx.xx.34' #设置ssh监听的本地地址
) c- ^* h! s7 }9 g! E" }9 \set service ssh port '2222' # 更改vyos的ssh端口号
" b8 f7 p" L7 O. k0 d% ~set nat source rule 100 description 'NAT Outside' #配置NAT source规则,内网映射出网- l' z' L! z) K* |. g
set nat source rule 100 outbound-interface 'eth0' - P9 ?# ?8 w6 E
set nat source rule 100 source address '192.168.0.0/24'
+ t7 @7 f( a: S' `& |$ o5 i$ kset nat source rule 100 translation address 'xx.xx.xx.34'
/ [, n% F2 N( h6 [! B. ]set nat destination rule 101 description 'To agent port 5045' #配置NAT dest规则,映射到内网: n" E9 z9 {5 i$ c$ w
set nat destination rule 101 destination address 'xx.xx.xx.34'
& M- f" z( \3 p0 Eset nat destination rule 101 destination port '5045'
9 s' P: I1 A( Fset nat destination rule 101 inbound-interface 'eth0'/ t, X/ R3 b! S" O* k+ q$ i
set nat destination rule 101 protocol 'tcp'
/ {6 H1 C( O+ _1 R+ o6 O$ K8 w$ wset nat destination rule 101 translation address '192.168.0.2'
! `, S9 {: w: V/ m) T9 @1 Mset nat destination rule 101 translation port '5045'( E$ {6 x0 X6 t* w) B; a
配置完成之后,报存配置;
& I7 C' D* X; h6 F
% f$ y/ k9 @. V/ X- A- _# c u/ Z8 Y" v! K
vyos@vyos# compare #查看更改的配置' K; q- l$ Z9 |3 i/ B6 I7 ?
vyos@vyos# commit #提交配置
# [& u5 t7 F0 Hvyos@vyos#save #保存到文件,重启不失效) |% x; B5 e; @3 u3 U" |( W1 w) C/ [
vyos@vyos# exit #退出+ d3 o. I9 C/ A' N0 f
vyos@vyos# rollback 1 #如果发现错误,rollback回滚到指定时间的配置 |
|