mirror of
https://github.com/netbirdio/netbird.git
synced 2025-08-16 10:08:12 +02:00
Feat fake dns address (#902)
Works only with userspace implementation: 1. Configure host to solve DNS requests via a fake DSN server address in the Netbird network. 2. Add to firewall catch rule for these DNS requests. 3. Resolve these DNS requests and respond by writing directly to wireguard device.
This commit is contained in:
committed by
GitHub
parent
2c9583dfe1
commit
1d9feab2d9
@ -14,13 +14,6 @@ func TestDeviceWrapperRead(t *testing.T) {
|
||||
ctrl := gomock.NewController(t)
|
||||
defer ctrl.Finish()
|
||||
|
||||
tun := mocks.NewMockDevice(ctrl)
|
||||
filter := mocks.NewMockPacketFilter(ctrl)
|
||||
|
||||
mockBufs := [][]byte{{}}
|
||||
mockSizes := []int{0}
|
||||
mockOffset := 0
|
||||
|
||||
t.Run("read ICMP", func(t *testing.T) {
|
||||
ipLayer := &layers.IPv4{
|
||||
Version: 4,
|
||||
@ -46,6 +39,11 @@ func TestDeviceWrapperRead(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
mockBufs := [][]byte{{}}
|
||||
mockSizes := []int{0}
|
||||
mockOffset := 0
|
||||
|
||||
tun := mocks.NewMockDevice(ctrl)
|
||||
tun.EXPECT().Read(mockBufs, mockSizes, mockOffset).
|
||||
DoAndReturn(func(bufs [][]byte, sizes []int, offset int) (int, error) {
|
||||
bufs[0] = buffer.Bytes()
|
||||
@ -95,7 +93,10 @@ func TestDeviceWrapperRead(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
mockBufs := [][]byte{buffer.Bytes()}
|
||||
|
||||
mockBufs[0] = buffer.Bytes()
|
||||
tun := mocks.NewMockDevice(ctrl)
|
||||
tun.EXPECT().Write(mockBufs, 0).Return(1, nil)
|
||||
|
||||
wrapped := newDeviceWrapper(tun)
|
||||
@ -138,10 +139,13 @@ func TestDeviceWrapperRead(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
mockBufs = [][]byte{}
|
||||
mockBufs := [][]byte{}
|
||||
|
||||
tun := mocks.NewMockDevice(ctrl)
|
||||
tun.EXPECT().Write(mockBufs, 0).Return(0, nil)
|
||||
filter.EXPECT().DropOutput(gomock.Any()).Return(true)
|
||||
|
||||
filter := mocks.NewMockPacketFilter(ctrl)
|
||||
filter.EXPECT().DropIncoming(gomock.Any()).Return(true)
|
||||
|
||||
wrapped := newDeviceWrapper(tun)
|
||||
wrapped.filter = filter
|
||||
@ -188,13 +192,15 @@ func TestDeviceWrapperRead(t *testing.T) {
|
||||
mockSizes := []int{0}
|
||||
mockOffset := 0
|
||||
|
||||
tun := mocks.NewMockDevice(ctrl)
|
||||
tun.EXPECT().Read(mockBufs, mockSizes, mockOffset).
|
||||
DoAndReturn(func(bufs [][]byte, sizes []int, offset int) (int, error) {
|
||||
bufs[0] = buffer.Bytes()
|
||||
sizes[0] = len(bufs[0])
|
||||
return 1, nil
|
||||
})
|
||||
filter.EXPECT().DropInput(gomock.Any()).Return(true)
|
||||
filter := mocks.NewMockPacketFilter(ctrl)
|
||||
filter.EXPECT().DropOutgoing(gomock.Any()).Return(true)
|
||||
|
||||
wrapped := newDeviceWrapper(tun)
|
||||
wrapped.filter = filter
|
||||
|
Reference in New Issue
Block a user