
이 질문이 이전에 요청되었을 수도 있다는 것을 알고 있지만 원하는 방식으로 하려고 노력하고 있습니다. 좋습니다. 상황은 다음과 같습니다.
가상 머신 2대
가상 머신 A- CentOS(네트워크 어댑터 2개 포함):
외부 NIC - 호스트에 연결됨(간단하게 하기 위해 이를 호출함)"외부A". DHCP 활성화
내부 네트워크 카드 -"내부 A". 이 인터페이스에서만 수신하도록 구성된 고정 IP, DHCPD 서버
가상 머신 B-Debian(네트워크 어댑터가 하나만 있음)
내부 네트워크 카드 -"내부 B", 네트워크에서"내부 A", DHCP를 활성화하고 내부 A에서 IP를 성공적으로 수신합니다.
좋아, 이것이 내가 원하는 것이다. 내부 네트워크 카드에 대한 NAT 액세스를 원하지 않기 때문에 모든 외부 트래픽을 다음을 통해 라우팅할 수 있는 방법이 있습니까?외부 AVM 1의 네트워크 카드?
노트:
외부 A그리고내부완전히 다른 서브넷에 있습니다.
외부 A - 192.168.0.X
내부 A - 192.168.135.X
답변1
"내부 A"에 기본 게이트웨이가 있는지, "내부 B"에 동일한 기본 게이트웨이가 있는지 확인하세요.
가능하다면 nat 테이블에 대한 모든 iptables 규칙을 삭제하십시오.
iptables --flush -t nat
가상 머신 01
[root@centos01 ~]# route -n | grep enp0s3
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
VM01 네트워크 구성:
enp0s3: conectado to enp0s3
inet4 192.168.0.41/24
route4 0.0.0.0/0
route4 192.168.0.0/24
enp0s8: conectado to enp0s8
inet4 192.168.135.254/24
route4 192.168.135.0/24
route4 192.168.0.1/32
route4 0.0.0.0/0
가상 머신 02
[root@centos02 ~]# route -n | grep enp0s3
0.0.0.0 192.168.135.254 0.0.0.0 UG 100 0 0 enp0s3
192.168.135.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
VM02 네트워크 구성:
enp0s3: conectado to enp0s3
inet4 192.168.135.50/24
route4 0.0.0.0/0
route4 192.168.135.0/24
VM01 전달 확인:
[root@centos01 ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
VM01 iptables, 규칙을 추가하는 대신 규칙을 삽입해 보겠습니다.
iptables -t nat -I PREROUTING --src 192.168.135.0/24 --dst 0/0 -j ACCEPT
iptables -t nat -I POSTROUTING -j MASQUERADE
VM01 iptables 확인:
[root@centos01 ~]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.135.0/24 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
효과가 있는지 알려주세요 :)
답변2
나는 이것이 효과가 있다고 생각합니다. VM A에서 실행
IP 전달 활성화(영구)
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
192.168.135.x의 트래픽 허용
iptables -t nat -A PREROUTING --src 192.168.135.0/24 --dst 0/0 -j ACCEPT
NAT 트래픽
iptables -t nat -A POSTROUTING -j MASQUERADE