@@ -33,18 +33,26 @@ runpktgen ()
33
33
rc=$? ; if [[ $rc == 0 ]]; then reset; fi
34
34
}
35
35
36
- # Set up client side machine for NAT example . It initializes two
37
- # network interfaces and sets up default routes to the server
38
- # network. Apache package is installed for apache benchmark program.
36
+ # Perform transient NAT client machine configuration . It initializes
37
+ # two network interfaces and sets up default routes to the server
38
+ # network.
39
39
natclient ()
40
+ {
41
+ sudo ip route add 192.168.16.0/24 via 192.168.14.1 dev $CARD1
42
+ sudo ip route add 192.168.26.0/24 via 192.168.24.1 dev $CARD2
43
+ }
44
+
45
+ # Perform one-time configuration needed for NAT client test
46
+ # machine. For it apache package is installed for apache benchmark
47
+ # program.
48
+ setupnatclient ()
40
49
{
41
50
sudo nmcli c add type ethernet ifname $CARD1 con-name $CARD1 ip4 192.168.14.2/24
42
51
sudo nmcli c add type ethernet ifname $CARD2 con-name $CARD2 ip4 192.168.24.2/24
43
52
sudo nmcli c up $CARD1
44
53
sudo nmcli c up $CARD2
45
54
46
- sudo ip route add 192.168.16.0/24 via 192.168.14.1 dev $CARD1
47
- sudo ip route add 192.168.26.0/24 via 192.168.24.1 dev $CARD2
55
+ natclient
48
56
49
57
if [ $DISTRO == Ubuntu ]; then
50
58
sudo apt-get install -y apache2
@@ -53,12 +61,12 @@ natclient ()
53
61
fi
54
62
}
55
63
56
- # Set up middle machine for NAT example . It initializes two first
57
- # network interfaces for NFF-GO bindports command and initializes
58
- # second interface pair for use with Linux NAT. In this setup enp0s16
59
- # is connected to server (public network) and enp0s9 is connected to
60
- # client (private network).
61
- natsetup ()
64
+ # Perform transient configuration for NAT middle machine . It
65
+ # initializes two first network interfaces for NFF-GO bindports
66
+ # command and initializes second interface pair for use with Linux
67
+ # NAT. In this setup eth4(enp0s16) is connected to server (public
68
+ # network) and eth2(enp0s9) is connected to client (private network).
69
+ natmiddle ()
62
70
{
63
71
export NFF_GO_CARDS=" 00:08.0 00:0a.0"
64
72
if [ $DISTRO == Ubuntu ]; then
@@ -68,30 +76,43 @@ natsetup ()
68
76
export CARD1=eth2
69
77
export CARD2=eth4
70
78
fi
71
- sudo nmcli c add type ethernet ifname $CARD1 con-name $CARD1 ip4 192.168.24.1/24
72
- sudo nmcli c add type ethernet ifname $CARD2 con-name $CARD2 ip4 192.168.26.1/24
73
- sudo nmcli c up $CARD1
74
- sudo nmcli c up $CARD2
79
+
80
+ bindports
75
81
76
82
sudo sysctl -w net.ipv4.ip_forward=1
77
83
78
84
if [ $DISTRO == Ubuntu ]; then
79
85
sudo iptables -t nat -A POSTROUTING -o $CARD2 -j MASQUERADE
80
86
sudo iptables -A FORWARD -i $CARD2 -o $CARD1 -m state --state RELATED,ESTABLISHED -j ACCEPT
81
87
sudo iptables -A FORWARD -i $CARD1 -o $CARD2 -j ACCEPT
82
- elif [ $DISTRO == Fedora ]; then
83
- sudo firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o $CARD2 -j MASQUERADE
84
- sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i $CARD2 -o $CARD1 -m state --state RELATED,ESTABLISHED -j ACCEPT
85
- sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i $CARD1 -o $CARD2 -j ACCEPT
88
+ fi
89
+ }
90
+
91
+ # Perform one-time configuration needed for NAT middle machine. On
92
+ # Fedora we use firewall daemon to permanently record IP forwarding
93
+ # rules.
94
+ setupnatmiddle ()
95
+ {
96
+ natmiddle
97
+
98
+ sudo nmcli c add type ethernet ifname $CARD1 con-name $CARD1 ip4 192.168.24.1/24
99
+ sudo nmcli c add type ethernet ifname $CARD2 con-name $CARD2 ip4 192.168.26.1/24
100
+ sudo nmcli c up $CARD1
101
+ sudo nmcli c up $CARD2
102
+
103
+ if [ $DISTRO == Fedora ]; then
86
104
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o $CARD2 -j MASQUERADE
87
105
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i $CARD2 -o $CARD1 -m state --state RELATED,ESTABLISHED -j ACCEPT
88
106
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i $CARD1 -o $CARD2 -j ACCEPT
107
+ sudo firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o $CARD2 -j MASQUERADE
108
+ sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i $CARD2 -o $CARD1 -m state --state RELATED,ESTABLISHED -j ACCEPT
109
+ sudo firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i $CARD1 -o $CARD2 -j ACCEPT
89
110
fi
90
111
}
91
112
92
- # Set up server side machine for NAT example. It initializes two
93
- # network interfaces and installs Apache web server.
94
- natserver ()
113
+ # Perform one-time configuration needed for NAT server side
114
+ # machine. It installs Apache web server.
115
+ setupnatserver ()
95
116
{
96
117
sudo nmcli c add type ethernet ifname $CARD1 con-name $CARD1 ip4 192.168.16.2/24
97
118
sudo nmcli c add type ethernet ifname $CARD2 con-name $CARD2 ip4 192.168.26.2/24
@@ -109,6 +130,10 @@ natserver ()
109
130
sudo systemctl enable httpd
110
131
sudo systemctl start httpd
111
132
fi
133
+
134
+ sudo dd if=/dev/zero of=/var/www/html/10k.bin bs=1 count=10240
135
+ sudo dd if=/dev/zero of=/var/www/html/100k.bin bs=1 count=102400
136
+ sudo dd if=/dev/zero of=/var/www/html/1m.bin bs=1 count=1048576
112
137
}
113
138
114
139
# Set up docker daemon, this is needed for automated testing.
0 commit comments