두 개의 네트워크 인터페이스를 동시에 사용할 수 없습니다

두 개의 네트워크 인터페이스를 동시에 사용할 수 없습니다

문제가 있습니다. 우선 Ubuntu 14.04에 서버를 설치하고 싶습니다. 2개의 인터페이스가 있습니다: dhcp 서버용 eth0과 인터넷 연결용 eth1. 그런데 동시에 두 개의 네트워크에 연결하면 PC에 인터넷이 없습니다. 그래서 서버와 인터넷 중 하나를 선택해야 합니다. 정말 끔찍합니다. 이 문제를 해결하는 방법을 알려줄 수 있는 사람이 있나요?

/etc/네트워크/인터페이스:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254

sudo 경로 출력:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     1      0        0 eth1

UPD: ifconfig 출력:

eth0      Link encap:Ethernet  HWaddr 90:e6:ba:46:1d:50  
          inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:184287 (184.2 KB)

eth1      Link encap:Ethernet  HWaddr 00:04:75:98:5f:da  
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
          TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9710708 (9.7 MB)  TX bytes:1840400 (1.8 MB)
          Interrupt:18 Base address:0x4c00 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:527890 (527.8 KB)  TX bytes:527890 (527.8 KB)

답변1

내 첫 번째 답변에 대한 출력 ifconfig과 설명을 구성하면 문제는 NIC에서 NIC를 구성하는 방식과 관련이 있다고 생각합니다 /etc/network/interfaces.

특정 구성이 없기 때문에eth1에서는 /etc/network/interfaces귀하의 모뎀이 DHCP를 통해 귀하의 서버에 IP 정보를 제공하고 있다고 가정합니다. 출력 에 따라 route기본 게이트웨이가 모뎀을 가리키고 인터넷을 가리키게 됩니다.

하지만 귀하 /etc/network/interfaces의 파일 에는eth0기본 게이트웨이도 구성되어 있습니다(설명 gateway 172.16.1.254).

시스템에는 두 개의 기본 게이트웨이가 있을 수 없습니다. 기본 게이트웨이 할당eth1정적 구성 비활성화eth0, IP가 없는 이유eth0결과 ifconfig와 인터넷이 작동하고 내부 네트워크가 더 이상 작동하지 않는 이유.

해당 줄을 제거하고 다시 시도해야 합니다 gateway 172.16.1.254.

물론 이렇게 하면 내부 LAN에 서브넷이 두 개 이상 있으면 더 이상 해당 서브넷에 연결할 수 없습니다. 서버에서 이러한 모든 서브넷에 대한 고정 경로를 구성하지 않는 한:

sudo 경로 추가 -net ABCD gw 172.16.1.254

인터페이스가 작동할 때마다 실행되도록 route저장된 스크립트에 명령을 추가할 수 있습니다 ./etc/network/if-up.d

답변2

귀하의 게시물에 대해 제가 이해한 바에 따르면 귀하는 다음을 통해 인터넷에 연결되어 있습니다.eth1그리고 다음을 통해 내부 네트워크에 연결됩니다.eth0. 그리고 귀하의 서버는 귀하의 PC가 인터넷에 접속할 수 있도록 DHCP 서버 및 기본 게이트웨이 역할을 합니다.

먼저 PC에서 게이트웨이를 포함한 모든 DHCP 설정을 올바르게 수신했는지 확인하세요. 귀하의 질문에 따르면 172.16.1.100이어야 한다고 가정합니다.

둘째, 귀하의eth1인터넷에 잘 연결되어 있고 잘 구성되어 있습니다. 이는 분명히 ISP에 따라 다릅니다.

마지막으로 가장 중요한 작업은 서버의 두 인터페이스 간에 IP 전달을 활성화해야 한다는 것입니다. 이것이 없으면 패킷이 PC와 인터넷 간에 라우팅되지 않습니다.

수동 설정:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

부팅 시 IP 전달 플래그가 자동으로 설정되도록 하려면 다음 줄 #net.ipv4.ip_forward=1의 주석 처리를 제거하세요./etc/sysctl.conf

또한 트래픽을 차단하는 IPtables 방화벽 규칙이 없는지 확인해야 합니다. 하다 :

iptables -L -n

규칙이 있는 경우 목록을 가져옵니다. 먼저 모든 방화벽 규칙을 비활성화한 상태에서 이 설정을 시도하겠습니다.

iptables -F

답변3

비슷한 문제가 있었지만 인터페이스 파일은 다음과 같이 비어 있었습니다.

# The loopback network interface
auto lo
iface lo inet loopback

발견된 유선 연결 파일을 이동/제거하여 문제를 해결했습니다. /etc/NetworkManager/system-connections/Wired connection 1

재부팅 후 두 네트워크에 모두 연결할 수 있었습니다.

관련 정보