Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Projets publics
Ravada-Mirror
Commits
cfa19e30
Commit
cfa19e30
authored
Mar 19, 2021
by
Francesc Guasch
Browse files
test(ports); check duplicated internal ip
issue #1505
parent
8e11c7ba
Changes
1
Hide whitespace changes
Inline
Side-by-side
t/vm/92_ports.t
View file @
cfa19e30
...
...
@@ -704,6 +704,75 @@ sub _iptables_save($vm,$table=undef,$chain=undef) {
return
@out
;
}
sub
test_redirect_ip_duplicated
($vm) {
diag
("
Test redirect ip duplicated
"
.
$vm
->
type
);
my
$internal_port
=
22
;
my
$domain
=
$BASE
->
clone
(
name
=>
new_domain_name
,
user
=>
user_admin
);
$domain
->
expose
(
port
=>
$internal_port
,
name
=>
"
ssh
");
$domain
->
start
(
remote_ip
=>
'
10.1.1.2
',
user
=>
user_admin
);
my
$ip
=
_wait_ip2
(
$vm
,
$domain
);
wait_request
(
debug
=>
1
);
my
@ports0
=
$domain
->
list_ports
();
my
(
$public_port
)
=
$ports0
[
0
]
->
{
public_port
};
$vm
->
iptables
(
t
=>
'
nat
'
,
A
=>
'
PREROUTING
'
,
p
=>
'
tcp
'
,
d
=>
$vm
->
ip
,
dport
=>
$public_port
+
10
,
j
=>
'
DNAT
'
,
'
to-destination
'
=>
"
$ip
:
$internal_port
"
);
my
@out
=
split
/\n/
,
`
iptables-save -t nat
`;
my
@open
=
(
grep
/--to-destination $ip/
,
@out
);
is
(
scalar
(
@open
),
2
)
or
die
Dumper
(
\
@open
);
$domain
->
start
(
remote_ip
=>
'
10.1.1.2
',
user
=>
user_admin
);
wait_request
(
debug
=>
1
);
@out
=
split
/\n/
,
`
iptables-save -t nat
`;
@open
=
(
grep
/--to-destination $ip/
,
@out
);
is
(
scalar
(
@open
),
1
)
or
die
Dumper
(
\
@open
);
$domain
->
remove
(
user_admin
);
}
sub
test_redirect_ip_duplicated_refresh
($vm) {
diag
("
Test redirect ip duplicated refresh
"
.
$vm
->
type
);
my
$internal_port
=
22
;
my
$domain
=
$BASE
->
clone
(
name
=>
new_domain_name
,
user
=>
user_admin
);
$domain
->
expose
(
port
=>
$internal_port
,
name
=>
"
ssh
");
$domain
->
start
(
remote_ip
=>
'
10.1.1.2
',
user
=>
user_admin
);
my
$ip
=
_wait_ip2
(
$vm
,
$domain
);
wait_request
(
debug
=>
1
);
my
@ports0
=
$domain
->
list_ports
();
my
(
$public_port
)
=
$ports0
[
0
]
->
{
public_port
};
$vm
->
iptables
(
t
=>
'
nat
'
,
A
=>
'
PREROUTING
'
,
p
=>
'
tcp
'
,
d
=>
$vm
->
ip
,
dport
=>
$public_port
+
10
,
j
=>
'
DNAT
'
,
'
to-destination
'
=>
"
$ip
:
$internal_port
"
);
my
@out
=
split
/\n/
,
`
iptables-save -t nat
`;
my
@open
=
(
grep
/--to-destination $ip/
,
@out
);
is
(
scalar
(
@open
),
2
)
or
die
Dumper
(
\
@open
);
my
$req
=
Ravada::
Request
->
refresh_vms
();
wait_request
();
is
(
$req
->
status
,'
done
');
is
(
$req
->
error
,
'');
@out
=
split
/\n/
,
`
iptables-save -t nat
`;
@open
=
(
grep
/--to-destination $ip/
,
@out
);
is
(
scalar
(
@open
),
1
)
or
die
Dumper
(
\
@open
);
$domain
->
remove
(
user_admin
);
}
sub
test_open_port_duplicated
($vm) {
diag
("
Test open port duplicated
"
.
$vm
->
type
);
my
$base
=
$BASE
->
clone
(
name
=>
new_domain_name
,
user
=>
user_admin
);
...
...
@@ -1247,6 +1316,7 @@ for my $vm_name ( 'KVM', 'Void' ) {
flush_rules
()
if
!
$<
;
import_base
(
$vm
);
test_redirect_ip_duplicated
(
$vm
);
test_open_port_duplicated
(
$vm
);
test_close_port
(
$vm
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment