Tabela de Conteúdos
Networking kung-fu
7 Maio 2011, E.T. Porto Linux
by Nuno Dantas
Vou falar de:
- bridge
- bridge + VLAN
- Multilink trunk
- bridge+ VLAN + Multilink trunk
- ipvs
- stunnel
bridge
ethx ----- Brigde ---- vif1
:--- vif2
:--- vif3
:--- vif4
:--- vifN
bridge
brctl addbr nomedabridge
brctl addif ethX
brctl show
root@kvm0:~# brctl show bridge name bridge id STP enabled interfaces rede28eth0 8000.0015171954fc no eth0 vnet2
bridge
- interfaces config file:
auto rede28eth0
iface rede28eth0 inet manual
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
bridge + VLAN
ethx --ethx.vlanX--- Brigde ---- vifX1
: :--- vifX2
: :--- vifX3
: :--- vifX4
: :--- vifXN
:
:-ethx.vlanY--- Brigde ---- vifY1
:--- vifY2
:--- vifY3
:--- vifY4
:--- vifYN
bridge + VLAN
vconfig add eth1 25
vconfig add eth1 97
root@kvm0:~# cat /proc/net/vlan/config VLAN Dev name | VLAN ID eth1.25 | 25 | eth1 eth1.97 | 97 | eth1
bridge + VLAN
- interfaces config file:
auto marcadores
iface marcadores inet manual
bridge_ports eth7.112
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
pre-up vconfig add eth7 112
post-down vconfig rem eth7.112
multilink trunk (bonding)
ethA ---:
+
ethB ---:----bond0
+
ethC ---:
multilink trunk (bonding)
- configuring bonding manually:
modprobe bonding mode=balance-alb miimon=100
ifenslave bond0 eth0
ifenslave bond0 eth1
multilink trunk (bonding)
- interfaces config file:
auto bond0
iface bond0 inet manual
slaves eth2 eth3
bond_mode 802.3ad
bond_xmit_hash_policy layer3+4
bond_lacp_rate fast
bond_miimon 100
bond_downdelay 200
bond_updelay 200
multilink trunk (bonding)
root@kvm0:~# cat /proc/net/bonding/bond0 Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer3+4 (1) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 200 Down Delay (ms): 200 802.3ad info LACP rate: fast Aggregator selection policy (ad_select): stable Active Aggregator Info: Aggregator ID: 2 Number of ports: 2 Actor Key: 17 Partner Key: 12289 Partner Mac Address: 5c:e2:86:19:7c:01
bridge + VLAN + multilink trunk
ethA ---:
+
ethB ---:---bond0--bond0.vlanX--- Brigde --- vif1
+ : :-- vif2
ethC ---: : :-- vif3
: :-- vif4
: :-- vifN
:
:-bond0.vlanY--- Brigde --- vif1
:-- vif2
:-- vif3
:-- vif4
:-- vifN
bridge + VLAN + multilink trunk
- interfaces config file:
auto redegestao
iface redegestao inet static
bridge_ports bond0.97
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
pre-up vconfig add bond0 97
post-down vconfig rem bond0.97
bridge + VLAN + multilink trunk + IP
- interfaces config file:
auto redegestao
iface redegestao inet static
bridge_ports bond0.97
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
pre-up vconfig add bond0 97
post-down vconfig rem bond0.97
address 172.16.20.123
netmask 255.255.255.0
network 172.16.20.0
broadcast 172.16.20.255
ipvs
VIP:port ---- IPVS ---- Real Server 1
:--- Real Server 2
:--- Real Server N
ipvs :: scheduling-method
- rr - Round Robin
- wrr - Weighted Round Robin
- lc - Least-Connection
- wlc - Weighted Least-Connection
- lblc - Locality-Based Least-Connection
- lblcr - Locality-Based Least-Connection with Replication
- dh - Destination Hashing
- sh - Source Hashing
- sed - Shortest Expected Delay
- nq - Never Queue
ipvs
- configuring ipvs manually:
ipvsadm -A -t 193.136.28.130:143 ipvsadm -a -t 193.136.28.130:143 -r 172.16.20.179:143 -m ipvsadm -a -t 193.136.28.130:143 -r 172.16.20.180:143 -m ipvsadm -a -t 193.136.28.130:143 -r 172.16.20.181:143 -m
ipvs
- /etc/ldirectord.conf
# Virtual Service for IMAP
virtual=193.136.28.130:143
real=172.16.20.179:143 masq
real=172.16.20.180:143 masq
real=172.16.20.181:143 masq
service=imap
scheduler=rr
#persistent=600
protocol=tcp
checktype=negotiate
- network address translation:
iptables -t nat -A POSTROUTING -o eth0 -s \ 172.16.20.179 -j SNAT --to-source 193.136.28.130
ipvs
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 193.136.28.130:25 rr -> 172.16.20.179:25 Masq 1 0 0 -> 172.16.20.180:25 Masq 1 0 0 -> 172.16.20.181:25 Masq 1 0 0 TCP 193.136.28.130:143 rr persistent 300 -> 172.16.20.179:143 Masq 1 1 0 -> 172.16.20.180:143 Masq 1 0 0 -> 172.16.20.181:143 Masq 1 0 0
stunnel
IP:PORT ---- Stunnel---- IP:PORT
193.136.28.130:993 ---- Stunnel---- 193.136.28.130:143
stunnel -p imap.pem -d 193.136.28.130:993 -r 193.136.28.130:143
stunnel
cert=/etc/ssl/certs/10279593.crt CAfile=/etc/ssl/certs/10279593.ca-bundle key=/etc/ssl/certs/imap.key sslVersion = all chroot = /var/lib/stunnel4/ setuid = stunnel4 setgid = stunnel4 pid = /imap.pid socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 [imaps] accept = 193.136.28.130:993 connect = 193.136.28.130:143
big picture
ethA ethB ethC
: : :
-----+------
: :- vifX4 (RSN)
bond0 :- vifX3 (RS2)
: :- vifX2 (RS1)
.-------:--bond0.vlanX-- Brigde -- vifX1----.
: :
: :
: /-stunnel--VIP:port--IPVS--\:
: :\-stunnel--VIP:port--IPVS--/
: :
: :--------------------.
: :
:-bond0.vlanY--- Brigde -- vifY1 ---:
:- vifY2 -- (VM2)
:- vifY3 -- (VM2)
:- vifY4 -- (VM2)
:- vifYN -- (VMN)

