Académique Documents
Professionnel Documents
Culture Documents
http://vyatta.com
Free download
livecd
Our customer?
Linux cats
ifconfig, ip link wanpipe route, vtysh, ip route brctl vconfig, ip link ifenslave
CLI Requirements
Command completion Roles: Administrator, operator Configure mode Text based Language neutral
Extensible
Vyatta
Proprietary System
Monolithic SW
Open System
Network Apps
WAN Optimization Load Balancing
FusionCLITM
Open API
Scalable Routing
Internet Protocols
NW Functions
DHCP, NAT, Radius
Security
Firewall, VPN
Extensible
PBX
Anti-X IDS
Linux Kernel
Unique HW
Standard HW
Quagga config
config
System config
Quagga
Snmp
wanpipe
discard
operational
commit configure
configuration
boot
config.boot
Active configuation
save
10
CLI architecture
11
12
Template hierarchy
/opt/vyatta/share/vyattaop/templates/show/interfaces/ethernet |detail |`node.def |node.def `node.tag |brief |`node.def |capture ||node.def ||not |||node.def ||`port |||node.def ||`node.tag ||`node.def |`port ||node.def |`node.tag |`node.def |identify |`node.def |node.def |physical |`node.def
13
Operational template
show/interfaces/ethernet/node.tag/node.def
help:Showspecifiedethernetinterfaceinformation allowed:fordevin/sys/class/net/*; doif[[L$dev/device]] thenif[[$(cat$dev/type)eq1]] thenechon${dev##*/}"" fi fi done run:vyattashowinterfaces.plintf="$4"
14
Demo 2: Configuration
$configure [edit] #setinterfacesetherneteth0description'VmwareNAT' [edit] #showinterfacesetherneteth0 addressdhcp +description"VmwareNAT" hwid00:0c:29:f6:20:9e [edit] #mount ... unionfson/opt/vyatta/config/tmp/new_config_5035typeunionfs (rw,dirs=/tmp/changes_only_5035=rw:/opt/vyatta/config/active=ro) [edit] vyatta@vc313#commit
15
Configuration templates
multi: type:txt help:SetanIPaddressforthisinterface syntax:expression:exec"/opt/vyatta/sbin/vyattainterfaces.pl\ validaddr$VAR(@)dev$VAR(../@)"\ ;"InvalidIPaddress/prefix[$VAR(@)]forinterface$VAR(../@)" update:/opt/vyatta/sbin/vyattainterfaces.pl\ ethaddrupdate$VAR(@)dev$VAR(../@) delete:/opt/vyatta/sbin/vyattainterfaces.pl\ ethaddrdelete$VAR(@)dev$VAR(../@) allowed:echo"dhcp<>" comp_help:Possiblecompletions: <x.x.x.x/x> SettheIPaddressandprefixlength <h:h:h:h:h:h:h:h/x>SettheIPv6addressandprefixlength dhcp SettheIPaddressandprefixlengthviaDHCP
16
17
18
P2P, backup,
19
Vyatta QoS
Fair queue Traffic shaper Drop tail Rate limiter Traffic limiter ...
=> sfq => htb => fifo => tbf => ingress
20
fair-queue
#setqospolicyfairqueuefq [edit] #setinterfacesetherneteth0qospolicyoutfq [edit] #commit [edit] #runshowqueueing Outputqueues: InterfaceQosPolicySentDroppedOverlimit eth0fairqueue457800 eth1default46800
21
fair-queue template
set/qos-policy/fair-queue/node.def
tag: type:txt help:Setfairqueueingpolicy syntax:expression:pattern$VAR(@)"^[[:alnum:]][_[:alnum:]]*$" ;"onlyalphanumericpolicynameallowed" update:/opt/vyatta/sbin/vyattaqos.plcreatepolicy"$VAR(.)" "$VAR(@)" delete:/opt/vyatta/sbin/vyattaqos.pldeletepolicy"$VAR(@)"
22
23
24
QoS traffic-shaper
#editqospolicytrafficshaperlartc [editqospolicytrafficshaperlartc] #setclass2bandwidth100% [editqospolicytrafficshaperlartc] #setclass2matchwwwipdestinationport80 [editqospolicytrafficshaperlartc] #setclass3bandwidth3mbit [editqospolicytrafficshaperlartc] #setclass3ceiling5mbit [editqospolicytrafficshaperlartc] #setclass3matchsmtpipdestinationport25 [editqospolicytrafficshaperlartc] #exit
25
Traffic-shaper continue
[edit] #commit qospolicytrafficshaperlartcconfigurationnotcomplete:missing defaultclass Commitfailed #setqospolicytrafficshaperlartcdefaultbandwidth1 [edit] #commit [edit] #setinterfacesetherneteth0qospolicyout
26
Result
#runshowqueueingetherneteth0 eth0Outputqueue: ClassQosPolicySentDroppedOverlimit 1:trafficshaper1143800 4fairqueue1143800 2fairqueue000 3fairqueue000 [edit]
27
Issues
Every distribution is a fork All changes are fed to upstream Vyatta config ignores other changes CLI is loosely coupled Linux Kongress paper
Developer documentation
28
29
Future
Richer features
QoS+, bonding,
30