우리는 Hetzner 네트워크 팀으로부터 서브넷에 속한 가상 머신에 속한 MAC 주소를 사용하지 말라고 요청하는 이메일을 받았습니다.
Xen 서버 호스트를 라우터로 구성했습니다.이 가이드를 사용하여.
추가 세부 정보를 요청한 후 Hetzner 지원팀은 일반적으로 하이퍼바이저의 네트워크 구성에서 패킷이 실제 NIC의 MAC 주소를 사용하여 시스템에서 나가도록 허용해야 한다고 대답했습니다. 그러나 문제를 찾지 못한 경우 IPtables를 사용하여 나가는 패킷을 차단해 볼 수 있습니다.
그래서 우리의 질문은:
혹시 헤츠너나 다른 전용 서버 제공업체에서 이런 문제를 겪으신 분이 계시다면.
어떻게 해결하셨나요? iptables를 사용하여 차단하는 것이 유일한 방법입니까?
감사합니다
구성 세부정보
호스트/라우터 구성:
[root@xenserver-custom ~]# cat /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.xenbr0.send_redirects = 0
[root@xenserver-custom network-scripts]# ip addr add 85.91.107.177/28 dev xenbr0
[root@xenserver-custom ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 0c:c4:7a:e7:dc:33 txqueuelen 1000 (Ethernet)
RX packets 4704816217 bytes 6002063739181 (5.4 TiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6294828922 bytes 7643975899027 (6.9 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 518545683 bytes 6322784653872 (5.7 TiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 518545683 bytes 6322784653872 (5.7 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vifxxxx
.....................
xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 115.35.61.184 netmask 255.255.255.192 broadcast 115.35.61.191
ether 0c:c4:7a:e7:dc:33 txqueuelen 1 (Ethernet)
RX packets 3070611738 bytes 8670969429554 (7.8 TiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2680055664 bytes 9822630727363 (8.9 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@xenserver-enginatics1 sysconfig]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000
link/ether 0c:c4:7a:e7:dc:33 brd ff:ff:ff:ff:ff:ff
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1
link/ether 72:ab:90:89:cf:cb brd ff:ff:ff:ff:ff:ff
4: xenbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1
link/ether 0c:c4:7a:e7:dc:33 brd ff:ff:ff:ff:ff:ff
inet 115.35.61.184/26 brd 115.35.61.191 scope global dynamic xenbr0
valid_lft 37373sec preferred_lft 37373sec
inet 85.91.107.177/28 scope global xenbr0
valid_lft forever preferred_lft forever
31: vif15.0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 32
link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
44: vif21.0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 32
link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
..........
VM 게스트 구성
[root@r1213a network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=85.91.107.184
PREFIX=28
GATEWAY=85.91.107.177
DNS1=213.133.98.98
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
[root@r1213a network-scripts]# ifconfig
eth0 Link encap:Ethernet HWaddr B6:8F:14:74:A6:B6
inet addr:85.91.107.184 Bcast:85.91.107.191 Mask:255.255.255.240
inet6 addr: fe80::b48f:14ff:fe74:a6b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:27122939 errors:0 dropped:2 overruns:0 frame:0
TX packets:2218911 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5404322465 (5.0 GiB) TX bytes:1061055301 (1011.9 MiB)
[root@r1213a ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether b6:8f:14:74:a6:b6 brd ff:ff:ff:ff:ff:ff
inet 85.91.107.184/28 brd 85.91.107.191 scope global eth0
inet6 fe80::b48f:14ff:fe74:a6b6/64 scope link
valid_lft forever preferred_lft forever
[root@r1213a network-scripts]# ip route
default via 85.91.107.177 dev eth0
85.91.107.176/28 dev eth0 proto kernel scope link src 85.91.107.184
[root@r1213a network-scripts]# traceroute google.com
traceroute to google.com (172.217.18.110), 30 hops max, 60 byte packets
1 xenserver.localdomain (85.91.107.177) 0.081 ms 0.029 ms 0.039 ms
2 static.129.61.69.159.clients.your-server.de (159.69.61.129) 0.390 ms 0.410 ms 0.370 ms
3 core22.fsn1.hetzner.com (213.239.245.121) 0.393 ms 0.416 ms 0.424 ms
4 core0.fra.hetzner.com (213.239.252.33) 5.207 ms 5.184 ms core0.fra.hetzner.com (213.239.252.29) 5.049 ms
5 72.14.218.94 (72.14.218.94) 5.273 ms 5.249 ms 72.14.218.176 (72.14.218.176) 4.990 ms
6 108.170.251.193 (108.170.251.193) 5.139 ms * 5.019 ms
7 209.85.241.75 (209.85.241.75) 5.834 ms 216.239.40.58 (216.239.40.58) 5.092 ms 172.253.64.119 (172.253.64.119) 5.707 ms
8 108.170.251.144 (108.170.251.144) 15.292 ms zrh04s05-in-f110.1e100.net (172.217.18.110) 4.952 ms 4.903 ms
답변1
나 또한 헤츠너로부터 이러한 이메일을 접했고 해결책을 찾을 수 있었습니다.
Hetzner에는 전용 서버와 함께 사용할 수 있는 두 가지 유형의 추가 IP 주소가 있습니다: 단일 IPv4 및 IPv4 서브넷. 각 단일 IP에 대해 MAC 주소를 얻고 새 VM 인스턴스의 네트워크 인터페이스에서 해당 MAC을 사용해야 합니다. 각 추가 서브넷에 대해 새 네트워크를 설정하고 해당 네트워크와 eth0
서버의 기본 네트워크( 와 연결됨) 간의 라우팅을 설정해야 합니다 .
XenServer에서는 Linux 콘솔을 사용하여 이 작업을 수행할 수 있습니다.
xe network-create name-label="Additional network" name-description="46.xx.yy.zz/28"
그러면 XenServer의 새 브리지( xapi0
기본적으로)에 연결된 새 네트워크가 생성됩니다. 그런 다음 네트워크의 첫 번째 사용 가능한 IP 주소(넷마스크에 따라)를 해당 브리지에 할당합니다.
ip addr add 46.xx.yy.1/28 dev xapi0
이제 기본 네트워크 대신 새로 생성된 네트워크에 자동 생성된 MAC이 연결된 새 VM을 추가할 수 있습니다. 트래픽은 XenServer 내에서 전환 및 라우팅됩니다.
해당 설정을 통해 Hetzner 네트워크 팀으로부터 허용된 MAC만 스위치 포트에 표시된다는 확인을 받았습니다.