제가 뭔가 간단한 것을 놓치고 있는 게 아닐까 생각하는데, 지금 이 문제를 고치려면 더 많은 주의가 필요합니다. 동일한 NIC에 2개의 독립 네트워크가 필요합니다(이더넷 1):192.168.0.0/24그리고192.168.1.0/24. 인터페이스는 다음과 같습니다
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.250 netmask 255.255.255.0 broadcast 192.168.1.255
ether 0c:c4:7a:7d:bb:f8 txqueuelen 1000 (Ethernet)
RX packets 24515 bytes 5405247 (5.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31116 bytes 3036051 (2.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdf200000-df220000
eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.250 netmask 255.255.255.0 broadcast 192.168.0.255
ether 0c:c4:7a:7d:bb:f8 txqueuelen 1000 (Ethernet)
device interrupt 16 memory 0xdf200000-df220000
내가 /etc/sysconfig/dhcpd
가지고 있는
DHCPD_INTERFACE="eth1 eth1:1"
DHCPDARGS="eth1 eth1:1"
내가 /etc/dhcpd.conf
가지고 있는
subnet 192.168.0.0 netmask 255.255.255.0 {
pool {
....
}
}
subnet 192.168.1.0 netmask 255.255.255.0 {
pool {
....
}
}
그러나 dhcpd를 시작하면 다음이 표시됩니다.
$ sudo journalctl -xeu dhcpd.service
....
dhcpd[5113]: No subnet declaration for eth1:1 (no IPv4 addresses).
dhcpd[5113]: ** Ignoring requests on eth1:1. If this is not what
dhcpd[5113]: you want, please write a subnet declaration
dhcpd[5113]: in your dhcpd.conf file for the network segment
dhcpd[5113]: to which interface eth1:1 is attached. **
....
왜?
답변1
네트워크 인터페이스 이름은 eth1:1
개별 인터페이스나 가상 인터페이스를 지정하지 않습니다. eth1:1
단지 어리석기 때문에 eth1
존재하는 인터페이스의 별칭입니다 ifconfig
(위 설명에서 언급한 것처럼 사용해서는 안 됩니다.)
두 선언을 모두 포함 shared-network
하려면 하나의 선언을 사용해야 합니다 . 두 서브넷 모두에 대한 IP 주소도 할당되어야 합니다 . 그런데 와의 호환성을 위해 주소에 태그를 추가할 수 있습니다 .eth1
subnet
eth1
ifconfig
ip addr add 192.168.1.250/24 label eth1:1 dev eth1
여전히 문제가 있습니다. 클라이언트의 요청은 단일 회선을 통해 들어오고 각 요청에는 클라이언트의 MAC 주소와 소스 IP 주소로 0.0.0.0이 포함되어 있습니다. 동적 IP 주소가 배포되는 경우 DHCP 서버는 클라이언트에 IP 주소를 할당해야 하는 서브넷이 무엇인지 알 수 없습니다. 이 shared-network
설정은 두 개 이상의 서브넷이 하나의 주소 풀에 결합되어 있는 상황에 적합하며 역할이 다른 서브넷에는 적합하지 않습니다.