28 lines
No EOL
1.1 KiB
Bash
28 lines
No EOL
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
function add_public_ip {
|
|
local vpc_name="${1}"
|
|
local public_ip="${2}"
|
|
local private_ip="${3}"
|
|
local host_ip="${4}"
|
|
|
|
ip -n "${vpc_name}" a add "${public_ip}/32" dev br-public
|
|
ip r add "${public_ip}" dev br-public scope link
|
|
ip -n "${vpc_name}" r add "${host_ip}" dev br-public scope link
|
|
ip -n "${vpc_name}" r add default via "${host_ip}"
|
|
|
|
ip netns exec "${vpc_name}" iptables -t nat -A PREROUTING -d "${public_ip}/32" -j DNAT --to-destination "${private_ip}"
|
|
ip netns exec "${vpc_name}" iptables -t nat -A POSTROUTING -s "${private_ip}/32" -o br-public -j SNAT --to-source "${public_ip}"
|
|
}
|
|
|
|
function delete_public_ip {
|
|
local vpc_name="${1}"
|
|
local public_ip="${2}"
|
|
local private_ip="${3}"
|
|
|
|
ip -n "${vpc_name}" a del "${public_ip}/32" dev br-public
|
|
ip r del "${public_ip}" dev br-public
|
|
|
|
ip netns exec "${vpc_name}" iptables -t nat -D PREROUTING -d "${public_ip}/32" -j DNAT --to-destination "${private_ip}"
|
|
ip netns exec "${vpc_name}" iptables -t nat -D POSTROUTING -s "${private_ip}/32" -o br-public -j SNAT --to-source "${public_ip}"
|
|
} |