현재코드는 나왔는데 언제 소스에 반영되어 배포가 될지 모르겠다.
https://blueprints.launchpad.net/neutron/+spec/router-port-forwarding
사용할 수 없으니 , 그냥 수작업으로 한번 해봤다. 이전에는 floating ip를 연결하여 사용했었다.
네트워크 노드에 들어가서 수작업으로 포트포워딩을 직접 실행해보자.
일단 라우터 목록 먼저보고
$ neutron router-list
+————————————–+—————-+——————————————————————————————————————————————————————————————–+
| id | name | external_gateway_info |
+————————————–+—————-+——————————————————————————————————————————————————————————————–+
| afb44f37-7741-4044-9eb9-659ae7a66cdb | jaeminj-router | {“network_id”: “f975f93d-1e20-4304-b949-8aab61213a3a”, “enable_snat”: true, “external_fixed_ips”: [{“subnet_id”: “324d0a02-991b-4d61-ab25-df40d55c03ca”, “ip_address”: “123.456.789.123”}]} |
+————————————–+—————-+——————————————————————————————————————————————————————————————–+
현재 실행중인 VM 목록도 보고
$ nova list
+————————————–+——–+——–+————+————-+————————–+
| ID | Name | Status | Task State | Power State | Networks |
+————————————–+——–+——–+————+————-+————————–+
| 43e0fdbd-7e5f-439f-bdb3-2eb75c77ff05 | node01 | ACTIVE | – | Running | jaeminj-net=192.168.1.24 |
| 38ebe767-9537-433e-a2ad-e26d818d7e01 | node02 | ACTIVE | – | Running | jaeminj-net=192.168.1.20 |
| 7de68c65-ad07-4075-890b-35558661d917 | node03 | ACTIVE | – | Running | jaeminj-net=192.168.1.21 |
| ce8e71af-1a8d-4a03-a112-3bd5577b8c64 | node04 | ACTIVE | – | Running | jaeminj-net=192.168.1.23 |
| b47f8df0-2168-43f6-ad82-3b1aeacbe654 | node05 | ACTIVE | – | Running | jaeminj-net=192.168.1.22 |
+————————————–+——–+——–+————+————-+————————–+
라우터의 공인아이피는 123.456.789.123에 VM 192.168.1.24의 ssh port로 포트 포워딩을 해서 node를 관리하고자 한다.
$ ip netns show
qrouter-afb44f37-7741-4044-9eb9-659ae7a66cdb
qdhcp-b7d03ba4-239e-4d1f-be41-d6cefe90bc46
neutron router id afb44f37-7741-4044-9eb9-659ae7a66cdb를 network namespace qrouter-afb44f37-7741-4044-9eb9-659ae7a66cdb로 존재한다.
해당 namespace에서 prerouting 테이블에 등록된 룰셋을 먼저 확인해보았다.
$ sudo ip netns exec qrouter-afb44f37-7741-4044-9eb9-659ae7a66cdb iptables -t nat -vnL PREROUTING
Chain PREROUTING (policy ACCEPT 1284 packets, 126K bytes)
pkts bytes target prot opt in out source destination
19618 1768K neutron-l3-agent-PREROUTING all — * * 0.0.0.0/0 0.0.0.0/0
라우터 123.456.789.123의 22포트를 VM 192.168.1.24의 22포트로 포트포워딩하는 룰셋을 아래와 같이 실행했다.
$ sudo ip netns exec qrouter-afb44f37-7741-4044-9eb9-659ae7a66cdb iptables -A PREROUTING -t nat -p tcp -d 123.456.789.123 –dport 22 -j DNAT –to 192.168.1.24:22
$ ssh -i my_key.pem ubuntu@123.456.789.123
$ sudo ip netns exec qrouter-afb44f37-7741-4044-9eb9-659ae7a66cdb iptables -t nat -vnL PREROUTING
Chain PREROUTING (policy ACCEPT 1326 packets, 129K bytes)
pkts bytes target prot opt in out source destination
19660 1771K neutron-l3-agent-PREROUTING all — * * 0.0.0.0/0 0.0.0.0/0
8 384 DNAT tcp — * * 0.0.0.0/0 115.68.146.165 tcp dpt:22 to:192.168.1.24:22
포트포워딩이 배포가 안돼서 수작업으로 해봤다.
지금은 그냥 floating ip를 연결해서 사용하면 된다. 어렵게 생각하진 말자.