VM 내에서 Ubuntu Linux 16.04를 라우터로 설정

VM 내에서 Ubuntu Linux 16.04를 라우터로 설정

(에서 마이그레이션됨https://serverfault.com/questions/895250/setting-up-ubuntu-linux-16-04-as-a-router-within-a-vm)

Ubuntu VM을 실행 중인 라우터로 설정하고 싶습니다.atcd다양한 네트워크 조건에서 단일 장치에 대한 타겟 테스트를 수행할 수 있습니다. 부품이 작동하지만 게이트웨이가 패킷을 라우팅하도록 하는 데 문제가 있습니다.

내가 시도한 것의 요점은 다음과 같습니다.

  • "router"Ubuntu 16.04 호스트( )에서 Ubuntu 16.04 VM( "laptop") 생성
  • VM용으로 두 개의 NIC를 생성했으며 둘 다 호스트의 단일 WiFi 어댑터에 브리지되었습니다.
  • enp0s3192.168.0.199에서 게이트웨이로 정적으로 구성할 첫 번째 NIC( )를 설정합니다.
  • 두 번째 NIC( enp0s8)가 DHCP를 통해 자동 구성되도록 설정합니다(예: 192.168.0.100).
  • 다음 iptables규칙을 사용했습니다(여기그리고여기) 에 router: iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE iptables -A FORWARD -i enp0s8 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
  • 테스트 중인 장치/호스트( "test-device")는 고정 IP 192.168.0.77로 구성되고 192.168.0.199를 게이트웨이로 사용하도록 구성되었습니다.

router이 시점에서 Wi-Fi 라우터를 게이트웨이(192.168.0.1)로 사용하도록 구성된 LAN의 다른 컴퓨터에서 192.168.0.199와 192.168.0.100을 통해 실행되는 HTTP 서버에 연결할 수 있습니다 .

test-device인터넷에서 호스트를 ping할 수 있지만 해당 호스트에 대한 TCP 연결을 설정할 수는 없습니다(예를 들어 curl www.google.com"대상에 연결할 수 없음"으로 인해 실패함).

공유할 가치가 있는 다른 사항:

iptables구성 router:

root# iptables -L -v
Chain INPUT (policy ACCEPT 12012 packets, 5058K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  enp0s8 enp0s3  anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  enp0s3 enp0s8  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 3220 packets, 271K bytes)
 pkts bytes target     prot opt in     out     source               destination         

ip route항목

root# ip route
default via 192.168.0.1 dev enp0s3 onlink 
169.254.0.0/16 dev enp0s3  scope link  metric 1000 
192.168.0.0/24 dev enp0s3  proto kernel  scope link  src 192.168.0.199 
192.168.0.0/24 dev enp0s8  proto kernel  scope link  src 192.168.0.121 

다음에 무엇을 해야 할지 모르겠어서 도움을 받을 수 있습니다!

답변1

IP 전달을 활성화하지 않았습니다sysctl에서...

에게IP 라우팅 수행우분투 리눅스에서:

sudo nano sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1

sudo sysctl -p

관련 정보