Мы используем Ubuntu 20.04 в AWS. Мы пытаемся настроить правило iptables, чтобы любой трафик MySQL с фиктивным IP-адресом перенаправлялся в базу данных MySql по адресу 172.31.6.173 в том же VPC. Позволь мне объяснить:
IP-адреса в этой задаче:
Сервер Ubuntu (источник): 172.31.0.151
Сервер MySql (назначение): 172.31.6.173
Фиктивный IP-адрес MySql: 6.6.6.6
С 172.31.0.151 (источник) мы подключимся к mysql по фиктивному IP-адресу (6.6.6.6), и он будет NAT к месту назначения (172.31.6.173).
Правила, которые мы использовали:
sudo iptables -t nat -A PREROUTING -s 172.31.0.151 -d 6.6.6.6 -j DNAT --к месту назначения 172.31.6.173
sudo iptables -A FORWARD -p TCP -d 172.31.6.173 -j ПРИНЯТЬ
В первой строке указывается, что любой трафик с адреса 172.31.0.151 с пунктом назначения 6.6.6.6 будет перенаправлен на 172.31.6.173.
Вторая строка принимает все tcp вперед на 172.31.6.173.
Это единственные правила в iptables, если я запускаю sudo iptables -t nat -L
, результат:
Цепь PREROUTING (политика ПРИНЯТЬ)
целевая защита выбор источника назначения
DNAT все -- 172.31.0.151 6.6.6.6 до:172.31.6.173
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть POSTROUTING (правило ACCEPT)
целевая защита выбор источника назначения
Однако с этими двумя правилами с исходного (172.31.0.151) сервера, когда я пытался войти в MySql по фиктивному IP-адресу:
mysql -h 6.6.6.6 -u имя пользователя -p
Вывод tcpdump: (сервер MySql является экземпляром RDS, что означает, что я не могу войти в систему для запуска tcpdump, поэтому я могу получить tcpdump только с исходного сервера):
13:41:41.768171 IP 172.31.0.151.50374 > 6.6.6.6.mysql: флаги [S], seq
3441229166, выигрыш 62727, опции [mss 8961, sackOK, TS val 2723434614 ecr
0,nop,wscale 7], длина 0
13:41:45.992114 IP 172.31.0.151.50374 > 6.6.6.6.mysql: Флаги [S], seq
3441229166, выигрыш 62727, опции [mss 8961, sackOK, TS val 2723438838 ecr
0,nop,wscale 7], длина 0
13:41:54.184186 IP 172.31.0.151.50374 > 6.6.6.6.mysql: Флаги [S], seq
3441229166, выигрыш 62727, опции [mss 8961, sackOK, TS val 2723447030 ecr
0,nop,wscale 7], длина 0
Правило PREROUTING не вступает в силу, попытка входа в систему по-прежнему ищет сервер с адресом 6.6.6.6, вместо того, чтобы выполнить NAT на фактический IP-адрес 172.31.6.173.
Любые советы будут оценены. Спасибо.